eric2h 4 лет назад
Родитель
Сommit
76cee9dcf7
1 измененных файлов с 17 добавлено и 20 удалено
  1. 17 20
      app/Http/Controllers/api/thirdPart/weixin/ProcurementController.php

+ 17 - 20
app/Http/Controllers/api/thirdPart/weixin/ProcurementController.php

@@ -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']]);
             }