Commit 02a42412008421f2ca7714e026f089b24c556bd9
1 parent
9495311a
14.06.16
Showing
2 changed files
with
22 additions
and
3 deletions
Show diff stats
common/modules/product/models/Import.php
... | ... | @@ -131,16 +131,22 @@ class Import extends Model { |
131 | 131 | $stock->save(); |
132 | 132 | } |
133 | 133 | |
134 | - $productStock = ProductStock::find()->where(['product_variant_id' => $this->product_variant_id, 'stock_id' => $stock->stock_id])->one(); | |
134 | + $productStock = ProductStock::find()->where(['product_variant_id' => $productVariant->product_variant_id, 'stock_id' => $stock->stock_id])->one(); | |
135 | + if(!$productStock instanceof ProductStock) { | |
136 | + $productStock = new ProductStock; | |
137 | + $productStock->product_variant_id = $productVariant->product_variant_id; | |
138 | + $productStock->stock_id = $stock->stock_id; | |
139 | + $productStock->product_id = $productVariant->product_id; | |
140 | + } | |
135 | 141 | $productStock->quantity = $count; |
136 | 142 | $productStock->save(); |
137 | 143 | |
138 | - $productStocks = ProductStock::find()->where(['product_variant_id' => $this->product_variant_id])->andWhere(['<>', 'stock_id', $stock->stock_id])->all(); | |
144 | + $productStocks = ProductStock::find()->where(['product_variant_id' => $productVariant->product_variant_id])->andWhere(['<>', 'stock_id', $stock->stock_id])->all(); | |
139 | 145 | |
140 | 146 | $quantity = array_sum(ArrayHelper::getColumn($productStocks, 'quantity')) + $count; |
141 | 147 | } else { |
142 | 148 | |
143 | - $productStocks = ProductStock::find()->where(['product_variant_id' => $this->product_variant_id])->all(); | |
149 | + $productStocks = ProductStock::find()->where(['product_variant_id' => $productVariant->product_variant_id])->all(); | |
144 | 150 | |
145 | 151 | if($productStocks instanceof ProductStock){ |
146 | 152 | $quantity = array_sum(ArrayHelper::getColumn($productStocks, 'quantity')) + $count; | ... | ... |
common/modules/product/models/ProductVariant.php
... | ... | @@ -169,6 +169,19 @@ class ProductVariant extends \yii\db\ActiveRecord |
169 | 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 | + $productStock = ProductStock::find()->where(['product_variant_id' => $this->product_variant_id, 'stock_id' => $id])->one(); | |
179 | + $productStock->quantity = $quantity; | |
180 | + $productStock->save(); | |
181 | + } | |
182 | + } | |
183 | + parent::afterSave($insert, $changedAttributes); | |
184 | + } | |
172 | 185 | |
173 | 186 | public function beforeDelete() { |
174 | 187 | ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); | ... | ... |