| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- namespace Tests\Services\StoreService;
- use App\OracleBasCode;
- use App\OracleDOCASNHeader;
- use App\Owner;
- use App\Services\OwnerService;
- use App\Services\StoreService;
- use App\Services\WarehouseService;
- use App\Store;
- use App\Warehouse;
- use Carbon\Carbon;
- use Illuminate\Support\Facades\DB;
- use Tests\TestCase;
- class GetParamsByAsnHeaderTest extends TestCase
- {
- /**
- * @var StoreService $service
- * @var OwnerService $ownerService
- * @var WarehouseService $warehouseService
- *
- */
- public $service;
- public $asnHeaders;
- public $ownerService;
- public $warehouseService;
- private $data=[];
- public function setUp(): void
- {
- parent::setUp(); // TODO: Change the autogenerated stub
- $this->service=app(StoreService::class);
- $this->ownerService=app(OwnerService::class);
- $this->warehouseService=app(WarehouseService::class);
- // $this->data['warehouse'] = factory(Warehouse::class)->create(['code'=>'test_wh']);
- DB::insert('insert ignore into warehouses (code) values(?)',['test_wh']);
- $this->data['warehouse'] = Warehouse::query()->where('code','test_wh')->first();
- // $this->data['owner'] = factory(Owner::class)->create(['code'=>'test_owner','name'=>'测试货主']);
- DB::insert('insert ignore into owners (code,name) values(?,?)',['test_owner','测试货主']);
- $this->data['owner'] = Owner::query()->where('code','test_owner')->where('name','测试货主')->first();
- $wmsAsnHeader = factory(OracleDOCASNHeader::class)->make([
- 'customerid'=>'test_owner','warehouseid'=>'test_wh','asntype'=>'CSRK','asnstatus'=>'11',
- ]);
- $asnType = factory(OracleBasCode::class)->make(['codeid'=>'ASN_TYP','code'=>'CSRK','descr_c'=>'测试入库']);
- $asnStatus = factory(OracleBasCode::class)->make(['code'=>'11', 'codeid'=>'ASN_STS', 'codename_c'=>'测试状态']);
- $wmsAsnHeader->setRelation('asnType',$asnType);
- $wmsAsnHeader->setRelation('asnStatus',$asnStatus);
- $this->asnHeaders=collect();
- $this->asnHeaders->add($wmsAsnHeader);
- }
- public function testGetParamsByAsnHeader(){
- if (empty($this->asnHeaders))return null;
- $stores = Store::query()->whereIn('asn_code',data_get($this->asnHeaders,'*.asnno'))->get();
- $owner_codes = [];
- $warehouse_codes = [];
- foreach ($this->asnHeaders as $asnHerder) {
- if (!empty($asnHerder['customerid']))
- $owner_codes[$asnHerder['customerid']] = $asnHerder['customerid'];
- if (!empty($asnHerder['warehouseid']))
- $warehouse_codes[$asnHerder['warehouseid']] = $asnHerder['warehouseid'];
- }
- $owners = $this->ownerService->getOwnerByCodes($owner_codes);
- $warehouses = $this->warehouseService->getWareHouseByCodes($warehouse_codes);
- $this->assertNotEmpty($this->asnHeaders);
- $owners_code_map=[];
- foreach ($owners as $owner) {
- $owners_code_map[$owner->code] = $owner;
- }
- $warehouses_code_map=[];
- foreach ($warehouses as $warehouse) {
- $warehouses_code_map[$warehouse->code] = $warehouse;
- }
- if (count($this->asnHeaders)>count($stores)){
- $params=$this->service->getParamsByAsnHeader($this->asnHeaders,$owners_code_map,$warehouses_code_map);
- $this->assertNotEmpty($params);
- }
- }
- public function tearDown(): void
- {
- $this->data['warehouse']->delete();
- $this->data['owner']->delete();
- parent::tearDown(); // TODO: Change the autogenerated stub
- }
- }
|