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