Commit 9495311a45a7e128ba654497db17c8a47a637855
1 parent
a4b231f8
14.06.16
Showing
2 changed files
with
19 additions
and
18 deletions
Show diff stats
common/modules/product/models/Import.php
@@ -16,6 +16,7 @@ use common\modules\product\models\Product; | @@ -16,6 +16,7 @@ use common\modules\product\models\Product; | ||
16 | use common\modules\product\models\ProductVariant; | 16 | use common\modules\product\models\ProductVariant; |
17 | use common\modules\product\models\RemoteProducts; | 17 | use common\modules\product\models\RemoteProducts; |
18 | use yii\base\Model; | 18 | use yii\base\Model; |
19 | +use yii\helpers\ArrayHelper; | ||
19 | 20 | ||
20 | class Import extends Model { | 21 | class Import extends Model { |
21 | public $file; | 22 | public $file; |
@@ -119,7 +120,7 @@ class Import extends Model { | @@ -119,7 +120,7 @@ class Import extends Model { | ||
119 | } | 120 | } |
120 | 121 | ||
121 | 122 | ||
122 | - $quantity = 0; | 123 | + |
123 | 124 | ||
124 | // ===== Set stock ==== | 125 | // ===== Set stock ==== |
125 | if ( $city_name ) { | 126 | if ( $city_name ) { |
@@ -130,8 +131,23 @@ class Import extends Model { | @@ -130,8 +131,23 @@ class Import extends Model { | ||
130 | $stock->save(); | 131 | $stock->save(); |
131 | } | 132 | } |
132 | 133 | ||
133 | - $productVariant->stocks[$stock->stock_id] = $count; | ||
134 | - $quantity = $quantity + $count; | 134 | + $productStock = ProductStock::find()->where(['product_variant_id' => $this->product_variant_id, 'stock_id' => $stock->stock_id])->one(); |
135 | + $productStock->quantity = $count; | ||
136 | + $productStock->save(); | ||
137 | + | ||
138 | + $productStocks = ProductStock::find()->where(['product_variant_id' => $this->product_variant_id])->andWhere(['<>', 'stock_id', $stock->stock_id])->all(); | ||
139 | + | ||
140 | + $quantity = array_sum(ArrayHelper::getColumn($productStocks, 'quantity')) + $count; | ||
141 | + } else { | ||
142 | + | ||
143 | + $productStocks = ProductStock::find()->where(['product_variant_id' => $this->product_variant_id])->all(); | ||
144 | + | ||
145 | + if($productStocks instanceof ProductStock){ | ||
146 | + $quantity = array_sum(ArrayHelper::getColumn($productStocks, 'quantity')) + $count; | ||
147 | + } else { | ||
148 | + $quantity = 0; | ||
149 | + } | ||
150 | + | ||
135 | } | 151 | } |
136 | 152 | ||
137 | if ($price_promo) { | 153 | if ($price_promo) { |
common/modules/product/models/ProductVariant.php
@@ -169,21 +169,6 @@ class ProductVariant extends \yii\db\ActiveRecord | @@ -169,21 +169,6 @@ class ProductVariant extends \yii\db\ActiveRecord | ||
169 | $this->stocks = (array) $stocks; | 169 | $this->stocks = (array) $stocks; |
170 | } | 170 | } |
171 | 171 | ||
172 | - public function afterSave($insert, $changedAttributes) | ||
173 | - { | ||
174 | - if (!is_null($this->stocks)) { | ||
175 | - ProductStock::deleteAll(['product_variant_id' => $this->product_variant_id]); | ||
176 | - $values = []; | ||
177 | - foreach ($this->stocks as $id => $quantity) { | ||
178 | - $values[] = [$this->product_id, $this->product_variant_id, $id, $quantity]; | ||
179 | - } | ||
180 | - if ($values) { | ||
181 | - self::getDb()->createCommand() | ||
182 | - ->batchInsert(ProductStock::tableName(), ['product_id', 'product_variant_id', 'stock_id', 'quantity'], $values)->execute(); | ||
183 | - } | ||
184 | - } | ||
185 | - parent::afterSave($insert, $changedAttributes); | ||
186 | - } | ||
187 | 172 | ||
188 | public function beforeDelete() { | 173 | public function beforeDelete() { |
189 | ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); | 174 | ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); |