ProcurementService.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Services;
  3. use App\Owner;
  4. use App\Procurement;
  5. use App\ProcurementQuotation;
  6. use App\Services\common\QueryService;
  7. use App\Supplier;
  8. use Carbon\Carbon;
  9. use Illuminate\Database\Eloquent\Builder;
  10. use Illuminate\Support\Facades\Auth;
  11. use App\Traits\ServiceAppAop;
  12. class ProcurementService
  13. {
  14. use ServiceAppAop;
  15. //选中最低报价
  16. public function screenLowestQuotation($procurement_id){
  17. if (!$procurement_id) return null;
  18. return ProcurementQuotation::query()
  19. ->with(['supplier','procurement'])
  20. ->select('procurement_id','supplier_id','offer')
  21. ->orderBy('offer','asc')
  22. ->where('procurement_id',$procurement_id)
  23. ->first();
  24. }
  25. public function computeDeadline($time): string
  26. {
  27. /**@var ConfigurationService $configurationService */
  28. $configurationService=app(ConfigurationService::class);
  29. $enquiry_time=$configurationService->getEnquiryTime();
  30. $date=Carbon::parse($time)->toDateString();
  31. if ($time<$date." 09:00:00")$deadline=Carbon::parse($date." 09:00:00")->subHours(-$enquiry_time)->toDateTimeString();
  32. if($time>=$date." 09:00:00" && $time<$date." 14:00:00") $deadline=Carbon::parse($time)->subHours(-$enquiry_time)->toDateTimeString();
  33. if ($time>=$date." 14:00:00")$deadline=Carbon::parse($time)->subHours(-15-$enquiry_time)->toDateTimeString();
  34. if ($deadline) return $deadline;
  35. }
  36. public function screenSupplier($user,$material)
  37. {
  38. //通过当前登录用户及采购单对应相应耗材筛选出指定供应商
  39. $supplier=Supplier::query()
  40. ->whereHas('user',function($query)use($user){
  41. /** @var Builder $query */
  42. return $query->where('id',$user->id);
  43. })
  44. ->whereHas('material',function ($builder)use ($material){
  45. /** @var Builder $builder */
  46. return $builder->where('id',$material['id']);
  47. })->first();
  48. if ($supplier) return $supplier;
  49. }
  50. }