Commit 8c4b7f443bde3a8eec884a17ee24d5df2391009b
1 parent
43b8c93c
Import browser beta v0.1
Showing
2 changed files
with
79 additions
and
79 deletions
Show diff stats
common/modules/product/models/Import.php
| ... | ... | @@ -668,38 +668,38 @@ |
| 668 | 668 | $taxGroup->is_filter = false; |
| 669 | 669 | $taxGroup->save(); |
| 670 | 670 | } |
| 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 | -// } | |
| 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 | + } | |
| 703 | 703 | } |
| 704 | 704 | return $options; |
| 705 | 705 | } | ... | ... |
common/modules/product/models/Product.php
| ... | ... | @@ -345,53 +345,53 @@ |
| 345 | 345 | ->sum('quantity'); |
| 346 | 346 | } |
| 347 | 347 | |
| 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 | -// } | |
| 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 | + } | |
| 395 | 395 | |
| 396 | 396 | public function imagesUpload() |
| 397 | 397 | { | ... | ... |