254], [['PARSER_FIELD_SIGN'], 'string', 'max' => 1], // [['price_date_update'], 'string', 'max' => 15], [['code'], 'unique'], [['name'], 'unique'] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ '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' => 'Значение операции', 'price_date_update' => Yii::t('app', 'Price Date Update'), ]; } public function getKeys () { // возьмем только поля описанные в fields() - там как раз наши настройки парсера $arr = $this->toArray(); // уберем нулевые колонки $arr = array_filter($arr, function($val){ return $val <> '0'; }); // нам нужны именно массив в виде 'номер колонки в файле'=>'имя колонки в БД' $arr = array_flip( $arr ); // отсортируем по ключам ksort($arr); return $arr; } public function getMultiply () { $arr['sign'] = $this->PARSER_FIELD_SIGN; $arr['multiplier'] = $this->PARSER_FIELD_MULTIPLIER; return $arr; } public function fields() { return [ '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; }, ]; } }