Commit 9009e1b58a0140db1613d51531e86e98af09a688
1 parent
b257b524
fixed issue with xml parser - redid in universul manner
Showing
3 changed files
with
37 additions
and
16 deletions
Show diff stats
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 |