wugg 2 years ago
parent
commit
1712ea4b21
2 changed files with 43 additions and 4 deletions
  1. 5 4
      app/admin/controller/Orderback.php
  2. 38 0
      app/admin/model/GoodStockInfo.php

+ 5 - 4
app/admin/controller/Orderback.php

@@ -424,7 +424,8 @@ class Orderback extends Base
                 Db::rollback();
                 return error_show(1004,"未找到售后单数据");
             }
-			$sabebn =Db::name("sale_info")->where(["orderCode"=>$info['orderCode']])->select()->toArray();
+			$sabebn =Db::name("sale_info")->where([["orderCode",'=',$info['orderCode']],["num",">",0]])->select()
+			->toArray();
             if($param['can_sell_num']!=0&& $param['can_sell_wsm']!=''){
                     if($sale['is_stock']==1){ //库存品退回原仓库 备库单释放数量 采购单
                         $param['can_sell_wsm'] = $out['wsm_code'];
@@ -464,7 +465,7 @@ class Orderback extends Base
                         			$total_num=0;
                         			$ve['num']-=$total_num;
                         		}
-                        		$bnin=GoodStockInfo::AddBn($stockid,$ve['bnCode'],$tempnum,$ve['origin_price']);
+                        		$bnin=GoodStockInfo::ReturnAdd($stockid,$ve['bnCode'],$tempnum,$ve['stockid']);
                         		if($bnin==false){
                         			 Db::rollback();
                                     return error_show(1005, '可售商品Bn库存数入库失败');
@@ -481,7 +482,7 @@ class Orderback extends Base
                         		}
                         	}
                         }
-                $good_data=['good_log_code'=>$param['thNo'],"stock_id"=>isset($stock['id'])? $stock['id']:Db::name("good_stock")->getLastInsID(),"type"=>1,'stock'=>$param['can_sell_num'],"stock_name"=>"usable_stock"];
+                $good_data=['good_log_code'=>$param['thNo'],"stock_id"=> $stockid,"type"=>1,'stock'=>$param['can_sell_num'],"stock_name"=>"usable_stock"];
                 GoodLog::LogAdd($this->post['token'],$good_data,'RKTHD');
              }
 
@@ -525,7 +526,7 @@ class Orderback extends Base
                         			$total_num=0;
                         			$ve['num']-=$total_num;
                         		}
-                        		$bnin=GoodStockInfo::AddBn($stockid,$ve['bnCode'],$tempnum,$ve['origin_price']);
+                        	    $bnin=GoodStockInfo::ReturnAdd($stockid,$ve['bnCode'],$tempnum,$ve['stockid']);
                         		if($bnin==false){
                         			 Db::rollback();
                                     return error_show(1005, '可售商品Bn库存数入库失败');

+ 38 - 0
app/admin/model/GoodStockInfo.php

@@ -189,4 +189,42 @@ class GoodStockInfo extends Model
 
 			return	empty($stock)? self::insert($update): self::update($update,$stock);
 	}
+	/** 退货退到其他仓库的话 原仓库批次总数 - 退货数量
+	* @param $stockid 退货仓库
+	* @param $bnCode bn批次编号
+	* @param $num 退货数量
+	* @param $origin_stockid 原仓库
+	 * @return \app\admin\model\GoodStockInfo|int|string
+	* @throws \think\Exception
+	 */
+	static function ReturnAdd($stockid,$bnCode,$num,$origin_stockid){
+		$origin = self::where(["stockid"=>$origin_stockid,"bnCode"=>$bnCode])->findOrEmpty()->toArray();
+		if($stockid!=$origin_stockid){
+			if(empty($origin))throw new Exception("未找到Bn订单数据",1006);
+			$temp['total_num'] =$origin['total_num'] -$num;
+			$temp['used_num'] =$origin['used_num'] -$num;
+			$temp['updatetime'] =date("Y-m-d H:i:s");
+			self::update($temp,$origin);
+		}
+		$stock = self::where(["stockid"=>$stockid,"bnCode"=>$bnCode])->findOrEmpty()->toArray();
+		if(empty($stock)){
+			$update=[
+						"bnCode"=>$bnCode,
+						"stockid"=>$stockid,
+						"total_num"=>$num,
+						"used_num"=>0,
+						"balance_num"=>$num,
+						"origin_price"=>$origin['origin_price'],
+						"addtime"=>date("Y-m-d H:i:s"),
+						"updatetime"=>date("Y-m-d H:i:s")
+						];
+			return self::insert($update);
+		}else{
+						$update['balance_num']=$stock['balance_num']+$num;
+						$stockid!=$origin_stockid ? $update['total_num']=$stock['total_num']+$num:$update['used_num']=$stock['used_num']-$num;
+						$update['updatetime']=date("Y-m-d H:i:s");
+					return 	self::update($update,$stock);
+		}
+
+	}
 }