소스 검색

临时提交

hu hao 5 년 전
부모
커밋
ab8cfcc0e2
4개의 변경된 파일109개의 추가작업 그리고 19개의 파일을 삭제
  1. 79 0
      app/Http/Controllers/TestController.php
  2. 12 0
      app/Http/Controllers/api/thirdPart/weixin/ProcurementController.php
  3. 14 16
      app/Procurement.php
  4. 4 3
      app/ProcurementTotalBill.php

+ 79 - 0
app/Http/Controllers/TestController.php

@@ -1189,4 +1189,83 @@ where purch.islower=1');
         }
         ProcurementCheckSheet::query()->insert($insert);
     }
+    public function addProcurementDeliverAndCheckMeet()
+    {
+        $id=ProcurementDeliverie::query()->orderByDesc('id')->value('id');
+        $sql=DB::raw('SELECT
+deliver.id id,request.id procurement_id,deliver.delivernum amount,deliver.status status,deliver.accepttime signed_at,
+deliver.createtime created_at,deliver.createtime updated_at,deliver.confirmnum receipt_amount
+from deliver
+LEFT JOIN purch on deliver.purchid=purch.id
+LEFT JOIN ask on purch.askid=ask.id
+LEFT JOIN request on ask.requestid=request.id
+where purch.islower=1 and deliver.id>'.$id);
+        $params = DB::connection('erp')->select($sql);
+        $insert=[];
+        foreach ($params as $param){
+            $insert[]=[
+                'id'=>$param->id,
+                'procurement_id'=>$param->procurement_id,
+                'amount'=>$param->amount,
+                'status'=>$param->status?$param->status-1:$param->status,
+                'signed_at'=>Carbon::parse($param->signed_at)->toDateString(),
+                'created_at'=>Carbon::parse($param->created_at)->toDateTimeString(),
+                'updated_at'=>Carbon::parse($param->updated_at)->toDateTimeString(),
+                'receipt_amount'=>$param->receipt_amount,
+            ];
+        }
+        ProcurementDeliverie::query()->insert($insert);
+
+        $procurement_delivers=ProcurementDeliverie::query()->where('id','>',$id)->get();
+        $dataHandlerService = app(DataHandlerService::class);
+        $procurement_delivers_map = $dataHandlerService->dataHeader(['procurement_id'], $procurement_delivers);
+        $sql=DB::raw('SELECT deliver.id id,request.id procurement_id,
+deliver.createtime created_at,deliver.createtime updated_at,purch.acceptnum amount,purch.acceptprice price
+from deliver
+LEFT JOIN purch on deliver.purchid=purch.id
+LEFT JOIN ask on purch.askid=ask.id
+LEFT JOIN request on ask.requestid=request.id
+where purch.islower=1 and deliver.id>'.$id);
+        $params=DB::connection('erp')->select($sql);
+        $insert_=[];
+        foreach ($params as $param){
+            $procurement_deliver = $dataHandlerService->getKeyValue(['procurement_id' => $param->procurement_id], $procurement_delivers_map);
+            if (!$procurement_deliver) continue;
+            $insert_[$param->procurement_id]=[
+                'procurement_delivery_id'=>$procurement_deliver->id,
+                'account_payable'=>$param->amount*$param->price,
+                'status'=>0,
+                'created_at'=>$param->created_at,
+                'updated_at'=>$param->updated_at,
+            ];
+        }
+        ProcurementCheckSheet::query()->insert($insert_);
+    }
+    public function test111()
+    {
+        $status=0;
+        /*$procurements=Procurement::query()
+            ->withCount('procurementQuotations')
+            ->with('ownerMaterial.material')
+            ->where('status',$status)
+            ->get();*/
+//        $a = DB::select(DB::raw(<<<sql
+//select `procurements`.*, (select count(*) from `procurement_quotations` where `procurements`.`id` = `procurement_quotations`.`procurement_id` and `supplier_id` in ('83')) as `procurement_quotations_count` from `procurements` where `status` = '0'
+//sql
+//));
+//        dd($a);
+        dd($procurements=Procurement::query()
+            ->withCount('procurementQuotations')
+            ->with('ownerMaterial.material')
+            ->where('status',$status)->get());
+        $keys = [];
+        foreach ($procurements as $key=>$procurement){
+            if ($procurement->procurement_quotations_count>0 && $status==0 )$keys[]= $key;
+            if ($procurement->type==2 && $procurement->supplier_id )$keys[]= $key;
+            if (Carbon::parse($procurement->deadline)->gt(Carbon::now())) $procurement->deadline=Carbon::parse($procurement->deadline)->diffInMilliseconds();
+            else $procurement->deadline=0;
+        }
+        $procurements = $procurements->diffKeys($keys);
+        dd($procurements);
+    }
 }

+ 12 - 0
app/Http/Controllers/api/thirdPart/weixin/ProcurementController.php

@@ -118,6 +118,9 @@ class ProcurementController extends Controller
             ->with('procurement.ownerMaterial.material')
             ->whereIn('status',[0,1])//1:待送货,2:送货中
             ->get();
+        $procurementDeliveries=$procurementDeliveries->filter(function ($item){
+            return isset($item->procurement);
+        });
         if ($procurementDeliveries) return $this->success($procurementDeliveries);
     }
     public function makeProcurementDelivery(Request $request): \Illuminate\Http\JsonResponse
@@ -169,6 +172,7 @@ class ProcurementController extends Controller
     public function getProcurementTotalBill(): \Illuminate\Http\JsonResponse
     {
         $procurementTotalBills=ProcurementTotalBill::query()
+            ->orderByDesc('id')
             ->get();
         foreach ($procurementTotalBills as $procurementTotalBill){
             /** @var  ProcurementTotalBill $procurementTotalBill */
@@ -180,6 +184,14 @@ class ProcurementController extends Controller
     {
         $id=$request->input('id');
         $procurementTotalBill=ProcurementTotalBill::query()->find($id)->update(['status'=>1]);//1:已出账
+        /** @var  ProcurementTotalBill $procurementTotalBill */
+        $procurementTotalBill->setCurrentMothProcurements();
+        if (isset($procurementTotalBill->procurementCheckSheets)){
+            $procurementCheckSheets=$procurementTotalBill->procurementCheckSheets;
+            foreach ($procurementCheckSheets as $procurementCheckSheet){
+                $procurementCheckSheet->update(['status'=>2]);//2 已出账
+            }
+        }
         return $this->success($procurementTotalBill);
     }
     //收货员确认收货

+ 14 - 16
app/Procurement.php

@@ -42,22 +42,6 @@ class Procurement extends Model
         'code','owner_material_id', 'supplier_id', 'quantity','amount','unit_price','cost_price','status','initiator','type','is_enquiry','deadline'
     ];
 
-    protected static function booted()
-    {
-        /** @var User $user */
-        $user = Auth::user();
-        if ($user && !$user->isSuperAdmin()) {
-            /** @var \stdClass $user */
-            $ids = array_column(DB::select(DB::raw("SELECT supplier_id FROM supplier_user WHERE user_id = ?"),[$user->id]),"supplier_id");
-            if (count($ids)>0){
-                static::addGlobalScope('supplier', function (Builder $builder)use ($ids) {
-                    $builder->whereIn('supplier_id',  $ids);
-                });
-            }
-        }
-    }
-
-
     public  function ownerMaterial(): \Illuminate\Database\Eloquent\Relations\HasOne
     {
         return $this->hasOne('App\OwnerMaterial','id','owner_material_id');
@@ -85,4 +69,18 @@ class Procurement extends Model
     {
         return $filters->apply($query);
     }
+    protected static function booted()
+    {
+        /** @var User $user */
+        $user = Auth::user();
+        if ($user && !$user->isSuperAdmin()) {
+            /** @var \stdClass $user */
+            $ids = array_column(DB::select(DB::raw("SELECT supplier_id FROM supplier_user WHERE user_id = ?"),[$user->id]),"supplier_id");
+            if (count($ids)>0){
+                static::addGlobalScope('supplier', function (Builder $builder)use ($ids) {
+                    $builder->whereIn('supplier_id',$ids);
+                });
+            }
+        }
+    }
 }

+ 4 - 3
app/ProcurementTotalBill.php

@@ -42,10 +42,11 @@ class ProcurementTotalBill extends Model
 
     public function  setCurrentMothProcurements(){
         $ProcurementQuery = Procurement::query()->select("id")
-            ->where('supplier_id',$this->supplier_id)
-            ->where("created_at","like",$this->counting_month."%");
+            ->where('supplier_id',$this->supplier_id);
+//            ->where("created_at","like",$this->counting_month."%");
          $procurementDeliveryQuery= ProcurementDeliverie::query()->select('id')
-            ->whereIn("procurement_id",$ProcurementQuery);
+            ->whereIn("procurement_id",$ProcurementQuery)
+            ->where("created_at","like",$this->counting_month."%");
         $this->relations["procurementCheckSheets"]=ProcurementCheckSheet::query()
             ->with(['procurementDelivery.procurement.ownerMaterial.material'])
             ->whereIn('procurement_delivery_id',$procurementDeliveryQuery)->get();