GetParamsByAsnHeaderTest.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace Tests\Services\StoreService;
  3. use App\OracleDOCASNHeader;
  4. use App\Services\OwnerService;
  5. use App\Services\StoreService;
  6. use App\Services\WarehouseService;
  7. use App\Store;
  8. use Carbon\Carbon;
  9. use Tests\TestCase;
  10. class GetParamsByAsnHeaderTest extends TestCase
  11. {
  12. /**
  13. * @var StoreService $service
  14. * @var OwnerService $ownerService
  15. * @var WarehouseService $warehouseService
  16. *
  17. */
  18. public $service;
  19. public $asnHeaders;
  20. public $ownerService;
  21. public $warehouseService;
  22. public function setUp(): void
  23. {
  24. parent::setUp(); // TODO: Change the autogenerated stub
  25. $dataInterval = intval(data_get(config('sync'), 'asn_sync.interval')) * 60 + 5;
  26. $startDate = \Illuminate\Support\Carbon::now()->subSeconds($dataInterval);
  27. $this->service=app(StoreService::class);
  28. $this->ownerService=app(OwnerService::class);
  29. $this->warehouseService=app(WarehouseService::class);
  30. $this->asnHeaders=OracleDOCASNHeader::query()
  31. ->with(['asnType', 'asnStatus', 'asnDetails' => function ($query) {
  32. $query->with(['lineStatus', 'qualityStatus','basSku']);
  33. }])
  34. ->where('addTime', '>=', $startDate)
  35. ->get();
  36. }
  37. public function testGetParamsByAsnHeader(){
  38. if (empty($this->asnHeaders))return null;
  39. $stores = Store::query()->whereIn('asn_code',data_get($this->asnHeaders,'*.asnno'))->get();
  40. $owners=$this->ownerService->getByWmsOrders($this->asnHeaders);
  41. $warehouses=$this->warehouseService->getByWms($this->asnHeaders);
  42. $this->assertNotEmpty($this->asnHeaders);
  43. $this->assertNotEmpty($owners);
  44. $this->assertNotEmpty($warehouses);
  45. foreach ($owners as $owner) {
  46. $owners_code_map[$owner->code] = $owner;
  47. }
  48. foreach ($warehouses as $warehouse) {
  49. $warehouses_code_map[$warehouse->code] = $warehouse;
  50. }
  51. if (count($this->asnHeaders)>count($stores)){
  52. $params=$this->service->getParamsByAsnHeader($this->asnHeaders,$owners_code_map,$warehouses_code_map);
  53. $this->assertNotEmpty($params);
  54. }
  55. }
  56. }