GetParamsByAsnHeaderTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace Tests\Services\StoreService;
  3. use App\OracleBasCode;
  4. use App\OracleDOCASNHeader;
  5. use App\Owner;
  6. use App\Services\OwnerService;
  7. use App\Services\StoreService;
  8. use App\Services\WarehouseService;
  9. use App\Store;
  10. use App\Warehouse;
  11. use Carbon\Carbon;
  12. use Tests\TestCase;
  13. class GetParamsByAsnHeaderTest extends TestCase
  14. {
  15. /**
  16. * @var StoreService $service
  17. * @var OwnerService $ownerService
  18. * @var WarehouseService $warehouseService
  19. *
  20. */
  21. public $service;
  22. public $asnHeaders;
  23. public $ownerService;
  24. public $warehouseService;
  25. private $data=[];
  26. public function setUp(): void
  27. {
  28. parent::setUp(); // TODO: Change the autogenerated stub
  29. $this->service=app(StoreService::class);
  30. $this->ownerService=app(OwnerService::class);
  31. $this->warehouseService=app(WarehouseService::class);
  32. $this->data['warehouse'] = factory(Warehouse::class)->create(['code'=>'test_wh']);
  33. $this->data['owner'] = factory(Owner::class)->create(['code'=>'test_owner','name'=>'测试货主']);
  34. $wmsAsnHeader = factory(OracleDOCASNHeader::class)->make([
  35. 'customerid'=>'test_owner','warehouseid'=>'test_wh','asntype'=>'CSRK','asnstatus'=>'11',
  36. ]);
  37. $asnType = factory(OracleBasCode::class)->make(['codeid'=>'ASN_TYP','code'=>'CSRK','descr_c'=>'测试入库']);
  38. $asnStatus = factory(OracleBasCode::class)->make(['code'=>'11', 'codeid'=>'ASN_STS', 'codename_c'=>'测试状态']);
  39. $wmsAsnHeader->setRelation('asnType',$asnType);
  40. $wmsAsnHeader->setRelation('asnStatus',$asnStatus);
  41. $this->asnHeaders=collect();
  42. $this->asnHeaders->add($wmsAsnHeader);
  43. }
  44. public function testGetParamsByAsnHeader(){
  45. if (empty($this->asnHeaders))return null;
  46. $stores = Store::query()->whereIn('asn_code',data_get($this->asnHeaders,'*.asnno'))->get();
  47. $owner_codes = [];
  48. $warehouse_codes = [];
  49. foreach ($this->asnHeaders as $asnHerder) {
  50. if (!empty($asnHerder['customerid']))
  51. $owner_codes[$asnHerder['customerid']] = $asnHerder['customerid'];
  52. if (!empty($asnHerder['warehouseid']))
  53. $warehouse_codes[$asnHerder['warehouseid']] = $asnHerder['warehouseid'];
  54. }
  55. $owners = $this->ownerService->getOwnerByCodes($owner_codes);
  56. $warehouses = $this->warehouseService->getWareHouseByCodes($warehouse_codes);
  57. $this->assertNotEmpty($this->asnHeaders);
  58. $owners_code_map=[];
  59. foreach ($owners as $owner) {
  60. $owners_code_map[$owner->code] = $owner;
  61. }
  62. $warehouses_code_map=[];
  63. foreach ($warehouses as $warehouse) {
  64. $warehouses_code_map[$warehouse->code] = $warehouse;
  65. }
  66. if (count($this->asnHeaders)>count($stores)){
  67. $params=$this->service->getParamsByAsnHeader($this->asnHeaders,$owners_code_map,$warehouses_code_map);
  68. $this->assertNotEmpty($params);
  69. }
  70. }
  71. public function tearDown(): void
  72. {
  73. $this->data['warehouse']->delete();
  74. $this->data['owner']->delete();
  75. parent::tearDown(); // TODO: Change the autogenerated stub
  76. }
  77. }