Эх сурвалжийг харах

报单时减库存,自动下架(从nc同步)

theo 3 жил өмнө
parent
commit
54492d6f72

+ 16 - 0
common/models/forms/DeclarationForm.php

@@ -647,6 +647,14 @@ class DeclarationForm extends Model
                     'GOODS_TITLE' => $decPackage['PACKAGE_NAME'],
                     'EMAIL' => $this->email
                 ];
+                // 更改库存和状态
+                $data = DeclarationPackage::find()->where(['ID' => $decPackage['ID']])->one();
+                $data->STORE_NUMS = $data->STORE_NUMS - 1;
+                if($data->STORE_NUMS <= 0){
+                    $data->STATUS = 0;
+                    $data->UPDATED_AT = Date::nowTime();
+                }
+                $data->update();
             }else{
                 $ids = $this->goodsId;
                 $totalAmount = 0;
@@ -670,6 +678,14 @@ class DeclarationForm extends Model
                                 'EMAIL' => $this->email,
                                 'TAX_RATE' => $goods['TAX_RATE'],
                             ];
+                            // 更改库存和状态
+                            $data = ShopGoods::find()->where(['ID' => $goods['ID']])->one();
+                            $data->STORE_NUMS = $data->STORE_NUMS - intval($v);
+                            if($data->STORE_NUMS <= 0){
+                                $data->STATUS = 0;
+                                $data->UPDATED_AT = Date::nowTime();
+                            }
+                            $data->update();
                         }
                     }
                 }

+ 26 - 74
common/models/forms/DeclarationLoopForm.php

@@ -117,65 +117,32 @@ class DeclarationLoopForm extends Model
             foreach ($this->data as $value){
 				
 				/**
-				                 * 2022-04-29
-				                 * York
-				                 * 获取商品套餐信息
-				                 */
-				                if (isset($value['packageId']) && $value['packageId']){
-				
-				
-				                    $packagedata = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $value['packageId']]);
-				                    //var_dump($packagedata['ID']);
-				                    if($packagedata['STORE_NUMS']>0){
-				                        $data =  DeclarationPackage::find()->where(['ID'=> $packagedata['ID'] ])->one();
-				                        $goods_store_nums = $data->STORE_NUMS - 1;
-				                        $data->STORE_NUMS = $goods_store_nums;
-				                        $data->update();
-				//                        var_dump('输出一下数量');
-				//                        var_dump($goods_store_nums);
-				                        //库存为0下架套餐
-				                        if ($goods_store_nums <= 0){
-				                            $data->STATUS = 0;
-				                            $data->UPDATED_AT = Date::nowTime();
-				//                            var_dump('购买后套餐库存为0 下架拉');
-				                        }
-				
-				                    }else{
-				                        throw new Exception($packagedata['PACKAGE_NAME'].'Insufficient inventory');// 库存不足
-				                    }
-				
-				
-				                }
-								
-								if (count($value['goodsId']) > 0 && (count($value['goodsId']) == count($value['goodsNum']))){
-								    for ($i=0;$i<count($value['goodsId']);$i++){
-								        $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $value['goodsId'][$i]]);
-								        if ($goods['STATUS'] == 1 ){
-								            if($goods['STORE_NUMS'] >= $value['goodsNum'][$i]){
-								                $data = ShopGoods::find()->where(['ID' => $value['goodsId'][$i]])->one();
-								                $goods_store_nums = $data->STORE_NUMS - $value['goodsNum'][$i];
-								                $data->STORE_NUMS = $goods_store_nums;
-								                $data->update();
-								                if($goods_store_nums <= 0){
-								                    $data->STATUS = 0;
-								                    $data->UPDATED_AT = Date::nowTime();
-								                    $data->update();
-								                }
-								            }else{
-								                throw new Exception($goods['GOODS_NAME'].'Insufficient inventory');// 商品库存不足
-								            }
-								
-								        }else{
-								            throw new Exception($goods['GOODS_NAME'].'Sold out');// 商品已下架
-								        }
-								
-								    }
-								
-								}
-				
-				
-				
-				
+                 * 2022-04-29
+                 * York
+                 * 获取商品套餐信息
+                 */
+                if (isset($value['packageId']) && $value['packageId']){
+
+                    $packagedata = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $value['packageId']]);
+                    //var_dump($packagedata['ID']);
+                    if($packagedata['STORE_NUMS']<=0){
+                        throw new Exception($packagedata['PACKAGE_NAME'].'Insufficient inventory');// 库存不足
+                    }
+                }
+
+                if (count($value['goodsId']) > 0 && (count($value['goodsId']) == count($value['goodsNum']))){
+                    for ($i=0;$i<count($value['goodsId']);$i++){
+                        $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $value['goodsId'][$i]]);
+                        if ($goods['STATUS'] == 1 ){
+                            if($goods['STORE_NUMS'] < $value['goodsNum'][$i]){
+                                throw new Exception($goods['GOODS_NAME'].'Insufficient inventory');// 商品库存不足
+                            }
+                        }else{
+                            throw new Exception($goods['GOODS_NAME'].'Sold out');// 商品已下架
+                        }
+                    }
+                }
+
                 if(is_array($value)){
                     foreach($value as $key=>$decFormData){
                         $model->$key = $decFormData;
@@ -194,26 +161,11 @@ class DeclarationLoopForm extends Model
                     if(!$model->add($this->data)){
                         throw new Exception(Form::formatErrorsForApi($model->getErrors()));
                     }
-//                    $model->type = null;
-//                    $model->decSn = null;
-//                    $model->userId = null;
-//                    $model->toUserId = null;
-//                    $model->decPv = null;
-//                    $model->insertUserName = null;
-//                    $model->insertUserIdCard = null;
-//                    $model->conUserName = null;
-//                    $model->recUserName = null;
-//                    $model->location = null;
                 } else {
                     throw new Exception('The format of the report data is incorrect');// 报单数据格式错误
                 }
             }
 
-            // 把这几个首购单的注册用户点位绑定到一起
-//            UserBind::zcBind($allZcUserIds, $zcUserIdCard);
-//            if((microtime(true) - $startTime) >= 20)  {
-//                throw new Exception('服务端报单超时');
-//            }
             $transaction->commit();
         } catch (\Exception $e){
             $transaction->rollBack();

+ 28 - 32
common/models/forms/DeclarationUpgradeForm.php

@@ -282,39 +282,35 @@ class DeclarationUpgradeForm extends Model
                 throw new Exception(Form::formatErrorsForApi($orderModel->getErrors()));
             }
 			
-			/**
-			  * 2022-05-10
-			  * York
-			  */
-			 foreach ($this->goodsNum as $k => $v) {
-			     if ($v) {
-			         $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $this->goodsId[$k]]);
-			
-			         $storenums = $goods['STORE_NUMS'] - $this->goodsNum[$k];
-			         if($goods['STATUS']==1){
-			            if($goods['STORE_NUMS'] >=$this->goodsNum[$k]){
-			                $data = ShopGoods::find()->where(['ID' => $this->goodsId[$k]])->one();
-			                $data->STORE_NUMS = $storenums;
-			                $data->update();
-			                if ($storenums==0){
-			                    $data->STATUS = 0;
-			                    $data->UPDATED_AT = Date::nowTime();
-			                    $data->update();
-			                }
-			            }else{
-//			                throw new Exception("商品".$goods['GOODS_NAME']."库存不足");
-                            throw new Exception("product".$goods['GOODS_NAME']."Insufficient inventory");
-			            }
-			         }else{
-//			             throw new Exception("商品".$goods['GOODS_NAME']."已下架");
-                         throw new Exception("product".$goods['GOODS_NAME']."Removed from the shelf");
-			         }
-			     }
-			 }
-			// exit();
-
-
+            /**
+             * 2022-05-10
+             * York
+             */
+            foreach ($this->goodsNum as $k => $v) {
+                if ($v) {
+                    $goods = ShopGoods::findOneAsArray('ID=:ID',[':ID'=> $this->goodsId[$k]]);
 
+                    $storenums = $goods['STORE_NUMS'] - $this->goodsNum[$k];
+                    if($goods['STATUS']==1){
+                        if($goods['STORE_NUMS'] >=$this->goodsNum[$k]){
+                            $data = ShopGoods::find()->where(['ID' => $this->goodsId[$k]])->one();
+                            $data->STORE_NUMS = $storenums;
+                            $data->update();
+                            if ($storenums==0){
+                                $data->STATUS = 0;
+                                $data->UPDATED_AT = Date::nowTime();
+                                $data->update();
+                            }
+                        }else{
+//                          throw new Exception("商品".$goods['GOODS_NAME']."库存不足");
+                            throw new Exception("product".$goods['GOODS_NAME']."Insufficient inventory");
+                        }
+                    }else{
+//                          throw new Exception("商品".$goods['GOODS_NAME']."已下架");
+                        throw new Exception("product".$goods['GOODS_NAME']."Removed from the shelf");
+                    }
+                }
+            }
 
             // 加入商品到订单商品表
             foreach($this->_orderGoods as $key=>$value){