WorkOrderCommodities.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. class WorkOrderCommodities extends Model
  8. {
  9. use ModelTimeFormat;
  10. protected $fillable = [
  11. 'work_order_id',
  12. 'work_order_detail_id', // 工单详情
  13. 'tag', // 当前工单状态
  14. 'commodity_id',
  15. 'price', // 商品价值
  16. 'sku', // 商品条码
  17. 'logistic_number', // 快递单号数量
  18. 'check_amount', // 承运商核实数量 (承运商核实商品数量)
  19. 'bao_shi_check_amount', // 宝时复核数量 (宝时核实商品数量)
  20. 'issue_type', // 异常类型 (对应工单异常类型)
  21. 'abnormal_type', // 问题类型 (商品问题类型)
  22. 'abnormal_amount', // 异常数量 (默认为订单数量) 错漏发 (客户实收数量)
  23. 'amount', // 订单数量 (原订单商品数量)
  24. 'check_result', // 核实结果 (核实 承运商)
  25. 'process_result', // 处理结果 终审填充(破损:[赔偿,不赔偿] 错漏发:[少发,多发,’多发,客户退回‘,’少发,不补发‘,核实未错漏发])
  26. 'process_result_info', // 处理结果详情 -----------------------------------
  27. // (错漏发: string 为选项类型 与 process_result 相关
  28. // 1.【少发】宝时补发(商家不做单)
  29. // 2.【多发,客户买下】商家做出库单(物流选自提,宝时不发货)
  30. // 3.【多发,客户退回】1.客户自行退回(提供退回单号) 2.宝时上门取件(提供寄件信息,地址,联系人,电话)
  31. // 4.【少发,不补发】商家做入库单,选择明细和数量
  32. // 5.【核实未错漏发】)
  33. // -----------------------------------
  34. ];
  35. static public $enums = [
  36. 'tag' => [
  37. '创建' => 0,
  38. '完成' => 1,
  39. '标记' => 2, // 工单重新创建,未完成原始数据进行历史标记,完成原始数据不进行处理
  40. ],
  41. ];
  42. function __construct(array $attributes = [])
  43. {
  44. foreach (self::$enums as &$enum) {
  45. $enum = $enum + array_flip($enum);
  46. }
  47. parent::__construct($attributes);
  48. }
  49. public function getTagAttribute($value)
  50. {
  51. if (is_numeric($value)) return self::$enums['tag'][$value];
  52. if (!$value) return '';
  53. return self::$enums['tag'][$value];
  54. }
  55. public function setTagAttribute($value)
  56. {
  57. if (!$value) return;
  58. if (is_numeric($value)) {
  59. $this->attributes['tag'] = $value;
  60. } else {
  61. $this->attributes['tag'] = self::$enums['tag'][$value];
  62. }
  63. }
  64. public function workOrder(): BelongsTo
  65. {
  66. return $this->belongsTo(WorkOrder::class);
  67. }
  68. public function commodity(): BelongsTo
  69. {
  70. return $this->belongsTo(Commodity::class);
  71. }
  72. }