LaborCompanyDispatch.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. ];
  23. protected $dates = [
  24. 'dispatch_date'
  25. ];
  26. static public $enums = [
  27. 'status' => [
  28. '' => 0,
  29. '创建' => 1,
  30. '人事确认' => 2,
  31. '劳务接单' => 3,
  32. '任务完结' => 4,
  33. ],
  34. ];
  35. function __construct(array $attributes = [])
  36. {
  37. foreach (self::$enums as &$enum) {
  38. $enum = $enum + array_flip($enum);
  39. }
  40. parent::__construct($attributes);
  41. }
  42. public function getStatusAttribute($value)
  43. {
  44. if (!$value) return '';
  45. return self::$enums['status'][$value];
  46. }
  47. public function setStatusAttribute($value)
  48. {
  49. if (!$value) return 0;
  50. $this->attributes['status'] = self::$enums['status'][$value];
  51. }
  52. public function laborCompany(): BelongsTo
  53. {
  54. return $this->belongsTo(LaborCompany::class);
  55. }
  56. public function laborCompanyDispatchDetails(): HasMany
  57. {
  58. return $this->hasMany(LaborCompanyDispatchDetail::class);
  59. }
  60. public function warehouse(): BelongsTo
  61. {
  62. return $this->belongsTo(Warehouse::class);
  63. }
  64. public function scopeFilter($query, $filters)
  65. {
  66. return $filters->apply($query);
  67. }
  68. }