GetOrderByLogisticNumberTest.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Tests\Services\OrderService\GetOrderByLogisticNumberTest;
  3. use App\Logistic;
  4. use App\OracleDOCOrderHeader;
  5. use App\Order;
  6. use App\OrderPackage;
  7. use App\Owner;
  8. use App\Services\OrderService;
  9. use App\Shop;
  10. use App\Warehouse;
  11. use Illuminate\Foundation\Testing\RefreshDatabase;
  12. use Illuminate\Foundation\Testing\WithFaker;
  13. use Tests\TestCase;
  14. class GetOrderByLogisticNumberTest extends TestCase
  15. {
  16. /** @var OrderService $service */
  17. public $service;
  18. public function setUp(): void
  19. {
  20. parent::setUp();
  21. $this->service = app('OrderService');
  22. }
  23. public function testGetOrderByLogisticNumber()
  24. {
  25. $order_package = OrderPackage::query()->orderByDesc('id')->first();
  26. $logistic_number = $order_package->logistic_number;
  27. $orderHeader = OracleDOCOrderHeader::query()->whereHas('actAllocationDetails',function($query)use($order_package){
  28. $query->where('PickToTraceID',$order_package->logistic_number);
  29. })->first();
  30. if(!$orderHeader){
  31. $orderHeader = OracleDOCOrderHeader::query()->with('actAllocationDetails')->orderBy('AddTime')->first();
  32. $logistic_number = data_get($orderHeader,'actAllocationDetails.*.picktotraceid')[0];
  33. }
  34. $order = $this->service->getOrderByLogisticNumber($logistic_number);
  35. $this->assertEquals((string)$orderHeader->addtime,(string)$order->created_at);
  36. $this->assertEquals($orderHeader->orderno,$order->code);
  37. $shop = Shop::query()->where('name',$orderHeader->issuepartyname)->first();
  38. $this->assertEquals($shop->id,$order->shop_id);
  39. $owner = Owner::query()->where('code',$orderHeader->customerid)->first();
  40. $this->assertEquals($owner->id, $order->owner_id);
  41. $this->assertEquals($orderHeader->soreference1,$order->client_code);
  42. $logistic = Logistic::query()->where('code',$orderHeader->userdefine1)->first();
  43. $this->assertEquals($logistic->id,$order->logistic_id);
  44. $this->assertEquals($orderHeader->c_contact,$order->consignee_name);
  45. $consignee_phone = empty($orderHeader->c_tel2)?$orderHeader->c_tel1:$orderHeader->c_tel2;
  46. $this->assertEquals($consignee_phone,$order->consignee_phone);
  47. $this->assertEquals($orderHeader->c_province,$order->province);
  48. $this->assertEquals($orderHeader->c_city,$order->city);
  49. $this->assertEquals($orderHeader->c_district,$order->district);
  50. $this->assertEquals($orderHeader->c_address1,$order->address);
  51. $this->assertEquals($orderHeader->oracleBASCode_codename_c,$order->wms_status);
  52. $warehouse = Warehouse::query()->where('code',$orderHeader->warehouseid)->first();
  53. $this->assertEquals($warehouse->id,$order->warehouse_id);
  54. $this->assertEquals($orderHeader->edittime,$order->wms_edittime);
  55. }
  56. }