Procurement.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 Procurement extends Model
  10. {
  11. use ModelLogChanging;
  12. use ModelTimeFormat;
  13. const type=[
  14. 0 => "采购单",
  15. 1 => "询价单",
  16. 2 => "打样单",
  17. ];
  18. const status=[
  19. 0 => "待推单",
  20. 1 => "已报价",
  21. 2 => "生产中",
  22. 3 => "取消订单",
  23. 4 => "已完成",
  24. 5 => "完结",
  25. 6 => "下单失败",
  26. 7 => "待出账",
  27. 8 => "待接单(已过期)",
  28. 9 => "待报价",
  29. ];
  30. protected $fillable=[
  31. 'code','owner_material_id', 'supplier_id', 'quantity','amount','unit_price','cost_price','status','initiator','type'
  32. ];
  33. protected static function booted()
  34. {
  35. /** @var User $user */
  36. $user = Auth::user();
  37. if ($user && !$user->isSuperAdmin()) {
  38. /** @var \stdClass $user */
  39. $ids = array_column(DB::select(DB::raw("SELECT supplier_id FROM supplier_user WHERE user_id = ?"),[$user->id]),"supplier_id");
  40. if (count($ids)>0){
  41. static::addGlobalScope('supplier', function (Builder $builder)use ($ids) {
  42. $builder->whereIn('supplier_id', $ids);
  43. });
  44. }
  45. }
  46. }
  47. public function ownerMaterial(){
  48. return $this->hasOne('App\OwnerMaterial','id','owner_material_id');
  49. }
  50. public function supplier(){
  51. return $this->hasOne('App\Supplier','id','supplier_id');
  52. }
  53. public function initiator()
  54. {
  55. return $this->belongsTo(User::class,'initiator','id');
  56. }
  57. public function scopeFilter($query, $filters)
  58. {
  59. return $filters->apply($query);
  60. }
  61. }