GetParamsByAsnHeaderTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. $this->service=app(StoreService::class);
  26. $this->ownerService=app(OwnerService::class);
  27. $this->warehouseService=app(WarehouseService::class);
  28. $this->asnHeaders=OracleDOCASNHeader::query()
  29. ->with(['asnType', 'asnStatus', 'asnDetails' => function ($query) {
  30. $query->with(['lineStatus', 'qualityStatus','basSku']);
  31. }])
  32. ->where('addTime', '>=', Carbon::parse('2020-10-21 00:00:00')->format('Y-m-d H:i:s'))
  33. ->get();
  34. }
  35. public function testGetParamsByAsnHeader(){
  36. if (empty($this->asnHeaders))return null;
  37. $stores = Store::query()->whereIn('asn_code',data_get($this->asnHeaders,'*.asnno'))->get();
  38. $owners=$this->ownerService->getByWmsOrders($this->asnHeaders);
  39. $warehouses=$this->warehouseService->getByWms($this->asnHeaders);
  40. $this->assertNotEmpty($this->asnHeaders);
  41. $this->assertNotEmpty($owners);
  42. $this->assertNotEmpty($warehouses);
  43. foreach ($owners as $owner) {
  44. $owners_code_map[$owner->code] = $owner;
  45. }
  46. foreach ($warehouses as $warehouse) {
  47. $warehouses_code_map[$warehouse->code] = $warehouse;
  48. }
  49. if (count($this->asnHeaders)>count($stores)){
  50. $params=$this->service->getParamsByAsnHeader($this->asnHeaders,$owners_code_map,$warehouses_code_map);
  51. $this->assertNotEmpty($params);
  52. }
  53. }
  54. }