GetOrderByLogisticNumberTest.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. // var_dump($logistic_number);
  28. $orderHeader = OracleDOCOrderHeader::query()->whereHas('actAllocationDetails',function($query)use($order_package){
  29. $query->where('PickToTraceID',$order_package->logistic_number);
  30. })->first();
  31. // var_dump($orderHeader?$orderHeader->orderno:'');
  32. if(!$orderHeader){
  33. $orderHeader = OracleDOCOrderHeader::query()->with('actAllocationDetails')->orderBy('AddTime')->first();
  34. // var_dump($orderHeader?$orderHeader->orderno:'查询为空');
  35. $logistic_number = data_get($orderHeader,'actAllocationDetails.*.picktotraceid')[0];
  36. }
  37. $order = $this->service->getOrderByLogisticNumber($logistic_number);
  38. // var_dump($order,$logistic_number,$orderHeader,$order_package);
  39. $this->assertEquals((string)$orderHeader->addtime,(string)$order->created_at);
  40. $this->assertEquals($orderHeader->orderno,$order->code);
  41. $shop = Shop::query()->where('name',$orderHeader->issuepartyname)->first();
  42. $this->assertEquals($shop->id,$order->shop_id);
  43. $owner = Owner::query()->where('code',$orderHeader->customerid)->first();
  44. $this->assertEquals($owner->id, $order->owner_id);
  45. $this->assertEquals($orderHeader->soreference1,$order->client_code);
  46. $logistic = Logistic::query()->where('code',$orderHeader->userdefine1)->first();
  47. $this->assertEquals($logistic->id,$order->logistic_id);
  48. $this->assertEquals($orderHeader->c_contact,$order->consignee_name);
  49. $consignee_phone = empty($orderHeader->c_tel2)?$orderHeader->c_tel1:$orderHeader->c_tel2;
  50. $this->assertEquals($consignee_phone,$order->consignee_phone);
  51. $this->assertEquals($orderHeader->c_province,$order->province);
  52. $this->assertEquals($orderHeader->c_city,$order->city);
  53. $this->assertEquals($orderHeader->c_district,$order->district);
  54. $this->assertEquals($orderHeader->c_address1,$order->address);
  55. $this->assertEquals($orderHeader->oracleBASCode_codename_c,$order->wms_status);
  56. $warehouse = Warehouse::query()->where('code',$orderHeader->warehouseid)->first();
  57. $this->assertEquals($warehouse->id,$order->warehouse_id);
  58. $this->assertEquals($orderHeader->edittime,$order->wms_edittime);
  59. }
  60. }