| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace Tests\Services\OrderPackageService\SyncOrderPackageTest;
- use App\OracleDOCOrderHeader;
- use App\Services\OracleDOCOrderHeaderService;
- use App\Services\OrderPackageService;
- use App\Services\OrderService;
- use Carbon\Carbon;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Illuminate\Foundation\Testing\WithFaker;
- use Tests\TestCase;
- class SyncOrderPackageTest 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');
- }
- /**
- * @test
- */
- public function syncOrderPackage()
- {
- $orderHeader = OracleDOCOrderHeader::query()->orderByDesc('addTime')->first();
- $orderHeaders = OracleDOCOrderHeader::query()->selectRaw(implode(',',OracleDOCOrderHeaderService::$columns))
- ->with(['oracleBASCustomer'=>function($query){
- $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
- },'oracleDOCOrderDetails'=>function($query){
- $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered');
- }, 'actAllocationDetails'=>function($query){
- $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku');
- },'oracleBASCode'=>function($query){
- $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
- }])
- ->where('DOC_Order_Header.addTime','>=',$orderHeader->addtime)
- ->orderByDesc('DOC_Order_Header.addTime')
- ->get();
- $orders = $this->orderService->getByWmsOrders($orderHeaders);
- $packages = $this->service->getByWmsOrders($orderHeaders);
- $this->service->syncOrderPackage($orderHeaders,$orders,$packages);
- $exits_packages = $this->service->getByWmsOrders($orderHeaders);
- $exits_count = $exits_packages->count();
- $logistic_numbers = data_get($orderHeaders,'*.actAllocationDetails.*.picktotraceid');
- $logistic_numbers = array_unique(array_diff($logistic_numbers,['',' ','*']));
- $this->assertEquals(count($logistic_numbers),$exits_count);
- foreach ($logistic_numbers as $logistic_number) {
- $exits_package = $exits_packages->where('logistic_number',$logistic_number);
- $this->assertEmpty($exits_package);
- $this->assertEquals($exits_package->count(),1);
- }
- }
- }
|