Blame view

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