SyncOrderByWMSOrderHeadersTest.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. namespace Tests\Services\OrderService;
  3. use App\Batch;
  4. use App\Logistic;
  5. use App\OracleBasCode;
  6. use App\OracleDOCOrderHeader;
  7. use App\Order;
  8. use App\Owner;
  9. use App\Services\OrderService;
  10. use App\Shop;
  11. use App\Warehouse;
  12. use Tests\TestCase;
  13. class SyncOrderByWMSOrderHeadersTest extends TestCase
  14. {
  15. /** @var OrderService $service */
  16. private $service;
  17. private $data = [];
  18. protected function setUp(): void
  19. {
  20. parent::setUp(); // TODO: Change the autogenerated stub
  21. // $this->service = app('OrderService');
  22. // $owners = factory(Owner::class)->times(10)->create();
  23. // $logistics = factory(Logistic::class)->times(20)->create();
  24. // $wareHouses = factory(Warehouse::class)->times(3)->create();
  25. // $shops = collect();
  26. // foreach ($owners as $owner) {
  27. // $shops = $shops->concat(factory(Shop::class)->times(rand(3,5))->create(['owner_id'=>$owner->id]));
  28. // }
  29. // $batches = factory(Batch::class)->times(10)->create();
  30. // $orderHeaders = collect();
  31. // foreach ($owners as $owner) {
  32. // $count = rand(1,10);
  33. // for ($i=0;$i<=$count;$i++) {
  34. // $shop = $shops->where('owner_id',$owner->id)->random();
  35. // $warehouse = $wareHouses->random();
  36. // $logistic = $logistics->random();
  37. // $batch = $batches->random();
  38. // $orderHeader = factory(OracleDOCOrderHeader::class)->make([
  39. // 'warehouseid'=>$warehouse->code,
  40. // 'waveno'=>$batch->code,
  41. // 'customerid'=>$owner->code,
  42. // 'userdefine1'=>$logistic->code,
  43. // 'issuepartyname' => $shop->name,
  44. // ]);
  45. // $oracleBASCode = factory(OracleBasCode::class)->make();
  46. // $orderType = factory(OracleBasCode::class)->make();
  47. // $orderHeader->setRelation('oracleBASCode',$oracleBASCode);
  48. // $orderHeader->setRelation('orderType',$orderType);
  49. // $orderHeaders = $orderHeaders->push($orderHeader);
  50. // }
  51. // }
  52. // $this->data = [
  53. // 'warehouses' => $wareHouses,
  54. // 'batches' => $batches,
  55. // 'owners' => $owners,
  56. // 'logistics' => $logistics,
  57. // 'shops' => $shops,
  58. // 'orderHeaders' => $orderHeaders
  59. // ];
  60. }
  61. /**
  62. * @test
  63. */
  64. public function syncOrderByWMSOrderHeaders()
  65. {
  66. // $this->service->syncOrderByWMSOrderHeaders($this->data['orderHeaders']);
  67. // $orders = Order::query()->whereIn('code',data_get($this->data['orderHeaders'],'*.orderno'))->get();
  68. // $this->data['orders'] = $orders;
  69. // $this->assertEquals(count($orders),count($this->data['orderHeaders']));
  70. // $this->assertOrderHeadersAndOrder($this->data['orderHeaders'],$orders);
  71. $this->assertTrue(true);
  72. }
  73. /**
  74. * @test 订单已存在
  75. */
  76. // public function orderExisting()
  77. // {
  78. //
  79. // $this->service->syncOrderByWMSOrderHeaders($this->data['orderHeaders']);
  80. // $this->service->syncOrderByWMSOrderHeaders($this->data['orderHeaders']);
  81. // $orders = Order::query()->whereIn('code',data_get($this->data['orderHeaders'],'*.orderno'))->get();
  82. // $this->data['orders'] = $orders;
  83. // $this->assertEquals(count($orders),count($this->data['orderHeaders']));
  84. // $this->assertOrderHeadersAndOrder($this->data['orderHeaders'],$orders);
  85. // }
  86. /**
  87. * @test 订单部分存在
  88. */
  89. // public function orderPortionExisting()
  90. // {
  91. // $orderHeaders = $this->data['orderHeaders']->random(30);
  92. // $this->service->syncOrderByWMSOrderHeaders($orderHeaders);
  93. // $this->service->syncOrderByWMSOrderHeaders($this->data['orderHeaders']);
  94. // $orders = Order::query()->whereIn('code',data_get($this->data['orderHeaders'],'*.orderno'))->get();
  95. // $this->data['orders'] = $orders;
  96. // $this->assertEquals(count($orders),count($this->data['orderHeaders']));
  97. // $this->assertOrderHeadersAndOrder($this->data['orderHeaders'],$orders);
  98. // }
  99. /**
  100. * @test 订单部分在且有修改
  101. */
  102. // public function orderPortingExistingAndModified()
  103. // {
  104. // $orderHeaders = $this->data['orderHeaders']->random(20);
  105. // foreach ($orderHeaders as $orderHeader) {
  106. // $owner = $this->data['owners']->random();
  107. // $shop = $this->data['shops']->where('owner_id',$owner->id)->random();
  108. // $warehouse = $this->data['warehouses']->random();
  109. // $logistic = $this->data['logistics']->random();
  110. // $batch = $this->data['batches']->random();
  111. // $orderHeader['warehouseid']=$warehouse->code;
  112. // $orderHeader['waveno']=$batch->code;
  113. // $orderHeader['customerid']=$owner->code;
  114. // $orderHeader['userdefine1']=$logistic->code;
  115. // $orderHeader['issuepartyname'] = $shop->name;
  116. // }
  117. // $this->service->syncOrderByWMSOrderHeaders($orderHeaders);
  118. // $this->service->syncOrderByWMSOrderHeaders($this->data['orderHeaders']);
  119. // $orders = Order::query()->whereIn('code',data_get($this->data['orderHeaders'],'*.orderno'))->get();
  120. // $this->data['orders'] = $orders;
  121. // $this->assertEquals(count($orders),count($this->data['orderHeaders']));
  122. // $this->assertOrderHeadersAndOrder($this->data['orderHeaders'],$orders);
  123. // }
  124. // public function assertOrderHeadersAndOrder($orderHeaders,$orders){
  125. // foreach ($orderHeaders as $orderHeader) {
  126. // $warehouse = Warehouse::query()->where('code',$orderHeader['warehouseid'])->first();
  127. // $batch = Batch::query()->where('code',$orderHeader['waveno'])->first();
  128. // $owner = Owner::query()->where('code',$orderHeader['customerid'])->first();
  129. // $logistic = Logistic::query()->where('code',$orderHeader['userdefine1'])->first();
  130. // $shop = Shop::query()->where('name',$orderHeader['issuepartyname'])->first();
  131. // $order = $orders->where('code',$orderHeader['orderno'])->first();
  132. // $this->assertNotEmpty($order);
  133. // $this->assertEquals($order->warehouse_id, $warehouse->id);
  134. // $this->assertEquals($order->batch_id,$batch->id);
  135. // $this->assertEquals($order->owner_id,$owner->id);
  136. // $this->assertEquals($order->logistic_id,$logistic->id);
  137. // $this->assertEquals($order->shop_id,$shop->id);
  138. // $this->assertEquals($order->wms_status,$orderHeader->oracleBASCode->codename_c ?? '');
  139. // $this->assertEquals($order->order_type,$orderHeader->orderType->codename_c ?? '');
  140. // }
  141. // }
  142. protected function tearDown(): void
  143. {
  144. // Warehouse::destroy(data_get($this->data['warehouses'],'*.id'));
  145. // Batch::destroy(data_get($this->data['batches'],'*.id'));
  146. // Owner::destroy(data_get($this->data['owners'],'*.id'));
  147. // Logistic::query()->whereIn('id',data_get($this->data['logistics'],'*.id'))->forceDelete();
  148. // Shop::destroy(data_get($this->data['shops'],'*.id'));
  149. // Order::destroy(data_get($this->data['orders'],'*.id'));
  150. parent::tearDown(); // TODO: Change the autogenerated stub
  151. }
  152. }