Commit 9009e1b58a0140db1613d51531e86e98af09a688

Authored by Mihail
1 parent b257b524

fixed issue with xml parser - redid in universul manner

backend/controllers/ParserController.php
@@ -52,6 +52,8 @@ class ParserController extends BaseController @@ -52,6 +52,8 @@ class ParserController extends BaseController
52 52
53 public function actionIndex($mode = 0) 53 public function actionIndex($mode = 0)
54 { 54 {
  55 +// $path = 'common\components\parsers\CustomConverter';
  56 +// CustomVarDamp::dumpAndDie(new $path());
55 $model = new UploadFileParsingForm(); 57 $model = new UploadFileParsingForm();
56 // установим режим, 0 - ручная загрузка, 1 - автозагрузка 58 // установим режим, 0 - ручная загрузка, 1 - автозагрузка
57 $model->mode = $mode; 59 $model->mode = $mode;
@@ -81,7 +83,6 @@ class ParserController extends BaseController @@ -81,7 +83,6 @@ class ParserController extends BaseController
81 try { 83 try {
82 $files_model->save(); 84 $files_model->save();
83 } catch (ErrorException $e) { 85 } catch (ErrorException $e) {
84 - // CustomVarDamp::dump($e->getMessage());  
85 throw $e; 86 throw $e;
86 } 87 }
87 // получим id только что записанной записи - его запишем в название файла 88 // получим id только что записанной записи - его запишем в название файла
backend/models/UploadFileParsingForm.php
@@ -71,12 +71,14 @@ class UploadFileParsingForm extends Model @@ -71,12 +71,14 @@ class UploadFileParsingForm extends Model
71 public function readFile( $options = [] ){ 71 public function readFile( $options = [] ){
72 72
73 $data = Yii::$app->multiparser->parse( $this->file_path, $options ); 73 $data = Yii::$app->multiparser->parse( $this->file_path, $options );
74 - if( !is_array( $data ) ){ 74 + CustomVarDamp::dumpAndDie($data);
  75 + if( !is_array( $data ) || count($data) == 0 ){
75 throw new ErrorException("Ошибка чтения из файла прайса {$this->file_path}"); 76 throw new ErrorException("Ошибка чтения из файла прайса {$this->file_path}");
76 } 77 }
77 // файл больше не нужен - данные прочитаны и сохранены в кеш 78 // файл больше не нужен - данные прочитаны и сохранены в кеш
78 -// if( file_exists($this->file_path) )  
79 -// unlink($this->file_path); 79 + if( file_exists($this->file_path) )
  80 + //@ todo - перестало работать - нет доступа на удалениев этом сеансе, в следующем - файл удаляется - разобраться
  81 + //unlink( $this->file_path );
80 82
81 return $data; 83 return $data;
82 } 84 }
common/components/parsers/config.php
@@ -14,7 +14,6 @@ @@ -14,7 +14,6 @@
14 'hasHeaderRow' => true, 14 'hasHeaderRow' => true,
15 'converter_conf' => [ 15 'converter_conf' => [
16 'class' => ' common\components\parsers\CustomConverter', 16 'class' => ' common\components\parsers\CustomConverter',
17 - 'hasKey' => 1,  
18 'configuration' => ["string" => 'DESCR', 17 'configuration' => ["string" => 'DESCR',
19 "float" => 'PRICE', 18 "float" => 'PRICE',
20 "brand" => 'BRAND', 19 "brand" => 'BRAND',
@@ -54,21 +53,40 @@ @@ -54,21 +53,40 @@
54 ['console' => 53 ['console' =>
55 ['class' => 'yii\multiparser\XmlParser', 54 ['class' => 'yii\multiparser\XmlParser',
56 'node' => 'Товар', 55 'node' => 'Товар',
  56 + 'hasHeaderRow' => true,
  57 + 'keys' => [
  58 + "BRAND" => 'Производитель',
  59 + "ARTICLE"=> 'Код',
  60 + "PRICE" => 'Розница',
  61 + "DESCR" => 'Наименование',
  62 + "BOX" => 'Колво',
  63 + "ADD_BOX"=> 'Ожидаемое',
  64 + "GROUP" => 'Группа'
  65 + ],
57 'converter_conf' => [ 66 'converter_conf' => [
58 - 'class' => ' common\components\parsers\CustomConverter',  
59 - 'hasKey' => 1, 67 + 'class' => 'common\components\parsers\CustomConverter',
60 'configuration' => ["details" => [] 68 'configuration' => ["details" => []
61 ],], 69 ],],
62 ], 70 ],
63 - 'basic_column' => [  
64 - "BRAND" => 'Производитель',  
65 - "ARTICLE"=> 'Код',  
66 - "PRICE" => 'Розница',  
67 - "DESCR" => 'Наименование',  
68 - "BOX" => 'Колво',  
69 - "ADD_BOX"=> 'Ожидаемое',  
70 - "GROUP" => 'Группа'  
71 - ], 71 + 'web' =>
  72 + ['class' => 'yii\multiparser\XmlParser',
  73 + 'node' => 'Товар',
  74 + 'hasHeaderRow' => true,
  75 + 'keys' => [
  76 + "BRAND" => 'Производитель',
  77 + "ARTICLE"=> 'Код',
  78 + "PRICE" => 'Розница',
  79 + "DESCR" => 'Наименование',
  80 + "BOX" => 'Колво',
  81 + "ADD_BOX"=> 'Ожидаемое',
  82 + "GROUP" => 'Группа'
  83 + ],
  84 + 'converter_conf' => [
  85 + 'class' => 'common\components\parsers\CustomConverter',
  86 + 'configuration' => ["details" => []
  87 + ],],
  88 + ],
72 ], 89 ],
  90 +
73 ]; 91 ];
74 92