| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace App\Services;
- use App\Owner;
- use App\Procurement;
- use App\ProcurementQuotation;
- use App\Services\common\QueryService;
- use App\Supplier;
- use Carbon\Carbon;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Support\Facades\Auth;
- use App\Traits\ServiceAppAop;
- class ProcurementService
- {
- use ServiceAppAop;
- //选中最低报价
- public function screenLowestQuotation($procurement_id){
- if (!$procurement_id) return null;
- return ProcurementQuotation::query()
- ->with(['supplier','procurement'])
- ->select('procurement_id','supplier_id','offer')
- ->orderBy('offer','asc')
- ->where('procurement_id',$procurement_id)
- ->first();
- }
- public function computeDeadline($time): string
- {
- /**@var ConfigurationService $configurationService */
- $configurationService=app(ConfigurationService::class);
- $enquiry_time=$configurationService->getEnquiryTime();
- $date=Carbon::parse($time)->toDateString();
- if ($time<$date." 09:00:00")$deadline=Carbon::parse($date." 09:00:00")->subHours(-$enquiry_time);
- if($time>=$date." 09:00:00" && $time<$date." 14:00:00") $deadline=Carbon::parse($time)->subHours(-$enquiry_time);
- if ($time>=$date." 14:00:00")$deadline=Carbon::parse($time)->subHours(-15-$enquiry_time);
- 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;
- }
- }
|