Commit 424ec7e0b4d2ebeacedd1107084b40f691cc36cd
1 parent
4fb5e6c3
Import browser beta v0.1
Showing
5 changed files
with
92 additions
and
114 deletions
Show diff stats
common/modules/language/behaviors/LanguageBehavior.php
| @@ -237,7 +237,7 @@ | @@ -237,7 +237,7 @@ | ||
| 237 | $success = true; | 237 | $success = true; |
| 238 | $model_langs = $this->model_langs; | 238 | $model_langs = $this->model_langs; |
| 239 | foreach($model_langs as $model_lang) { | 239 | foreach($model_langs as $model_lang) { |
| 240 | - if($model_lang->save(true) === false) { | 240 | + if($model_lang->save() === false) { |
| 241 | $success = false; | 241 | $success = false; |
| 242 | } | 242 | } |
| 243 | } | 243 | } |
| @@ -251,11 +251,7 @@ | @@ -251,11 +251,7 @@ | ||
| 251 | */ | 251 | */ |
| 252 | $owner = $this->owner; | 252 | $owner = $this->owner; |
| 253 | $db = $owner::getDb(); | 253 | $db = $owner::getDb(); |
| 254 | - if($owner instanceof Product) { | ||
| 255 | - var_dump('HERE'); die(); | ||
| 256 | - } | ||
| 257 | $this->_transaction = $db->beginTransaction(); | 254 | $this->_transaction = $db->beginTransaction(); |
| 258 | - | ||
| 259 | } | 255 | } |
| 260 | 256 | ||
| 261 | public function afterSave($event) | 257 | public function afterSave($event) |
| @@ -264,10 +260,6 @@ | @@ -264,10 +260,6 @@ | ||
| 264 | * @var ActiveRecord $owner | 260 | * @var ActiveRecord $owner |
| 265 | */ | 261 | */ |
| 266 | $owner = $this->owner; | 262 | $owner = $this->owner; |
| 267 | - $this->_transaction->commit(); | ||
| 268 | - if($owner instanceof Product) { | ||
| 269 | - var_dump($owner->product_id); die(); | ||
| 270 | - } | ||
| 271 | if(!empty( $this->model_langs )) { | 263 | if(!empty( $this->model_langs )) { |
| 272 | if($this->linkLangs() && $this->saveLangs()) { | 264 | if($this->linkLangs() && $this->saveLangs()) { |
| 273 | $this->_transaction->commit(); | 265 | $this->_transaction->commit(); |
common/modules/product/models/Import.php
| @@ -439,7 +439,6 @@ | @@ -439,7 +439,6 @@ | ||
| 439 | $result_items = []; | 439 | $result_items = []; |
| 440 | 440 | ||
| 441 | while(( empty( $limit ) || $j++ < $limit ) && ( $data = fgetcsv($handle, 10000, ";") ) !== false) { | 441 | while(( empty( $limit ) || $j++ < $limit ) && ( $data = fgetcsv($handle, 10000, ";") ) !== false) { |
| 442 | - | ||
| 443 | try { | 442 | try { |
| 444 | foreach($data as &$value) { | 443 | foreach($data as &$value) { |
| 445 | if(!$is_utf) { | 444 | if(!$is_utf) { |
| @@ -519,14 +518,13 @@ | @@ -519,14 +518,13 @@ | ||
| 519 | // ->where([ 'language_id' => $lang ]) | 518 | // ->where([ 'language_id' => $lang ]) |
| 520 | // ->one(); | 519 | // ->one(); |
| 521 | // Language::setCurrent($language->url); | 520 | // Language::setCurrent($language->url); |
| 522 | - | ||
| 523 | $categories = $this->saveCatalog($catalog_names); | 521 | $categories = $this->saveCatalog($catalog_names); |
| 524 | - | 522 | + |
| 525 | $brand_id = $this->saveBrand($brand_name); | 523 | $brand_id = $this->saveBrand($brand_name); |
| 526 | 524 | ||
| 527 | $options = []; | 525 | $options = []; |
| 528 | if(!empty ( $filters )) { | 526 | if(!empty ( $filters )) { |
| 529 | - | 527 | + |
| 530 | $options = $this->saveFilters($filters, 0, $categories); | 528 | $options = $this->saveFilters($filters, 0, $categories); |
| 531 | } | 529 | } |
| 532 | $parsed_name = $this->parseName($product_name); | 530 | $parsed_name = $this->parseName($product_name); |
| @@ -568,18 +566,14 @@ | @@ -568,18 +566,14 @@ | ||
| 568 | if(!empty( $options )) { | 566 | if(!empty( $options )) { |
| 569 | $_product->options = $options; | 567 | $_product->options = $options; |
| 570 | } | 568 | } |
| 571 | - | 569 | + |
| 572 | if(!empty( $_product->lang )) { | 570 | if(!empty( $_product->lang )) { |
| 573 | $product_name_inserted = $_product->lang->name; | 571 | $product_name_inserted = $_product->lang->name; |
| 574 | } else { | 572 | } else { |
| 575 | $product_name_inserted = $_product->model_langs[ Language::$current->language_id ]->name; | 573 | $product_name_inserted = $_product->model_langs[ Language::$current->language_id ]->name; |
| 576 | } | 574 | } |
| 577 | - | ||
| 578 | - $_product->validate(); | ||
| 579 | - die(var_dump($_product->getErrors())); | ||
| 580 | 575 | ||
| 581 | - var_dump($_product->save()); die(); | ||
| 582 | - if(!$_product->transactionStatus) { | 576 | + if(($_product->save() === false) || !$_product->transactionStatus) { |
| 583 | $result_items[] = 'Product #' . $product_name_inserted . ' not saved' . " (line $j)"; | 577 | $result_items[] = 'Product #' . $product_name_inserted . ' not saved' . " (line $j)"; |
| 584 | continue; | 578 | continue; |
| 585 | } | 579 | } |
| @@ -639,15 +633,15 @@ | @@ -639,15 +633,15 @@ | ||
| 639 | { | 633 | { |
| 640 | $options = []; | 634 | $options = []; |
| 641 | foreach($filters as $filter) { | 635 | foreach($filters as $filter) { |
| 642 | - | 636 | + |
| 643 | preg_match_all('/\[(.*):(.*)\]/', $filter, $filter); | 637 | preg_match_all('/\[(.*):(.*)\]/', $filter, $filter); |
| 644 | - | 638 | + |
| 645 | if(empty( $filter[ 1 ][ 0 ] )) { | 639 | if(empty( $filter[ 1 ][ 0 ] )) { |
| 646 | continue; | 640 | continue; |
| 647 | } | 641 | } |
| 648 | $filter_name = trim($filter[ 1 ][ 0 ]); | 642 | $filter_name = trim($filter[ 1 ][ 0 ]); |
| 649 | $parsed_group_name = $this->parseName($filter_name); | 643 | $parsed_group_name = $this->parseName($filter_name); |
| 650 | - | 644 | + |
| 651 | /** | 645 | /** |
| 652 | * @var TaxGroup $taxGroup | 646 | * @var TaxGroup $taxGroup |
| 653 | */ | 647 | */ |
| @@ -674,38 +668,38 @@ | @@ -674,38 +668,38 @@ | ||
| 674 | $taxGroup->is_filter = false; | 668 | $taxGroup->is_filter = false; |
| 675 | $taxGroup->save(); | 669 | $taxGroup->save(); |
| 676 | } | 670 | } |
| 677 | - $filters_options = explode(',', $filter[ 2 ][ 0 ]); | ||
| 678 | - foreach($filters_options as $filter_options) { | ||
| 679 | - $parsed_option_name = $this->parseName($filter_options); | ||
| 680 | - /** | ||
| 681 | - * @var TaxOption $option | ||
| 682 | - */ | ||
| 683 | - | ||
| 684 | - if(!empty( $parsed_option_name[ 'remote_id' ] ) && ( $option = TaxOption::find() | ||
| 685 | - ->joinWith('lang') | ||
| 686 | - ->andFilterWhere([ 'remote_id' => $parsed_option_name[ 'remote_id' ] ]) | ||
| 687 | - ->andFilterWhere([ 'tax_group_id' => $taxGroup->tax_group_id ]) | ||
| 688 | - ->one() ) !== NULL | ||
| 689 | - ) { | ||
| 690 | - if(!empty( $option->lang )) { | ||
| 691 | - $option->lang->value = $parsed_option_name[ 'name' ]; | ||
| 692 | - $option->lang->save(); | ||
| 693 | - } else { | ||
| 694 | - throw new \Exception('Tax option with ID ' . $option->tax_option_id . ' and lang ' . Language::getCurrent()->language_id . ' doesn\'t exist'); | ||
| 695 | - } | ||
| 696 | - } else { | ||
| 697 | - // Create option | ||
| 698 | - $option = new TaxOption(); | ||
| 699 | - $option->generateLangs(); | ||
| 700 | - $option_langs = $option->model_langs; | ||
| 701 | - foreach($option_langs as $option_lang) { | ||
| 702 | - $option_lang->value = $parsed_option_name[ 'name' ]; | ||
| 703 | - } | ||
| 704 | - $option->tax_group_id = $taxGroup->tax_group_id; | ||
| 705 | - $option->save(); | ||
| 706 | - } | ||
| 707 | - $options[] = $option->tax_option_id; | ||
| 708 | - } | 671 | +// $filters_options = explode(',', $filter[ 2 ][ 0 ]); |
| 672 | +// foreach($filters_options as $filter_options) { | ||
| 673 | +// $parsed_option_name = $this->parseName($filter_options); | ||
| 674 | +// /** | ||
| 675 | +// * @var TaxOption $option | ||
| 676 | +// */ | ||
| 677 | +// | ||
| 678 | +// if(!empty( $parsed_option_name[ 'remote_id' ] ) && ( $option = TaxOption::find() | ||
| 679 | +// ->joinWith('lang') | ||
| 680 | +// ->andFilterWhere([ 'remote_id' => $parsed_option_name[ 'remote_id' ] ]) | ||
| 681 | +// ->andFilterWhere([ 'tax_group_id' => $taxGroup->tax_group_id ]) | ||
| 682 | +// ->one() ) !== NULL | ||
| 683 | +// ) { | ||
| 684 | +// if(!empty( $option->lang )) { | ||
| 685 | +// $option->lang->value = $parsed_option_name[ 'name' ]; | ||
| 686 | +// $option->lang->save(); | ||
| 687 | +// } else { | ||
| 688 | +// throw new \Exception('Tax option with ID ' . $option->tax_option_id . ' and lang ' . Language::getCurrent()->language_id . ' doesn\'t exist'); | ||
| 689 | +// } | ||
| 690 | +// } else { | ||
| 691 | +// // Create option | ||
| 692 | +// $option = new TaxOption(); | ||
| 693 | +// $option->generateLangs(); | ||
| 694 | +// $option_langs = $option->model_langs; | ||
| 695 | +// foreach($option_langs as $option_lang) { | ||
| 696 | +// $option_lang->value = $parsed_option_name[ 'name' ]; | ||
| 697 | +// } | ||
| 698 | +// $option->tax_group_id = $taxGroup->tax_group_id; | ||
| 699 | +// $option->save(); | ||
| 700 | +// } | ||
| 701 | +// $options[] = $option->tax_option_id; | ||
| 702 | +// } | ||
| 709 | } | 703 | } |
| 710 | return $options; | 704 | return $options; |
| 711 | } | 705 | } |
common/modules/product/models/Product.php
| @@ -156,15 +156,6 @@ | @@ -156,15 +156,6 @@ | ||
| 156 | { | 156 | { |
| 157 | return $this->hasOne(Brand::className(), [ 'brand_id' => 'brand_id' ]); | 157 | return $this->hasOne(Brand::className(), [ 'brand_id' => 'brand_id' ]); |
| 158 | } | 158 | } |
| 159 | - | ||
| 160 | - | ||
| 161 | - | ||
| 162 | - public function beforeValidate() | ||
| 163 | - { | ||
| 164 | - if(parent::beforeValidate()){ | ||
| 165 | - die('here'); | ||
| 166 | - } | ||
| 167 | - } | ||
| 168 | 159 | ||
| 169 | /** | 160 | /** |
| 170 | * @return \yii\db\ActiveQuery | 161 | * @return \yii\db\ActiveQuery |
| @@ -354,53 +345,53 @@ | @@ -354,53 +345,53 @@ | ||
| 354 | ->sum('quantity'); | 345 | ->sum('quantity'); |
| 355 | } | 346 | } |
| 356 | 347 | ||
| 357 | - public function afterSave($insert, $changedAttributes) | ||
| 358 | - { | ||
| 359 | - parent::afterSave($insert, $changedAttributes); | ||
| 360 | - | ||
| 361 | - | ||
| 362 | - if(!empty($this->categories)){ | ||
| 363 | - $categories = Category::findAll($this->categories); | ||
| 364 | - $this->unlinkAll('categories', true); | ||
| 365 | - foreach($categories as $category){ | ||
| 366 | - $this->link('categories', $category); | ||
| 367 | - } | ||
| 368 | - } | ||
| 369 | - | ||
| 370 | - if(!empty($this->options)){ | ||
| 371 | - $options = TaxOption::findAll($this->options); | ||
| 372 | - $this->unlinkAll('options',true); | ||
| 373 | - foreach($options as $option){ | ||
| 374 | - $this->link('options', $option); | ||
| 375 | - } | ||
| 376 | - } | ||
| 377 | - | ||
| 378 | - | ||
| 379 | - if (!empty($this->_variants)) { | ||
| 380 | - $todel = []; | ||
| 381 | - foreach ($this->variants ?: [] as $_variant) { | ||
| 382 | - $todel[$_variant->product_variant_id] = $_variant->product_variant_id; | ||
| 383 | - } | ||
| 384 | - foreach ($this->_variants as $_variant) { | ||
| 385 | - if (!is_array($_variant)) { | ||
| 386 | - return; | ||
| 387 | - } | ||
| 388 | - if (!empty($_variant['product_variant_id'])) { | ||
| 389 | - unset($todel[$_variant['product_variant_id']]); | ||
| 390 | - $model = ProductVariant::findOne($_variant['product_variant_id']); | ||
| 391 | - } else { | ||
| 392 | - $model = new ProductVariant(); | ||
| 393 | - } | ||
| 394 | - $_variant['product_id'] = $this->product_id; | ||
| 395 | - $model->load(['ProductVariant' => $_variant]); | ||
| 396 | - $model->product_id = $this->product_id; | ||
| 397 | - $model->save(); | ||
| 398 | - } | ||
| 399 | - if (!empty($todel)) { | ||
| 400 | - ProductVariant::deleteAll(['product_variant_id' => $todel]); | ||
| 401 | - } | ||
| 402 | - } | ||
| 403 | - } | 348 | +// public function afterSave($insert, $changedAttributes) |
| 349 | +// { | ||
| 350 | +// parent::afterSave($insert, $changedAttributes); | ||
| 351 | +// | ||
| 352 | +// | ||
| 353 | +// if(!empty($this->categories)){ | ||
| 354 | +// $categories = Category::findAll($this->categories); | ||
| 355 | +// $this->unlinkAll('categories', true); | ||
| 356 | +// foreach($categories as $category){ | ||
| 357 | +// $this->link('categories', $category); | ||
| 358 | +// } | ||
| 359 | +// } | ||
| 360 | +// | ||
| 361 | +// if(!empty($this->options)){ | ||
| 362 | +// $options = TaxOption::findAll($this->options); | ||
| 363 | +// $this->unlinkAll('options',true); | ||
| 364 | +// foreach($options as $option){ | ||
| 365 | +// $this->link('options', $option); | ||
| 366 | +// } | ||
| 367 | +// } | ||
| 368 | +// | ||
| 369 | +// | ||
| 370 | +// if (!empty($this->_variants)) { | ||
| 371 | +// $todel = []; | ||
| 372 | +// foreach ($this->variants ?: [] as $_variant) { | ||
| 373 | +// $todel[$_variant->product_variant_id] = $_variant->product_variant_id; | ||
| 374 | +// } | ||
| 375 | +// foreach ($this->_variants as $_variant) { | ||
| 376 | +// if (!is_array($_variant)) { | ||
| 377 | +// return; | ||
| 378 | +// } | ||
| 379 | +// if (!empty($_variant['product_variant_id'])) { | ||
| 380 | +// unset($todel[$_variant['product_variant_id']]); | ||
| 381 | +// $model = ProductVariant::findOne($_variant['product_variant_id']); | ||
| 382 | +// } else { | ||
| 383 | +// $model = new ProductVariant(); | ||
| 384 | +// } | ||
| 385 | +// $_variant['product_id'] = $this->product_id; | ||
| 386 | +// $model->load(['ProductVariant' => $_variant]); | ||
| 387 | +// $model->product_id = $this->product_id; | ||
| 388 | +// $model->save(); | ||
| 389 | +// } | ||
| 390 | +// if (!empty($todel)) { | ||
| 391 | +// ProductVariant::deleteAll(['product_variant_id' => $todel]); | ||
| 392 | +// } | ||
| 393 | +// } | ||
| 394 | +// } | ||
| 404 | 395 | ||
| 405 | public function imagesUpload() | 396 | public function imagesUpload() |
| 406 | { | 397 | { |
common/modules/rubrication/models/TaxGroup.php
| @@ -121,6 +121,7 @@ | @@ -121,6 +121,7 @@ | ||
| 121 | 121 | ||
| 122 | public function afterSave($insert, $changedAttributes) | 122 | public function afterSave($insert, $changedAttributes) |
| 123 | { | 123 | { |
| 124 | + parent::afterSave($insert, $changedAttributes); | ||
| 124 | $this->unlinkAll('categories', true); | 125 | $this->unlinkAll('categories', true); |
| 125 | $categories = []; | 126 | $categories = []; |
| 126 | if(!empty( $this->categories )) { | 127 | if(!empty( $this->categories )) { |
common/modules/rubrication/models/TaxOption.php
| @@ -63,10 +63,10 @@ | @@ -63,10 +63,10 @@ | ||
| 63 | ], | 63 | ], |
| 64 | ], | 64 | ], |
| 65 | ], | 65 | ], |
| 66 | -// 'artboxtree' => [ | ||
| 67 | -// 'class' => ArtboxTreeBehavior::className(), | ||
| 68 | -// 'keyNameGroup' => 'tax_group_id', | ||
| 69 | -// ], | 66 | + 'artboxtree' => [ |
| 67 | + 'class' => ArtboxTreeBehavior::className(), | ||
| 68 | + 'keyNameGroup' => 'tax_group_id', | ||
| 69 | + ], | ||
| 70 | 'language' => [ | 70 | 'language' => [ |
| 71 | 'class' => LanguageBehavior::className(), | 71 | 'class' => LanguageBehavior::className(), |
| 72 | ], | 72 | ], |