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 52  
53 53 public function actionIndex($mode = 0)
54 54 {
  55 +// $path = 'common\components\parsers\CustomConverter';
  56 +// CustomVarDamp::dumpAndDie(new $path());
55 57 $model = new UploadFileParsingForm();
56 58 // установим режим, 0 - ручная загрузка, 1 - автозагрузка
57 59 $model->mode = $mode;
... ... @@ -81,7 +83,6 @@ class ParserController extends BaseController
81 83 try {
82 84 $files_model->save();
83 85 } catch (ErrorException $e) {
84   - // CustomVarDamp::dump($e->getMessage());
85 86 throw $e;
86 87 }
87 88 // получим id только что записанной записи - его запишем в название файла
... ...
backend/models/UploadFileParsingForm.php
... ... @@ -71,12 +71,14 @@ class UploadFileParsingForm extends Model
71 71 public function readFile( $options = [] ){
72 72  
73 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 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 83 return $data;
82 84 }
... ...
common/components/parsers/config.php
... ... @@ -14,7 +14,6 @@
14 14 'hasHeaderRow' => true,
15 15 'converter_conf' => [
16 16 'class' => ' common\components\parsers\CustomConverter',
17   - 'hasKey' => 1,
18 17 'configuration' => ["string" => 'DESCR',
19 18 "float" => 'PRICE',
20 19 "brand" => 'BRAND',
... ... @@ -54,21 +53,40 @@
54 53 ['console' =>
55 54 ['class' => 'yii\multiparser\XmlParser',
56 55 'node' => 'Товар',
  56 + 'hasHeaderRow' => true,
  57 + 'keys' => [
  58 + "BRAND" => 'Производитель',
  59 + "ARTICLE"=> 'Код',
  60 + "PRICE" => 'Розница',
  61 + "DESCR" => 'Наименование',
  62 + "BOX" => 'Колво',
  63 + "ADD_BOX"=> 'Ожидаемое',
  64 + "GROUP" => 'Группа'
  65 + ],
57 66 'converter_conf' => [
58   - 'class' => ' common\components\parsers\CustomConverter',
59   - 'hasKey' => 1,
  67 + 'class' => 'common\components\parsers\CustomConverter',
60 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  
... ...