|
|
@@ -0,0 +1,65 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+
|
|
|
+namespace Tests\Services\OrderCommodityService;
|
|
|
+
|
|
|
+use Carbon\Carbon;
|
|
|
+use Tests\TestCase;
|
|
|
+use App\OracleDOCOrderHeader;
|
|
|
+use App\Order;
|
|
|
+use App\OrderCommodity;
|
|
|
+use App\Services\OrderCommodityService;
|
|
|
+use App\Services\OrderService;
|
|
|
+use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
+
|
|
|
+class SyncOrderCommoditiesTest extends TestCase
|
|
|
+{
|
|
|
+ use RefreshDatabase;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var OrderService $orderService
|
|
|
+ * @var OrderCommodityService $service
|
|
|
+ */
|
|
|
+ private $service;
|
|
|
+ private $orderService;
|
|
|
+ private $data = [];
|
|
|
+
|
|
|
+ public function setUp(): void
|
|
|
+ {
|
|
|
+ parent::setUp();
|
|
|
+ $this->service = app('OrderCommodityService');
|
|
|
+ $this->orderService = app('OrderService');
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @test
|
|
|
+ */
|
|
|
+ public function syncOrderCommodities()
|
|
|
+ {
|
|
|
+ $orderHeader = OracleDOCOrderHeader::query()->with('oracleDOCOrderDetails')->where('sostatus','99')->orderByDesc('addTime')->first();
|
|
|
+ $orderHeaders = collect();
|
|
|
+ $orderHeaders->push($orderHeader);
|
|
|
+
|
|
|
+ $this->orderService->syncOrderByWMSOrderHeaders($orderHeaders);
|
|
|
+ $this->service->syncOrderCommodities($orderHeaders);
|
|
|
+
|
|
|
+ $order = Order::query()->where('code',$orderHeader->orderno)->first();
|
|
|
+ $orderCommodities = OrderCommodity::query()->with('commodity')->where('order_id',$order['id'])->get();
|
|
|
+ $oracleDOCOrderDetails = $orderHeader->oracleDOCOrderDetails;
|
|
|
+ $oracleDOCOrderDetails->each(function($detail)use($orderCommodities){
|
|
|
+ $orderCommodity = $orderCommodities->where('commodity.sku',$detail['sku'])->where('amount',$detail['qtyordered'])->first();
|
|
|
+ $this->assertNotNull($orderCommodity);
|
|
|
+ });
|
|
|
+
|
|
|
+ $orderCommodities->each(function($orderCommodity)use($oracleDOCOrderDetails){
|
|
|
+ $detail = $oracleDOCOrderDetails->where('sku',$orderCommodity->commodity->sku)->where('qtyordered',$orderCommodity->amount)->first();
|
|
|
+ $this->assertNotNull($detail);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ public function tearDown(): void
|
|
|
+ {
|
|
|
+ cache()->flush();
|
|
|
+ parent::tearDown(); // TODO: Change the autogenerated stub
|
|
|
+ }
|
|
|
+}
|