Blame view

backend/models/Importers.php 4.99 KB
da0868a3   Mihail   add migration and...
1
2
3
4
  <?php
  
  namespace backend\models;
  
d3cf6647   Mihail   add multiply pric...
5
  use common\components\CustomVarDamp;
da0868a3   Mihail   add migration and...
6
7
  use Yii;
  use backend\components\base\BaseActiveRecord;
f02e1203   Mihail   add migration for...
8
  use backend\models\Currency;
da0868a3   Mihail   add migration and...
9
10
  
  /**
dc390706   Administrator   Importers CRUD
11
   *
da0868a3   Mihail   add migration and...
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
   *
   * @property integer $id
   * @property string $code
   * @property string $name
   * @property string $name_price
   * @property string $currency_id
   * @property string $delivery
   * @property string $email
   * @property string $info
   * @property integer $active
   * @property integer $PARSER_IS_ACTIVE
   * @property string $PARSER_COLUMN_COUNT
   * @property string $PARSER_FIELD_BRAND
   * @property string $PARSER_FIELD_ARTICLE
   * @property integer $PARSER_FIELD_ARTICLE_PREFIX
   * @property string $PARSER_FIELD_PRICE
   * @property string $PARSER_FIELD_DESCR
   * @property string $PARSER_FIELD_BOX
   * @property string $PARSER_FIELD_ADD_BOX
   * @property string $PARSER_FIELD_GROUP_RG
   * @property string $PARSER_FIELD_SIGN
   * @property double $PARSER_FIELD_MULTIPLIER
   * @property string $price_date_update
   */
1967135b   Mihail   adapt project to ...
36
  class Importers extends BaseActiveRecord
da0868a3   Mihail   add migration and...
37
  {
dc390706   Administrator   Importers CRUD
38
39
40
      /**
       * @inheritdoc
       */
3a9830b4   Administrator   Importers CRUD
41
42
43
44
      public static function tableName()
      {
          return 'w_importers';
      }
da0868a3   Mihail   add migration and...
45
  
da0868a3   Mihail   add migration and...
46
47
48
      public function rules()
      {
          return [
dd60c760   Mihail   add menu and chec...
49
50
              [['code', 'name', 'currency_id', 'delivery', 'price_date_update'], 'required'],
              [['name_price', 'email', 'PARSER_FIELD_SIGN', 'info'], 'safe'],
da0868a3   Mihail   add migration and...
51
52
53
54
55
              [['currency_id', 'active', 'PARSER_IS_ACTIVE', 'PARSER_COLUMN_COUNT', 'PARSER_FIELD_BRAND', 'PARSER_FIELD_ARTICLE', 'PARSER_FIELD_ARTICLE_PREFIX', 'PARSER_FIELD_PRICE', 'PARSER_FIELD_DESCR', 'PARSER_FIELD_BOX', 'PARSER_FIELD_ADD_BOX', 'PARSER_FIELD_GROUP_RG'], 'integer'],
              [['info'], 'string'],
              [['PARSER_FIELD_MULTIPLIER'], 'number'],
              [['code', 'name', 'name_price', 'delivery', 'email'], 'string', 'max' => 254],
              [['PARSER_FIELD_SIGN'], 'string', 'max' => 1],
54aa20c3   Mihail   change query for ...
56
           //   [['price_date_update'], 'string', 'max' => 15],
da0868a3   Mihail   add migration and...
57
58
59
60
61
62
63
64
65
66
67
              [['code'], 'unique'],
              [['name'], 'unique']
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
9684c4c9   Administrator   Importers CRUD
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
              'id' =>'ID',
              'code' => 'Код',
              'name' => 'Название',
              'name_price' => 'Прайс лист',
              'currency_id' => 'Валюта',
              'delivery' => 'Ожидаемый срок, дн.',
              'email' => 'E-mail',
              'info' => 'Комментарий к поставщику',
              'active' => 'Активность',
              'PARSER_IS_ACTIVE' => 'Активность авто колонок',
              'PARSER_COLUMN_COUNT' => 'Количество колонок (только загрузка с почты)',
              'PARSER_FIELD_BRAND' => '№ колонки с брендом',
              'PARSER_FIELD_ARTICLE' => '№ колонки с артикулом',
              'PARSER_FIELD_ARTICLE_PREFIX' => 'Колонка с префиксом?',
              'PARSER_FIELD_PRICE' => '№ колонки с ценой',
              'PARSER_FIELD_DESCR' => '№ колонки с наименованием',
              'PARSER_FIELD_BOX' => '№ колонки с количеством',
              'PARSER_FIELD_ADD_BOX' => '№ колонки с удалённым наличием',
              'PARSER_FIELD_GROUP_RG' => '№ колонки с группой RG',
              'PARSER_FIELD_SIGN' => 'Операция с ценой',
              'PARSER_FIELD_MULTIPLIER' => 'Значение операции',
da0868a3   Mihail   add migration and...
89
90
91
              'price_date_update' => Yii::t('app', 'Price Date Update'),
          ];
      }
3663f570   Mihail   draft commit
92
  
f02e1203   Mihail   add migration for...
93
94
95
96
97
98
99
100
101
      public function getCurrency ()
      {
          return $this->hasOne(Currency::className(), ['id' => 'currency_id'])->one()->name;
      }
  
      public function getCurrencyRate ()
      {
          return $this->hasOne(Currency::className(), ['id' => 'currency_id'])->one()->rate;
      }
3663f570   Mihail   draft commit
102
  
7aaeda8e   Mihail   add getKeys from ...
103
104
105
106
      public function getKeys ()
      {
          // возьмем только поля описанные в fields() - там как раз наши настройки парсера
          $arr = $this->toArray();
d3cf6647   Mihail   add multiply pric...
107
  
7aaeda8e   Mihail   add getKeys from ...
108
109
110
111
112
113
114
115
          // отсортируем по ключам с учетом преобразования в число
          asort($arr, SORT_NUMERIC);
          // уберем нулевые колонки
          $arr = array_filter($arr, function($val){
              return $val <> '0';
          });
          // нам нужны именно ключи
          $arr = array_keys($arr);
d3cf6647   Mihail   add multiply pric...
116
  
7aaeda8e   Mihail   add getKeys from ...
117
          return $arr;
d3cf6647   Mihail   add multiply pric...
118
119
120
121
122
123
124
      }
  
  
      public function getMultiply ()
      {
          $arr['sign'] = $this->PARSER_FIELD_SIGN;
          $arr['multiplier'] = $this->PARSER_FIELD_MULTIPLIER;
7aaeda8e   Mihail   add getKeys from ...
125
  
d3cf6647   Mihail   add multiply pric...
126
          return $arr;
7aaeda8e   Mihail   add getKeys from ...
127
128
      }
  
d3cf6647   Mihail   add multiply pric...
129
130
  
  
7aaeda8e   Mihail   add getKeys from ...
131
132
133
134
135
136
137
138
139
140
141
142
143
144
      public function fields()
      {
          return [
              'BRAND' => 'PARSER_FIELD_BRAND',
              'ARTICLE' => 'PARSER_FIELD_ARTICLE',
              'PRICE' => 'PARSER_FIELD_PRICE',
              'DESCR' => 'PARSER_FIELD_DESCR',
              'BOX' => 'PARSER_FIELD_BOX',
              'ADD_BOX' => 'PARSER_FIELD_ADD_BOX',
              'GROUP_RG' => 'PARSER_FIELD_GROUP_RG'
          ];
  
      }
  
da0868a3   Mihail   add migration and...
145
  }