Explorar el Código

Merge branch 'version1.5' into dev_wf

wufeng hace 2 años
padre
commit
c6d09e086a
Se han modificado 2 ficheros con 67 adiciones y 13 borrados
  1. 65 11
      app/admin/controller/Sale.php
  2. 2 2
      app/admin/model/SaleInfo.php

+ 65 - 11
app/admin/controller/Sale.php

@@ -3897,7 +3897,7 @@ class Sale extends Base
                     'holder_id' => $einfo['apply_id']
                 ]);
 
-                if($einfo["order_type"]!=1){
+                if($einfo["order_type"]!=1 ){
                 	$stokc = Db::name("good_stock")->where(['spuCode' => $einfo['good_code'], "wsm_code" => $outinfo['wsm_code'], "is_del" => 0])->find();
                 if ($stokc == false) {
                     Db::rollback();
@@ -3945,11 +3945,35 @@ class Sale extends Base
 	                 $good_data[] = ['good_log_code' => $outCode, "stock_id" => $stokc['id'], "type" => 2, 'stock' => $outinfo['send_num'], "stock_name" => "wait_out_stock"];
 	                 GoodLog::LogAdd(['id' => $uid, 'nickname' => $uname], $good_data, "CKD");
                 }else{
-					$bnup =SaleInfo::SendStock($outinfo['orderCode'],$outinfo['send_num']);
-	                 if($bnup==false){
-	                      Db::rollback();
-	                      return error_show(1004,"库存bn库存数更新失败");
-	                 }
+                	$saleinfo =Db::name("sale_info")->where(["orderCode"=>$outinfo['orderCode']])->select()->toArray();
+                	if (!empty($saleinfo)){
+                		$bnup =SaleInfo::SendStock($outinfo['orderCode'],$outinfo['send_num']);
+		                 if($bnup==false){
+		                      Db::rollback();
+		                      return error_show(1004,"库存bn库存数更新失败");
+		                 }
+                	}else{
+                	$stokc = Db::name("good_stock")->where(['spuCode' => $einfo['good_code'], "wsm_code" => $outinfo['wsm_code'], "is_del" => 0])->find();
+		                if ($stokc == false) {
+		                    Db::rollback();
+		                    return error_show(1002, "未找到库存数据");
+		                } else {
+		                    if ($outinfo['send_num'] > $stokc['wait_out_stock']) {
+		                        Db::rollback();
+		                        return error_show(1002, "超出库存数量");
+		                    }
+		                    $stokc['wait_out_stock'] -= $outinfo['send_num'];
+		                    $stokc['total_stock'] = $stokc['wait_out_stock'] + $stokc['usable_stock'];
+		                    //  $stokc['intra_stock']+=$outinfo['send_num'];
+		                    $stokc['updatetime'] = date("Y-m-d H:i:s");
+		                }
+		                $stoc = Db::name("good_stock")->save($stokc);
+		                if ($stoc == false) {
+		                    Db::rollback();
+		                    return error_show(1002, "库存更新失败");
+		                }
+		            }
+
                 }
 
 
@@ -4703,11 +4727,41 @@ class Sale extends Base
                         ];
 
                     }else{
-					$bnup =SaleInfo::SendStock($order_out_infos[$value['outCode']]['orderCode'],$order_out_infos[$value['outCode']]['send_num']);
-	                 if($bnup==false){
-	                      Db::rollback();
-	                      return error_show(1004,"库存bn库存数更新失败");
-	                 }
+//					$bnup =SaleInfo::SendStock($order_out_infos[$value['outCode']]['orderCode'],$order_out_infos[$value['outCode']]['send_num']);
+//	                 if($bnup==false){
+//	                      Db::rollback();
+//	                      return error_show(1004,"库存bn库存数更新失败");
+//	                 }
+	                 $saleinfo =Db::name("sale_info")->where(["orderCode"=>$order_out_infos[$value['outCode']]['orderCode']])->select()->toArray();
+                	if (!empty($saleinfo)){
+                		$bnup =SaleInfo::SendStock($order_out_infos[$value['outCode']]['orderCode'],$order_out_infos[$value['outCode']]['send_num']);
+		                 if($bnup==false){
+		                      Db::rollback();
+		                      return error_show(1004,"库存bn库存数更新失败");
+		                 }
+                	}else{
+                	$stokc = Db::name("good_stock")->where(['spuCode' => $einfo['good_code'], "wsm_code" => $order_out_infos[$value['outCode']]['wsm_code'], "is_del" => 0])->find();
+		                if ($stokc == false) {
+		                    Db::rollback();
+		                    return error_show(1002, "未找到库存数据");
+		                } else {
+		                    if ($order_out_infos[$value['outCode']]['send_num'] > $stokc['wait_out_stock']) {
+		                        Db::rollback();
+		                        return error_show(1002, "超出库存数量");
+		                    }
+		                    $stokc['wait_out_stock'] -= $order_out_infos[$value['outCode']]['send_num'];
+		                    $stokc['total_stock'] = $stokc['wait_out_stock'] + $stokc['usable_stock'];
+		                    //  $stokc['intra_stock']+=$outinfo['send_num'];
+		                    $stokc['updatetime'] = date("Y-m-d H:i:s");
+		                }
+		                $stoc = Db::name("good_stock")->save($stokc);
+		                if ($stoc == false) {
+		                    Db::rollback();
+		                    return error_show(1002, "库存更新失败");
+		                }
+		            }
+
+
                     }
 
 

+ 2 - 2
app/admin/model/SaleInfo.php

@@ -20,9 +20,9 @@ class SaleInfo extends Model
 	 */
     static function SendStock(string $orderCode,int $sendNum){
 			$arr=self::where([["orderCode","=",$orderCode],["send_num",">",0]])->select()->toArray();
-			if(empty($arr))throw new \Error("未找到可用的批次库存数据",1006);
+			if(empty($arr))throw new \Exception("未找到可用的批次库存数据",1006);
 			$stockid = array_unique(array_column($arr,"stockid"));
-				$stock=self::name("good_stock")->where(["id"=>$stockid])->column("id,usable_stock,wait_out_stock",'id');
+			$stock=self::name("good_stock")->where(["id"=>$stockid])->column("id,usable_stock,wait_out_stock",'id');
 			foreach ($arr as $value){
 				$temp=["send_num"=>0,"updatetime"=>date("Y-m-d H:i:s")];
 				if($sendNum >$value['send_num']){