Blame view

backend/models/Importers.php 4.69 KB
92bb547f   Mihail   add migration and...
1
2
3
4
  <?php
  
  namespace backend\models;
  
78684ed4   Mihail   add multiply pric...
5
  use common\components\CustomVarDamp;
92bb547f   Mihail   add migration and...
6
7
8
9
  use Yii;
  use backend\components\base\BaseActiveRecord;
  
  /**
d73fbe4b   Administrator   Importers CRUD
10
   *
92bb547f   Mihail   add migration and...
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
   *
   * @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
   */
942bad48   Mihail   adapt project to ...
35
  class Importers extends BaseActiveRecord
92bb547f   Mihail   add migration and...
36
  {
d73fbe4b   Administrator   Importers CRUD
37
38
39
      /**
       * @inheritdoc
       */
992d7eaa   Administrator   Importers CRUD
40
41
42
43
      public static function tableName()
      {
          return 'w_importers';
      }
92bb547f   Mihail   add migration and...
44
  
92bb547f   Mihail   add migration and...
45
46
47
      public function rules()
      {
          return [
2fb5a757   Mihail   add menu and chec...
48
49
              [['code', 'name', 'currency_id', 'delivery', 'price_date_update'], 'required'],
              [['name_price', 'email', 'PARSER_FIELD_SIGN', 'info'], 'safe'],
92bb547f   Mihail   add migration and...
50
51
52
53
54
              [['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],
3b7211a0   Mihail   change query for ...
55
           //   [['price_date_update'], 'string', 'max' => 15],
92bb547f   Mihail   add migration and...
56
57
58
59
60
61
62
63
64
65
66
              [['code'], 'unique'],
              [['name'], 'unique']
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
85414aee   Administrator   Importers CRUD
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
              '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' => 'Значение операции',
92bb547f   Mihail   add migration and...
88
89
90
              'price_date_update' => Yii::t('app', 'Price Date Update'),
          ];
      }
165348a4   Mihail   draft commit
91
92
  
  
81093a61   Mihail   add getKeys from ...
93
94
95
96
      public function getKeys ()
      {
          // возьмем только поля описанные в fields() - там как раз наши настройки парсера
          $arr = $this->toArray();
78684ed4   Mihail   add multiply pric...
97
  
81093a61   Mihail   add getKeys from ...
98
99
100
101
102
103
104
105
          // отсортируем по ключам с учетом преобразования в число
          asort($arr, SORT_NUMERIC);
          // уберем нулевые колонки
          $arr = array_filter($arr, function($val){
              return $val <> '0';
          });
          // нам нужны именно ключи
          $arr = array_keys($arr);
78684ed4   Mihail   add multiply pric...
106
  
81093a61   Mihail   add getKeys from ...
107
          return $arr;
78684ed4   Mihail   add multiply pric...
108
109
110
111
112
113
114
      }
  
  
      public function getMultiply ()
      {
          $arr['sign'] = $this->PARSER_FIELD_SIGN;
          $arr['multiplier'] = $this->PARSER_FIELD_MULTIPLIER;
81093a61   Mihail   add getKeys from ...
115
  
78684ed4   Mihail   add multiply pric...
116
          return $arr;
81093a61   Mihail   add getKeys from ...
117
118
      }
  
78684ed4   Mihail   add multiply pric...
119
120
  
  
81093a61   Mihail   add getKeys from ...
121
122
123
124
125
126
127
128
129
130
131
132
133
134
      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'
          ];
  
      }
  
92bb547f   Mihail   add migration and...
135
  }