Commit 91c8f89897b763b0eeec1354ae4bd3c80ade79a2
1 parent
ffd4b834
add DetailsCrosses model
Showing
5 changed files
with
60 additions
and
14 deletions
Show diff stats
backend/models/Details.php
| @@ -36,7 +36,6 @@ class Details extends BaseActiveRecord | @@ -36,7 +36,6 @@ class Details extends BaseActiveRecord | ||
| 36 | /** | 36 | /** |
| 37 | * @var bool - признак необходимости удалить префикс Артикула перед вставкой | 37 | * @var bool - признак необходимости удалить префикс Артикула перед вставкой |
| 38 | */ | 38 | */ |
| 39 | - public $delete_prefix = false; | ||
| 40 | public $delete_price = false; | 39 | public $delete_price = false; |
| 41 | 40 | ||
| 42 | /** | 41 | /** |
| @@ -132,9 +131,6 @@ class Details extends BaseActiveRecord | @@ -132,9 +131,6 @@ class Details extends BaseActiveRecord | ||
| 132 | 131 | ||
| 133 | //воспользуемся пакетной вставкой от фреймворка | 132 | //воспользуемся пакетной вставкой от фреймворка |
| 134 | $query_insert = Yii::$app->db->createCommand()->batchInsert($table_name, $keys_arr, $current_batch_array)->sql; | 133 | $query_insert = Yii::$app->db->createCommand()->batchInsert($table_name, $keys_arr, $current_batch_array)->sql; |
| 135 | - if ($this->delete_prefix) { | ||
| 136 | - $query_insert = $this->prepareArticul( $query_insert ); | ||
| 137 | - } | ||
| 138 | // добавим фрагмент с апдейтом при дубляже | 134 | // добавим фрагмент с апдейтом при дубляже |
| 139 | $query = "{$query_insert} {$query_update}"; | 135 | $query = "{$query_insert} {$query_update}"; |
| 140 | // \common\components\CustomVarDamp::dumpAndDie($query); | 136 | // \common\components\CustomVarDamp::dumpAndDie($query); |
| @@ -142,9 +138,4 @@ class Details extends BaseActiveRecord | @@ -142,9 +138,4 @@ class Details extends BaseActiveRecord | ||
| 142 | 138 | ||
| 143 | } | 139 | } |
| 144 | } | 140 | } |
| 145 | - | ||
| 146 | - private function prepareArticul( $query_insert ){ | ||
| 147 | - //CustomVarDamp::dumpAndDie($query_insert); | ||
| 148 | - return $query_insert; | ||
| 149 | - } | ||
| 150 | } | 141 | } |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace backend\models; | ||
| 4 | + | ||
| 5 | +use Yii; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * This is the model class for table "{{%details_crosses}}". | ||
| 9 | + * | ||
| 10 | + * @property string $ID | ||
| 11 | + * @property string $ARTICLE | ||
| 12 | + * @property string $BRAND | ||
| 13 | + * @property string $CROSS_BRAND | ||
| 14 | + * @property string $CROSS_ARTICLE | ||
| 15 | + * @property string $timestamp | ||
| 16 | + */ | ||
| 17 | +class DetailsCrosses extends \backend\components\base\BaseActiveRecord | ||
| 18 | +{ | ||
| 19 | + /** | ||
| 20 | + * @inheritdoc | ||
| 21 | + */ | ||
| 22 | + public static function tableName() | ||
| 23 | + { | ||
| 24 | + return '{{%details_crosses}}'; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * @inheritdoc | ||
| 29 | + */ | ||
| 30 | + public function rules() | ||
| 31 | + { | ||
| 32 | + return [ | ||
| 33 | + [['ARTICLE', 'BRAND', 'CROSS_BRAND', 'CROSS_ARTICLE'], 'required'], | ||
| 34 | + [['timestamp'], 'safe'], | ||
| 35 | + [['ARTICLE', 'BRAND', 'CROSS_BRAND', 'CROSS_ARTICLE'], 'string', 'max' => 100] | ||
| 36 | + ]; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * @inheritdoc | ||
| 41 | + */ | ||
| 42 | + public function attributeLabels() | ||
| 43 | + { | ||
| 44 | + return [ | ||
| 45 | + 'ID' => Yii::t('app', 'ID'), | ||
| 46 | + 'ARTICLE' => Yii::t('app', 'Article'), | ||
| 47 | + 'BRAND' => Yii::t('app', 'Brand'), | ||
| 48 | + 'CROSS_BRAND' => Yii::t('app', 'Cross Brand'), | ||
| 49 | + 'CROSS_ARTICLE' => Yii::t('app', 'Cross Article'), | ||
| 50 | + 'timestamp' => Yii::t('app', 'Timestamp'), | ||
| 51 | + ]; | ||
| 52 | + } | ||
| 53 | +} |
common/components/PriceWriter.php
| @@ -66,6 +66,7 @@ class PriceWriter | @@ -66,6 +66,7 @@ class PriceWriter | ||
| 66 | $row['BOX'] = \Yii::$app->multiparser->convertToInteger($row['BOX']); | 66 | $row['BOX'] = \Yii::$app->multiparser->convertToInteger($row['BOX']); |
| 67 | // присвоим полный артикул | 67 | // присвоим полный артикул |
| 68 | $row['FULL_ARTICLE'] = $row['ARTICLE']; | 68 | $row['FULL_ARTICLE'] = $row['ARTICLE']; |
| 69 | + $row['ARTICLE'] = \Yii::$app->multiparser->convertToArticle( $row ); | ||
| 69 | if (isset($row['ADD_BOX'])) | 70 | if (isset($row['ADD_BOX'])) |
| 70 | $row['ADD_BOX'] = \Yii::$app->multiparser->convertToInteger($row['ADD_BOX']); | 71 | $row['ADD_BOX'] = \Yii::$app->multiparser->convertToInteger($row['ADD_BOX']); |
| 71 | 72 |
common/components/parsers/CustomConverter.php
| @@ -125,9 +125,9 @@ class CustomConverter extends Converter | @@ -125,9 +125,9 @@ class CustomConverter extends Converter | ||
| 125 | 125 | ||
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | - public static function convertToArticul(array $row) | 128 | + public static function convertToArticle( array $row ) |
| 129 | { | 129 | { |
| 130 | - if (isset($row['ARTICLE']) && isset($row['BRAND']) && isset(self::$importer_id)) { | 130 | + if ( isset($row['ARTICLE']) ) { |
| 131 | 131 | ||
| 132 | // 1. Уберем префикс который разделен пробелом (если он есть) | 132 | // 1. Уберем префикс который разделен пробелом (если он есть) |
| 133 | $words = explode(" ", $row['ARTICLE']); | 133 | $words = explode(" ", $row['ARTICLE']); |
| @@ -135,7 +135,8 @@ class CustomConverter extends Converter | @@ -135,7 +135,8 @@ class CustomConverter extends Converter | ||
| 135 | array_shift($words); | 135 | array_shift($words); |
| 136 | $row['ARTICLE'] = implode(" ", $words); | 136 | $row['ARTICLE'] = implode(" ", $words); |
| 137 | } | 137 | } |
| 138 | - | 138 | + } |
| 139 | + if( isset( $row['BRAND'] ) && isset( self::$importer_id ) ){ | ||
| 139 | // 2. Уберем брендовый префикс (если он есть) | 140 | // 2. Уберем брендовый префикс (если он есть) |
| 140 | $prefix = ''; | 141 | $prefix = ''; |
| 141 | // запрос закешируем | 142 | // запрос закешируем |
common/components/parsers/config.php
| @@ -17,11 +17,11 @@ | @@ -17,11 +17,11 @@ | ||
| 17 | 'hasKey' => 1, | 17 | 'hasKey' => 1, |
| 18 | 'configuration' => ["string" => 'DESCR', | 18 | 'configuration' => ["string" => 'DESCR', |
| 19 | "float" => 'PRICE', | 19 | "float" => 'PRICE', |
| 20 | - "brand" => 'BRAND', | 20 | + "brand" => 'BRAND[', |
| 21 | "integer" => ['BOX','ADD_BOX'], | 21 | "integer" => ['BOX','ADD_BOX'], |
| 22 | "multiply" => [], | 22 | "multiply" => [], |
| 23 | "details" => [], | 23 | "details" => [], |
| 24 | - "articul" => [] | 24 | + "article" => [] |
| 25 | 25 | ||
| 26 | ] | 26 | ] |
| 27 | ],], | 27 | ],], |