|
|
@@ -214,15 +214,14 @@ class ProcurementController extends Controller
|
|
|
public function updateProcurementDeliveryAmount(Request $request): \Illuminate\Http\JsonResponse
|
|
|
{
|
|
|
$param=$request->all(['id','delivernum']);
|
|
|
- $procurement_id=ProcurementDeliverie::query()->where('id',$param['id'])->first()['procurement_id'];
|
|
|
- $deliverAmount=0;
|
|
|
- $procurementDeliveries=ProcurementDeliverie::query()->where('procurement_id',$procurement_id)->get();
|
|
|
- foreach ($procurementDeliveries as $delivery){
|
|
|
- $deliverAmount+=(int)$delivery->amount;
|
|
|
+ $procurementDelivery=ProcurementDeliverie::query()->where('id',$param['id'])->first();
|
|
|
+ if (!$procurementDelivery){
|
|
|
+ response()->json(['status'=>0,'message' => '未指定送货单','data'=>null], 401);
|
|
|
}
|
|
|
-
|
|
|
+ $procurement_id=$procurementDelivery->procurement_id;
|
|
|
$procurement=Procurement::query()->find($procurement_id);
|
|
|
- $procurementDelivery=null;
|
|
|
+ $initial_amount=$procurementDelivery->amount;
|
|
|
+
|
|
|
if ($procurement){
|
|
|
if ($param['delivernum']>$procurement->quantity){
|
|
|
response()->json(['status'=>0,'message' => '送货数量大于采购数量','data'=>null], 401);
|
|
|
@@ -230,19 +229,17 @@ class ProcurementController extends Controller
|
|
|
if ($param['delivernum']==0){
|
|
|
response()->json(['status'=>0,'message' => '送货数量不能为零','data'=>null], 401);
|
|
|
}
|
|
|
- if (($param['delivernum']+$deliverAmount) < $procurement->quantity && $procurement->status==5){
|
|
|
- $procurementDelivery=ProcurementDeliverie::query()->where('id',$param['id'])->update(['amount'=>$param['delivernum']]);
|
|
|
- if($procurementDelivery){
|
|
|
- $procurementDeliver=new ProcurementDeliverie();
|
|
|
- $procurementDeliver['procurement_id']=$procurement->id;
|
|
|
- $procurementDeliver['amount']=((int)$procurement->quantity-(int)$param['delivernum']);
|
|
|
- $procurementDeliver['initiator']=Auth::user()['id'];
|
|
|
- $procurementDeliver['signer']=$procurement->initiator ?? 0;
|
|
|
- $procurementDeliver['created_at']=Carbon::now()->toDateTimeString();
|
|
|
- $procurementDeliver['updated_at']=Carbon::now()->toDateTimeString();
|
|
|
- $procurementDeliver->save();
|
|
|
- ProcurementCheckSheet::query()->create(['procurement_delivery_id'=>$procurementDeliver->id,'account_payable'=>$procurementDeliver->receipt_amount*$procurement->cost_price,'auditor'=>0]);
|
|
|
- }
|
|
|
+ if ($procurement->status==5 && (int)$initial_amount!=(int)$param['delivernum']){
|
|
|
+ $procurementDelivery->update(['amount'=>$param['delivernum']]);
|
|
|
+ $procurementDeliver=new ProcurementDeliverie();
|
|
|
+ $procurementDeliver['procurement_id']=$procurement->id;
|
|
|
+ $procurementDeliver['amount']=((int)$initial_amount-(int)$param['delivernum']);
|
|
|
+ $procurementDeliver['initiator']=Auth::user()['id'];
|
|
|
+ $procurementDeliver['signer']=$procurement->initiator ?? 0;
|
|
|
+ $procurementDeliver['created_at']=Carbon::now()->toDateTimeString();
|
|
|
+ $procurementDeliver['updated_at']=Carbon::now()->toDateTimeString();
|
|
|
+ $procurementDeliver->save();
|
|
|
+ ProcurementCheckSheet::query()->create(['procurement_delivery_id'=>$procurementDeliver->id,'account_payable'=>$procurementDeliver->receipt_amount*$procurement->cost_price,'auditor'=>0]);
|
|
|
}else{
|
|
|
$procurementDelivery=ProcurementDeliverie::query()->where('id',$param['id'])->update(['amount'=>$param['delivernum']]);
|
|
|
}
|