SyncOrderIssueOrWorkOrderBySWMS.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Jobs;
  3. use App\OrderIssue;
  4. use App\Services\SyncSWMSOrderIssueAndWorkOrderService;
  5. use App\WorkOrder;
  6. use Illuminate\Bus\Queueable;
  7. use Illuminate\Contracts\Queue\ShouldQueue;
  8. use Illuminate\Foundation\Bus\Dispatchable;
  9. use Illuminate\Queue\InteractsWithQueue;
  10. use Illuminate\Queue\SerializesModels;
  11. class SyncOrderIssueOrWorkOrderBySWMS implements ShouldQueue
  12. {
  13. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  14. public static $ORDER_ISSUE_TYPE = 1;
  15. public static $WORK_ORDER_TYPE = 2;
  16. /** @var OrderIssue */
  17. private $orderIssue;
  18. /** @var WorkOrder */
  19. private $workOrder;
  20. private $type;
  21. /**
  22. * Create a new job instance.
  23. *
  24. * @return void
  25. */
  26. public function __construct($params,$type)
  27. {
  28. $this->type = $type;
  29. if($type == $this::$ORDER_ISSUE_TYPE){
  30. $this->orderIssue = $params;
  31. } else if($type == $this::$WORK_ORDER_TYPE){
  32. $this->workOrder = $params;
  33. }
  34. }
  35. /**
  36. * Execute the job.
  37. *
  38. * @return void
  39. */
  40. public function handle()
  41. {
  42. /** @var SyncSWMSOrderIssueAndWorkOrderService $service */
  43. $service = app(SyncSWMSOrderIssueAndWorkOrderService::class);
  44. if($this->type == $this::$ORDER_ISSUE_TYPE){
  45. $class = $this->orderIssue->getMorphClass();
  46. if(str_contains($class,'OrderIssue')){
  47. $service->sendOrderIssue($this->orderIssue);
  48. } else {
  49. $service->sendWorkOrder($this->orderIssue);
  50. }
  51. } else if($this->type == $this::$WORK_ORDER_TYPE){
  52. $service->sendWorkOrder($this->workOrder);
  53. }
  54. }
  55. }