GetInnerParamsTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Tests\Services\OrderPackageSerivce\GetInnerParamsTest;
  3. use App\Logistic;
  4. use App\OracleDOCOrderHeader;
  5. use App\Order;
  6. use App\Owner;
  7. use App\Services\OracleDOCOrderHeaderService;
  8. use App\Services\OrderPackageService;
  9. use App\Services\OrderService;
  10. use App\Shop;
  11. use Illuminate\Foundation\Testing\RefreshDatabase;
  12. use Illuminate\Foundation\Testing\WithFaker;
  13. use Tests\TestCase;
  14. class GetInnerParamsTest extends TestCase
  15. {
  16. use RefreshDatabase;
  17. /**
  18. * @var OrderPackageService $service
  19. * @var OracleDOCOrderHeaderService $orderHeaderService
  20. * @var OrderService $orderService
  21. */
  22. public $service;
  23. public $orderService;
  24. public $orderHeaderService;
  25. public function setUp(): void
  26. {
  27. parent::setUp();
  28. $this->service = app('OrderPackageService');
  29. $this->orderService = app('OrderService');
  30. $this->orderHeaderService = app('OracleDocOrderHeaderService');
  31. }
  32. /**
  33. * @test
  34. */
  35. public function getInnerParamsTest()
  36. {
  37. $orderHeader = OracleDOCOrderHeader::query()
  38. ->with('actAllocationDetails')
  39. ->where('sostatus',99)
  40. ->orderByDesc('AddTime')->first();
  41. Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']);
  42. $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
  43. Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname ?? '','owner_id'=>$owner->id]);
  44. app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
  45. $orderHeaders = collect();
  46. $orderHeaders = $orderHeaders->push($orderHeader);
  47. $this->orderService->syncOrder($orderHeaders);
  48. $order = Order::query()->where('code',$orderHeader->orderno)->first();
  49. $inner_params = $this->service->getInnerParams($orderHeader,$order,['mapkey'=>['logistic_number']]);
  50. $this->assertNotEmpty($inner_params);
  51. $actAllocationDetails = $orderHeader->actAllocationDetails;
  52. foreach ($inner_params as $inner_param) {
  53. $detail = $actAllocationDetails->where('picktotraceid',$inner_param['logistic_number'])->first();
  54. $this->assertNotEmpty($detail);
  55. $this->assertEquals($inner_param['order_id'],$order->id);
  56. $this->assertEquals($inner_param['logistic_number'],$detail->picktotraceid);
  57. $this->assertNotEmpty($inner_param['created_at']);
  58. $this->assertNotEmpty($inner_param['updated_at']);
  59. }
  60. }
  61. }