Commit 91c8f89897b763b0eeec1354ae4bd3c80ade79a2

Authored by Mihail
1 parent ffd4b834

add DetailsCrosses model

backend/models/Details.php
... ... @@ -36,7 +36,6 @@ class Details extends BaseActiveRecord
36 36 /**
37 37 * @var bool - признак необходимости удалить префикс Артикула перед вставкой
38 38 */
39   - public $delete_prefix = false;
40 39 public $delete_price = false;
41 40  
42 41 /**
... ... @@ -132,9 +131,6 @@ class Details extends BaseActiveRecord
132 131  
133 132 //воспользуемся пакетной вставкой от фреймворка
134 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 135 $query = "{$query_insert} {$query_update}";
140 136 // \common\components\CustomVarDamp::dumpAndDie($query);
... ... @@ -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 }
... ...
backend/models/DetailsCrosses.php 0 → 100644
  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 66 $row['BOX'] = \Yii::$app->multiparser->convertToInteger($row['BOX']);
67 67 // присвоим полный артикул
68 68 $row['FULL_ARTICLE'] = $row['ARTICLE'];
  69 + $row['ARTICLE'] = \Yii::$app->multiparser->convertToArticle( $row );
69 70 if (isset($row['ADD_BOX']))
70 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 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 132 // 1. Уберем префикс который разделен пробелом (если он есть)
133 133 $words = explode(" ", $row['ARTICLE']);
... ... @@ -135,7 +135,8 @@ class CustomConverter extends Converter
135 135 array_shift($words);
136 136 $row['ARTICLE'] = implode(" ", $words);
137 137 }
138   -
  138 + }
  139 + if( isset( $row['BRAND'] ) && isset( self::$importer_id ) ){
139 140 // 2. Уберем брендовый префикс (если он есть)
140 141 $prefix = '';
141 142 // запрос закешируем
... ...
common/components/parsers/config.php
... ... @@ -17,11 +17,11 @@
17 17 'hasKey' => 1,
18 18 'configuration' => ["string" => 'DESCR',
19 19 "float" => 'PRICE',
20   - "brand" => 'BRAND',
  20 + "brand" => 'BRAND[',
21 21 "integer" => ['BOX','ADD_BOX'],
22 22 "multiply" => [],
23 23 "details" => [],
24   - "articul" => []
  24 + "article" => []
25 25  
26 26 ]
27 27 ],],
... ...