Blame view

backend/models/Importers.php 5.44 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;
da0868a3   Mihail   add migration and...
8
9
  
  /**
dc390706   Administrator   Importers CRUD
10
   *
da0868a3   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
   */
1967135b   Mihail   adapt project to ...
35
  class Importers extends BaseActiveRecord
da0868a3   Mihail   add migration and...
36
  {
dc390706   Administrator   Importers CRUD
37
38
39
      /**
       * @inheritdoc
       */
3a9830b4   Administrator   Importers CRUD
40
41
42
43
      public static function tableName()
      {
          return 'w_importers';
      }
da0868a3   Mihail   add migration and...
44
  
da0868a3   Mihail   add migration and...
45
46
47
      public function rules()
      {
          return [
dd60c760   Mihail   add menu and chec...
48
49
              [['code', 'name', 'currency_id', 'delivery', 'price_date_update'], 'required'],
              [['name_price', 'email', 'PARSER_FIELD_SIGN', 'info'], 'safe'],
da0868a3   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],
54aa20c3   Mihail   change query for ...
55
           //   [['price_date_update'], 'string', 'max' => 15],
da0868a3   Mihail   add migration and...
56
57
58
59
60
61
62
63
64
65
66
              [['code'], 'unique'],
              [['name'], 'unique']
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
9684c4c9   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' => 'Значение операции',
da0868a3   Mihail   add migration and...
88
89
90
              'price_date_update' => Yii::t('app', 'Price Date Update'),
          ];
      }
3663f570   Mihail   draft commit
91
  
3663f570   Mihail   draft commit
92
  
7aaeda8e   Mihail   add getKeys from ...
93
94
95
96
      public function getKeys ()
      {
          // возьмем только поля описанные в fields() - там как раз наши настройки парсера
          $arr = $this->toArray();
d3cf6647   Mihail   add multiply pric...
97
  
7aaeda8e   Mihail   add getKeys from ...
98
99
100
101
          // уберем нулевые колонки
          $arr = array_filter($arr, function($val){
              return $val <> '0';
          });
209dad04   Mihail   add validator for...
102
103
          // нам нужны именно массив в виде 'номер колонки в файле'=>'имя колонки в БД'
          $arr = array_flip( $arr );
ad2e91f7   Mihail   move multyparser ...
104
105
          // отсортируем по ключам
          ksort($arr);
d3cf6647   Mihail   add multiply pric...
106
  
7aaeda8e   Mihail   add getKeys from ...
107
          return $arr;
d3cf6647   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;
7aaeda8e   Mihail   add getKeys from ...
115
  
d3cf6647   Mihail   add multiply pric...
116
          return $arr;
7aaeda8e   Mihail   add getKeys from ...
117
118
      }
  
d3cf6647   Mihail   add multiply pric...
119
120
  
  
7aaeda8e   Mihail   add getKeys from ...
121
122
123
      public function fields()
      {
          return [
ad2e91f7   Mihail   move multyparser ...
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
              'BRAND' => function () {
                  return $this->PARSER_FIELD_BRAND == '0'? '0' : (int)$this->PARSER_FIELD_BRAND - 1;
              },
              'ARTICLE' => function () {
                  return $this->PARSER_FIELD_ARTICLE == '0'? '0' : (int)$this->PARSER_FIELD_ARTICLE - 1;
              },
              'PRICE' => function () {
                  return $this->PARSER_FIELD_PRICE == '0'? '0' : (int)$this->PARSER_FIELD_PRICE - 1;
              },
              'DESCR' => function () {
                  return $this->PARSER_FIELD_DESCR == '0'? '0' : (int)$this->PARSER_FIELD_DESCR - 1;
              },
              'BOX' => function () {
                  return $this->PARSER_FIELD_BOX == '0'? '0' : (int)$this->PARSER_FIELD_BOX - 1;
              },
              'ADD_BOX' => function () {
                  return $this->PARSER_FIELD_ADD_BOX == '0'? '0' : (int)$this->PARSER_FIELD_ADD_BOX - 1;
              },
              'GROUP_RG' => function () {
                  return $this->PARSER_FIELD_GROUP_RG == '0'? '0' : (int)$this->PARSER_FIELD_GROUP_RG - 1;
              },
7aaeda8e   Mihail   add getKeys from ...
145
146
147
148
          ];
  
      }
  
da0868a3   Mihail   add migration and...
149
  }