ProcessReceiveCombined.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Jobs;
  3. use App\Events\WmsReceiveNewEvent;
  4. use App\Http\Controllers\Controller;
  5. use App\WMSReflectReceive;
  6. use App\WMSReflectReceiveSku;
  7. use Carbon\Carbon;
  8. use Illuminate\Bus\Queueable;
  9. use Illuminate\Queue\SerializesModels;
  10. use Illuminate\Queue\InteractsWithQueue;
  11. use Illuminate\Contracts\Queue\ShouldQueue;
  12. use Illuminate\Foundation\Bus\Dispatchable;
  13. class ProcessReceiveCombined implements ShouldQueue
  14. {
  15. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  16. protected $logisticNumberReturn;
  17. public function __construct($logisticNumberReturn)
  18. {
  19. $this->logisticNumberReturn=$logisticNumberReturn;
  20. }
  21. /**
  22. * Execute the job.
  23. *
  24. * @return void
  25. */
  26. public function handle()
  27. {
  28. $receives=WMSReflectReceive::where('ASNREFERENCE3',$this->logisticNumberReturn)->get();
  29. $downloadedItems=[];
  30. $receives->each(function (WMSReflectReceive $receive)use(&$downloadedItems){
  31. $receive->skus()->each(function(WMSReflectReceiveSku $item)use(&$downloadedItems){
  32. $downloadedItems[]=$item;
  33. });
  34. });
  35. event(new WmsReceiveNewEvent($this->logisticNumberReturn,$downloadedItems));
  36. }
  37. }