|
@@ -59,24 +59,30 @@ class GoodStockInfo extends Model
|
|
|
$arr = self::where([["stockid","=",$stockid],["balance_num",">",0]])->select()->toArray();
|
|
|
if(empty($arr)) throw new Exception("库存批次数量不足","1006");
|
|
|
$list=[];
|
|
|
+ $stockid = array_column($arr,"stockid");
|
|
|
+ $stock=self::name("good_stock")->where([["id","in",$stockid]])->column("id,usable_stock,wait_out_stock",'id');
|
|
|
foreach ($arr as $item) {
|
|
|
if($num<=0) break;
|
|
|
$temp=[];
|
|
|
$update=[];
|
|
|
+ $stockup=[];
|
|
|
if($item['balance_num']<=$num){
|
|
|
$update['balance_num'] =0;
|
|
|
$update['used_num']= $item['used_num']+$item['balance_num'];
|
|
|
$num-=$item['balance_num'];
|
|
|
$update['updatetime'] =date("Y-m-d H:i:s");
|
|
|
$temp=["bnCode"=>$item['bnCode'],"num"=>$item['balance_num'],"origin_price"=>$item["origin_price"]];
|
|
|
+ $stockup=["usable_stock"=>$stock[$item['stockid']]['usable_stock']-$item['balance_num'],"wait_out_stock"=>$stock[$item['stockid']]['wait_out_stock']+$item['balance_num'],"updatetime"=>date("Y-m-d H:i:s")];
|
|
|
}else{
|
|
|
$update['balance_num']=$item['balance_num']-$num;
|
|
|
$update['used_num']=$item['used_num']+$num;
|
|
|
$update['updatetime'] =date("Y-m-d H:i:s");
|
|
|
$temp=["bnCode"=>$item['bnCode'],"num"=>$num,"origin_price"=>$item["origin_price"]];
|
|
|
- $num=0;
|
|
|
+ $stockup=["usable_stock"=>$stock[$item['stockid']]['usable_stock']-$num,"wait_out_stock"=>$stock[$item['stockid']]['wait_out_stock']+$num,"updatetime"=>date("Y-m-d H:i:s")];
|
|
|
+ $num=0;
|
|
|
}
|
|
|
self::update($update,$item);
|
|
|
+ self::name("good_stock")->where($stock[$item['stockid']])->update($stockup);
|
|
|
$list[]=$temp;
|
|
|
}
|
|
|
return $list;
|