LaborCompanyDispatch.php 1.8 KB

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