LaborCompanyDispatch.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace App;
  3. use App\Traits\ModelTimeFormat;
  4. use Illuminate\Database\Eloquent\Model;
  5. use App\Traits\ModelLogChanging;
  6. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  7. use Illuminate\Database\Eloquent\Relations\HasMany;
  8. class LaborCompanyDispatch extends Model
  9. {
  10. const EXCEED_MAX_LABOR_NUM = 2;
  11. const NOT_EXCEED_MAX_LABOR_NUM = 1;
  12. use ModelLogChanging;
  13. use ModelTimeFormat;
  14. protected $fillable = [
  15. 'labor_company_id',//劳务公司ID
  16. 'man_num',//男工数量
  17. 'woman_num',//女工数量
  18. 'dispatch_date',//分配日期
  19. 'exceed_max_labor_num_status',//是否超过最大允许值 1 未超过 2 超过
  20. 'status',//状态
  21. 'warehouse_id',//仓库ID
  22. 'check_user_id',//确认人ID
  23. ];
  24. protected $dates = [
  25. 'dispatch_date'
  26. ];
  27. static public $enums = [
  28. 'status' => [
  29. '' => 0,
  30. '创建' => 1,
  31. '人事确认' => 2,
  32. '劳务接单' => 3,
  33. '任务完结' => 4,
  34. ],
  35. ];
  36. function __construct(array $attributes = [])
  37. {
  38. foreach (self::$enums as &$enum) {
  39. $enum = $enum + array_flip($enum);
  40. }
  41. parent::__construct($attributes);
  42. }
  43. public function getStatusAttribute($value)
  44. {
  45. if (!$value) return '';
  46. return self::$enums['status'][$value];
  47. }
  48. public function setStatusAttribute($value)
  49. {
  50. if (!$value) return 0;
  51. $this->attributes['status'] = self::$enums['status'][$value];
  52. }
  53. public function laborCompany(): BelongsTo
  54. {
  55. return $this->belongsTo(LaborCompany::class);
  56. }
  57. public function laborCompanyDispatchDetails(): HasMany
  58. {
  59. return $this->hasMany(LaborCompanyDispatchDetail::class);
  60. }
  61. public function warehouse(): BelongsTo
  62. {
  63. return $this->belongsTo(Warehouse::class);
  64. }
  65. public function checkUser(): BelongsTo
  66. {
  67. return $this->belongsTo(User::class, 'check_user_id', 'id');
  68. }
  69. public function scopeFilter($query, $filters)
  70. {
  71. return $filters->apply($query);
  72. }
  73. }