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 | 16 | use common\modules\product\models\ProductVariant; | 
| 17 | 17 | use common\modules\product\models\RemoteProducts; | 
| 18 | 18 | use yii\base\Model; | 
| 19 | +use yii\helpers\ArrayHelper; | |
| 19 | 20 | |
| 20 | 21 | class Import extends Model { | 
| 21 | 22 | public $file; | 
| ... | ... | @@ -119,7 +120,7 @@ class Import extends Model { | 
| 119 | 120 | } | 
| 120 | 121 | |
| 121 | 122 | |
| 122 | - $quantity = 0; | |
| 123 | + | |
| 123 | 124 | |
| 124 | 125 | // ===== Set stock ==== | 
| 125 | 126 | if ( $city_name ) { | 
| ... | ... | @@ -130,8 +131,23 @@ class Import extends Model { | 
| 130 | 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 | 153 | if ($price_promo) { | ... | ... | 
common/modules/product/models/ProductVariant.php
| ... | ... | @@ -169,21 +169,6 @@ 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 | - $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 | 173 | public function beforeDelete() { | 
| 189 | 174 | ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); | ... | ... | 
