with(['supplier','procurement']) ->select('procurement_id','supplier_id','offer') ->orderBy('offer','asc') ->where('procurement_id',$procurement_id) ->first(); return $procurementQuotation; } public function pushEnquiryToSupplier($procurement_id){ $procurement=Procurement::query()->find($procurement_id); $procurement->loadMissing(['ownerMaterial.material.supplier']); if (!empty($procurement->ownerMaterial->material->supplier))$suppliers=$procurement->ownerMaterial->material->supplier; foreach ($suppliers as $supplier){ $procurementQuotation= new ProcurementQuotation([ 'procurement_id'=>$procurement_id, 'supplier_id'=>$supplier->id, ]); $procurementQuotation->save(); //TODO 推送给指定耗材类型供应商 } } public function computeDeadline($time) { $date=Carbon::parse($time)->toDateString(); if ($time<$date." 09:00:00")$deadline=Carbon::parse($date." 09:00:00")->subHours(-4)->toDateTimeString(); if($time>=$date." 09:00:00" && $time<$date." 14:00:00") $deadline=Carbon::parse($time)->subHours(-4)->toDateTimeString(); if ($time>=$date." 14:00:00")$deadline=Carbon::parse($time)->subHours(-15-4)->toDateTimeString(); if ($deadline) return $deadline; } public function screenSupplier($user,$material) { //通过当前登录用户及采购单对应相应耗材筛选出指定供应商 $supplier=Supplier::query() ->whereHas('user',function($query)use($user){ /** @var Builder $query */ return $query->where('id',$user->id); }) ->whereHas('material',function ($builder)use ($material){ /** @var Builder $builder */ return $builder->where('id',$material['id']); })->first(); if ($supplier) return $supplier; } }