From 9f8be5c90b988da37d3e64f1b2813579168218cf Mon Sep 17 00:00:00 2001 From: yarik Date: Wed, 12 Oct 2016 13:49:50 +0300 Subject: [PATCH] Import browser beta v0.1 --- common/modules/language/behaviors/LanguageBehavior.php | 6 +++--- common/modules/product/controllers/ManageController.php | 18 +++++++++--------- common/modules/product/models/Import.php | 24 +++++++++++++----------- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/common/modules/language/behaviors/LanguageBehavior.php b/common/modules/language/behaviors/LanguageBehavior.php index 4a77a82..6f73f9a 100755 --- a/common/modules/language/behaviors/LanguageBehavior.php +++ b/common/modules/language/behaviors/LanguageBehavior.php @@ -215,9 +215,9 @@ public function linkLangs() { $owner = $this->owner; - if($owner->isNewRecord) { - return false; - } +// if($owner->isNewRecord) { +// return false; +// } $lang_key = $this->getLangKey(); $owner_key = $this->getOwnerKey(); $model_langs = $this->model_langs; diff --git a/common/modules/product/controllers/ManageController.php b/common/modules/product/controllers/ManageController.php index bf751cb..a2f1727 100755 --- a/common/modules/product/controllers/ManageController.php +++ b/common/modules/product/controllers/ManageController.php @@ -91,13 +91,13 @@ public function actionCreate() { $model = new Product(); - $model_langs = $model->generateLangs(); + $model->generateLangs(); $product_spec = new ProductSpec(); - $product_spec_langs = $product_spec->generateLangs(); + $product_spec->generateLangs(); if($model->load(Yii::$app->request->post())) { - $model->loadLangs(\Yii::$app->request, $model_langs); + $model->loadLangs(\Yii::$app->request); $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); $model->certificateUpload = UploadedFile::getInstances($model, 'certificateUpload'); @@ -123,13 +123,13 @@ } if($product_spec->load(Yii::$app->request->post())) { - $product_spec->loadLangs(\Yii::$app->request, $product_spec_langs); + $product_spec->loadLangs(\Yii::$app->request); $product_spec->product_id = $model->product_id; $product_spec->techSpecFile = UploadedFile::getInstance($product_spec, 'techSpecFile'); $product_spec->techCharFile = UploadedFile::getInstance($product_spec, 'techCharFile'); - if($product_spec->upload() && $model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { + if($product_spec->upload() && $model->linkLangs() && $model->saveLangs()) { $product_spec->save(false); - if($product_spec->linkLangs($product_spec_langs) && $product_spec->saveLangs($product_spec_langs)) { + if($product_spec->linkLangs() && $product_spec->saveLangs()) { return $this->redirect([ 'view', 'id' => $model->product_id, @@ -141,7 +141,7 @@ ]); } } - } elseif($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { + } elseif($model->linkLangs() && $model->saveLangs()) { return $this->redirect([ 'view', 'id' => $model->product_id, @@ -156,9 +156,9 @@ } return $this->render('create', [ 'model' => $model, - 'model_langs' => $model_langs, + 'model_langs' => $model->model_langs, 'product_spec' => $product_spec, - 'product_spec_langs' => $product_spec_langs, + 'product_spec_langs' => $product_spec->model_langs, ]); } diff --git a/common/modules/product/models/Import.php b/common/modules/product/models/Import.php index 4c470d7..35003ad 100755 --- a/common/modules/product/models/Import.php +++ b/common/modules/product/models/Import.php @@ -566,12 +566,17 @@ $_product->is_top = $product_top; $_product->akciya = $product_akciya; $_product->is_new = $product_new; - if(!$_product->save()) { - if(!empty( $_product->lang )) { - $product_name_inserted = $_product->lang->name; - } else { - $product_name_inserted = $_product->model_langs[ Language::$current->language_id ]->name; - } + if(!empty( $options )) { + $_product->options = $options; + } + + if(!empty( $_product->lang )) { + $product_name_inserted = $_product->lang->name; + } else { + $product_name_inserted = $_product->model_langs[ Language::$current->language_id ]->name; + } + + if(!$_product->save() || !$_product->transactionStatus) { $result_items[] = 'Product #' . $product_name_inserted . ' not saved' . " (line $j)"; continue; } @@ -580,13 +585,10 @@ // нужно для проставления характеристик относящихся к модификациям $this->saveVariants($data, $product_cost_old, $_product->product_id, $_product->categories, $product_cost); - if(!empty( $options )) { - $_product->options = $options; - } - $_product->save(); +// $_product->save(); - $result_items[] = "Product {$_product->lang->name} #{$_product->product_id} saved (" . ( $is_new_product ? 'new product' : 'exists product' ) . ")" . " (line $j)"; + $result_items[] = "Product {$product_name_inserted} #{$_product->product_id} saved (" . ( $is_new_product ? 'new product' : 'exists product' ) . ")" . " (line $j)"; } catch(\Exception $e) { $result_items[] = $e->getMessage() . '(line ' . $j . ')'; -- libgit2 0.21.4