ProcurementQuotation.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App;
  3. use App\Traits\ModelTimeFormat;
  4. use Illuminate\Database\Eloquent\Builder;
  5. use Illuminate\Database\Eloquent\Model;
  6. use App\Traits\ModelLogChanging;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\DB;
  9. class ProcurementQuotation extends Model
  10. {
  11. use ModelLogChanging;
  12. use ModelTimeFormat;
  13. protected $fillable=[
  14. 'procurement_id','offer', 'operator', 'quoted_at','status','created_at','supplier_id'
  15. ];
  16. const status=[
  17. 0 => "待报价",
  18. 1 => "已报价",
  19. 2 => "待接单",
  20. 3 => "已失效",
  21. 4 => "生成中",
  22. 5 => "待收货",
  23. 6 => "待确定",
  24. 7 => "待出账",
  25. 8 => "已出账",
  26. 9 => "完结",
  27. ];
  28. public function supplier(): \Illuminate\Database\Eloquent\Relations\HasOne
  29. {
  30. return $this->hasOne('App\Supplier','id','supplier_id');
  31. }
  32. public function procurement(): \Illuminate\Database\Eloquent\Relations\BelongsTo
  33. {
  34. return $this->belongsTo('App\Procurement','procurement_id','id');
  35. }
  36. protected static function booted()
  37. {
  38. /** @var User $user */
  39. $user = Auth::user();
  40. if ($user && !$user->isSuperAdmin()) {
  41. /** @var \stdClass $user */
  42. $ids = array_column(DB::select(DB::raw("SELECT supplier_id FROM supplier_user WHERE user_id = ?"),[$user->id]),"supplier_id");
  43. if (count($ids)>0){
  44. static::addGlobalScope('supplier', function (Builder $builder)use ($ids) {
  45. $builder->whereIn('supplier_id', $ids);
  46. });
  47. }
  48. }
  49. }
  50. }