|
@@ -32,14 +32,17 @@ class GoodStockInfo extends Model
|
|
|
"addtime"=>date("Y-m-d H:i:s"),
|
|
|
"updatetime"=>date("Y-m-d H:i:s")
|
|
|
];
|
|
|
+ $result=self::insert($data);
|
|
|
}else{
|
|
|
$total_num = $data["balance_num"]+$num;
|
|
|
if($total_num> $data["total_num"]) throw new Exception("批次入库数量超过总数",1006);
|
|
|
- $data["balance_num"]=$num;
|
|
|
- $data["updatetime"]=date("Y-m-d H:i:s");
|
|
|
+ $temp=[];
|
|
|
+ $temp["balance_num"]=$num;
|
|
|
+ $temp["updatetime"]=date("Y-m-d H:i:s");
|
|
|
+ $result=self::update($temp,$data);
|
|
|
}
|
|
|
|
|
|
- return (new self())->save($data);
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -58,20 +61,21 @@ class GoodStockInfo extends Model
|
|
|
foreach ($arr as $item) {
|
|
|
if($num<=0) break;
|
|
|
$temp=[];
|
|
|
+ $update=[];
|
|
|
if($item['balance_num']<=$num){
|
|
|
- $item['balance_num'] =0;
|
|
|
- $item['used_num'] +=$item['balance_num'];
|
|
|
+ $update['balance_num'] =0;
|
|
|
+ $update['used_num']= $item['used_num']+$item['balance_num'];
|
|
|
$num-=$item['balance_num'];
|
|
|
- $item['updatetime'] =date("Y-m-d H:i:s");
|
|
|
+ $update['updatetime'] =date("Y-m-d H:i:s");
|
|
|
$temp=["bnCode"=>$item['bnCode'],"num"=>$item['balance_num'],"origin_price"=>$item["origin_price"]];
|
|
|
}else{
|
|
|
- $item['balance_num']-=$num;
|
|
|
- $item['used_num'] +=$num;
|
|
|
+ $update['balance_num']=$item['balance_num']-$num;
|
|
|
+ $update['used_num']=$item['used_num']+$num;
|
|
|
$num=0;
|
|
|
- $item['updatetime'] =date("Y-m-d H:i:s");
|
|
|
+ $update['updatetime'] =date("Y-m-d H:i:s");
|
|
|
$temp=["bnCode"=>$item['bnCode'],"num"=>$num,"origin_price"=>$item["origin_price"]];
|
|
|
}
|
|
|
- (new self())->save($item);
|
|
|
+ self::update($update,$item);
|
|
|
$list[]=$temp;
|
|
|
}
|
|
|
return $list;
|
|
@@ -86,10 +90,11 @@ class GoodStockInfo extends Model
|
|
|
static function CheckBn(int $stockid,string $bn,int $num){
|
|
|
$data=self::where(["stockid"=>$stockid,"bnCode"=>$bn])->findOrEmpty()->toArray();
|
|
|
if(empty($data)) throw new Exception("未找到Bn库存数据",1006);
|
|
|
- $data["balance_num"]=$num;
|
|
|
- $data["total_num"]=$data["used_num"]+$num;
|
|
|
- $data["updatetime"]=date("Y-m-d H:i:s");
|
|
|
- return (new self())->save($data);
|
|
|
+ $update=[];
|
|
|
+ $update["balance_num"]=$num;
|
|
|
+ $update["total_num"]=$data["used_num"]+$num;
|
|
|
+ $update["updatetime"]=date("Y-m-d H:i:s");
|
|
|
+ return self::update($update,$data);
|
|
|
}
|
|
|
/**
|
|
|
* @param string $orderCode
|
|
@@ -140,7 +145,7 @@ class GoodStockInfo extends Model
|
|
|
"num"=>$num,
|
|
|
"addtime"=>date("Y-m-d H:i:s")
|
|
|
];
|
|
|
- return self::name("return_info")->save($return);
|
|
|
+ return self::name("return_info")->insert($return);
|
|
|
}
|
|
|
/** 调拨专用 需要注意bn总数变化
|
|
|
* @param int $stockid 库存id
|
|
@@ -152,18 +157,19 @@ class GoodStockInfo extends Model
|
|
|
* @throws \think\Exception
|
|
|
*/
|
|
|
static function bnStock(int $stockid,string $bnCode,int $num,int $flag=0,float $origin_price=0){
|
|
|
- $stock =self::where(["stockid"=>$stockid,"bnCode"=>$bnCode])->findOrEmpty()->toArray();
|
|
|
+ $stock =self::where(["stockid"=>$stockid,"bnCode"=>$bnCode])->lock(true)->findOrEmpty()->toArray();
|
|
|
+ $update=[];
|
|
|
if($flag==1) {
|
|
|
if(empty($stock)|| $stock['balance_num']< $num)
|
|
|
throw new Exception("bn库存数不足",1006);
|
|
|
else{
|
|
|
- $stock['balance_num']-=$num;
|
|
|
- $stock['total_num']-=$num;
|
|
|
- $stock['updatetime']=date("Y-m-d H:i:s");
|
|
|
+ $update['balance_num']-=$num;
|
|
|
+ $update['total_num']-=$num;
|
|
|
+ $update['updatetime']=date("Y-m-d H:i:s");
|
|
|
}
|
|
|
}else{
|
|
|
if (empty($stock)){
|
|
|
- $stock=[
|
|
|
+ $update=[
|
|
|
"bnCode"=>$bnCode,
|
|
|
"stockid"=>$stockid,
|
|
|
"total_num"=>$num,
|
|
@@ -174,11 +180,12 @@ class GoodStockInfo extends Model
|
|
|
"updatetime"=>date("Y-m-d H:i:s")
|
|
|
];
|
|
|
}else{
|
|
|
- $stock['balance_num']+=$num;
|
|
|
- $stock['total_num']+=$num;
|
|
|
- $stock['updatetime']=date("Y-m-d H:i:s");
|
|
|
+ $update['balance_num']+=$num;
|
|
|
+ $update['total_num']+=$num;
|
|
|
+ $update['updatetime']=date("Y-m-d H:i:s");
|
|
|
}
|
|
|
}
|
|
|
- return (new self())->save($stock);
|
|
|
+
|
|
|
+ return empty($stock)? self::insert($update): self::update($update,$stock);
|
|
|
}
|
|
|
}
|