WorkOrderCommoditiesService.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace App\Services;
  3. use App\Traits\ServiceAppAop;
  4. use App\WorkOrderCommodities;
  5. use App\WorkOrderDetail;
  6. class WorkOrderCommoditiesService
  7. {
  8. use ServiceAppAop;
  9. protected $modelClass = WorkOrderCommodities::class;
  10. public function createWorkOrderCommodityByJson(WorkOrderDetail $detail, $json)
  11. {
  12. $obj = json_decode($json);
  13. $detail->commodities()->create([
  14. 'work_order_id' => $detail->work_order_id ?? '',
  15. 'work_order_detail_id' =>$detail->id ?? '',
  16. 'commodity_id' => $obj->commodity_id ?? '',
  17. 'sku' => $obj->sku ?? '',
  18. 'amount' => $obj->amount ?? '',
  19. 'price' => $obj->price ?? '',
  20. 'logistic_number' => $obj->logistic_number ?? '',
  21. 'abnormal_amount' => $obj->abnormal_amount ?? '',
  22. 'check_amount' => $obj->check_amount ?? '',
  23. 'bao_shi_check_amount' => $obj->bao_shi_check_amount ?? '',
  24. 'reissue_logistic_number' => $obj->reissue_logistic_number ?? '',
  25. 'store_in_number' => $obj->store_in_number ?? '',
  26. 'check_result' => $obj->check_result ?? '',
  27. 'process_result' => $obj->process_result ?? '',
  28. 'abnormal_type' => $obj->abnormal_type ?? '',
  29. 'issue_type' => $detail->order_issue_type_id ?? '',
  30. 'out_order_number' => $detail->out_order_number ?? '',
  31. ]);
  32. }
  33. /**
  34. * 工单详情
  35. * @param WorkOrderDetail $detail
  36. * @param $array
  37. */
  38. public function createWorkOrderCommoditiesByJsonArray(WorkOrderDetail $detail, $array)
  39. {
  40. foreach ($array as $json) {
  41. $this->createWorkOrderCommodityByJson($detail, $json);
  42. }
  43. }
  44. /**
  45. * @param WorkOrderDetail $detail
  46. * @param $array
  47. */
  48. public function updateWorkOrderCommoditiesByJsonArray(WorkOrderDetail $detail, $array)
  49. {
  50. foreach ($array as $json) {
  51. $this->updateWorkOrderCommoditiesByJson($detail, $json);
  52. }
  53. }
  54. /**
  55. * @param WorkOrderDetail $detail
  56. * @param $json
  57. */
  58. public function updateWorkOrderCommoditiesByJson(WorkOrderDetail $detail, $json)
  59. {
  60. $obj = json_decode($json);
  61. $detail->commodities()->where('id', $obj->id)->update([
  62. 'check_amount' => $obj->check_amount ?? '',
  63. 'bao_shi_check_amount' => $obj->bao_shi_check_amount ?? '',
  64. 'abnormal_amount' => $obj->abnormal_amount ?? '',
  65. 'abnormal_type' => $obj->abnormal_type ?? '',
  66. 'check_result' => $obj->check_result ?? '',
  67. 'price' => $obj->price ?? '',
  68. 'process_result' => $obj->process_result ?? '',
  69. 'process_result_info' => $obj->process_result_info ?? '',
  70. 'reissue_logistic_number' => $obj->reissue_logistic_number ?? '', // 补发单号
  71. 'store_in_amount' => $obj->store_in_amount ?? '', // 入库数量
  72. 'store_in_number' => $obj->store_in_number ?? '', // 入库单号
  73. 'out_order_number' => $obj->out_order_number ?? '', // 入库单号
  74. 'end_handle_result' => $obj->end_handle_result ?? '', // 最终处理
  75. ]);
  76. }
  77. public function deleteCommodities($detail,$delete_ids)
  78. {
  79. if (!$delete_ids) return ;
  80. WorkOrderCommodities::query()->where('work_order_detail_id',$detail->id)->whereIn('id',$delete_ids)->delete();
  81. }
  82. /**
  83. * 标记为未完成历史标记
  84. * @param WorkOrderDetail $detail
  85. */
  86. public function undoneTag(WorkOrderDetail $detail)
  87. {
  88. $detail->commodities()->update(['tag' => 2]);
  89. }
  90. /**
  91. * 标记为完成
  92. * @param WorkOrderDetail $detail
  93. */
  94. public function endDetail(WorkOrderDetail $detail)
  95. {
  96. $detail->commodities()->update(['tag' => 1]);
  97. }
  98. }