| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace Tests\Services\OrderPackageService\SyncPackageByOrderHeadersTest;
- use App\Logistic;
- use App\OracleDOCOrderHeader;
- use App\Owner;
- use App\Services\OracleDOCOrderHeaderService;
- use App\Services\OrderPackageService;
- use App\Services\OrderService;
- use App\Shop;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Tests\TestCase;
- class SyncPackageByOrderHeadersTest extends TestCase
- {
- use RefreshDatabase;
- /**
- * @var OrderPackageService $service
- * @var OracleDOCOrderHeaderService $orderHeaderService
- * @var OrderService $orderService
- */
- public $service;
- public $orderService;
- public $orderHeaderService;
- public function setUp(): void
- {
- parent::setUp();
- $this->service = app('OrderPackageService');
- $this->orderService = app('OrderService');
- $this->orderHeaderService = app('OracleDocOrderHeaderService');
- }
- public function testSyncPackageByOrderHeaders()
- {
- /**
- * createOrDeletePackageByOrderHeader($orderHeaders)
- */
- $orderHeader = OracleDOCOrderHeader::query()
- ->with('actAllocationDetails')
- ->where('sostatus',99)
- ->orderByDesc('AddTime')
- ->first();
- $orderHeaders = OracleDOCOrderHeader::query()
- ->with('actAllocationDetails')
- ->where('sostatus',99)
- ->where('addtime','>=',$orderHeader->addtime)
- ->orderByDesc('AddTime')
- ->get();
- if ($orderHeaders->count() == 0) {
- $this->assertNull($orderHeaders);
- return;
- }
- Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']);
- $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
- Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname,'owner_id'=>$owner->id]);
- app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
- $this->orderService->syncOrderByWMSOrderHeaders($orderHeaders);
- $this->service->syncPackageByOrderHeaders($orderHeaders);
- $packages = $this->service->getByWmsOrders($orderHeaders);
- $order_nos = array_unique(data_get($orderHeaders, '*.actAllocationDetails.*.picktotraceid'));
- foreach ($order_nos as $order_no) {
- $this->assertNotEmpty($packages->where('logistic_number', $order_no));
- }
- }
- }
|