SyncOrderPackageTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace Tests\Services\OrderPackageService\SyncOrderPackageTest;
  3. use App\Services\OracleDOCOrderHeaderService;
  4. use App\Services\OrderPackageService;
  5. use App\Services\OrderService;
  6. use Carbon\Carbon;
  7. use Illuminate\Foundation\Testing\RefreshDatabase;
  8. use Illuminate\Foundation\Testing\WithFaker;
  9. use Tests\TestCase;
  10. class SyncOrderPackageTest extends TestCase
  11. {
  12. /**
  13. * @var OrderPackageService $service
  14. * @var OracleDOCOrderHeaderService $orderHeaderService
  15. * @var OrderService $orderService
  16. */
  17. public $service;
  18. public $orderService;
  19. public $orderHeaderService;
  20. public function setUp(): void
  21. {
  22. parent::setUp();
  23. $this->service = app('OrderPackageService');
  24. $this->orderService = app('OrderService');
  25. $this->orderHeaderService = app('OracleDOCOrderHeaderService');
  26. }
  27. public function testSyncOrderPackage()
  28. {
  29. /*
  30. * createOrderPackage($orderHeaders,$orders,$packages)
  31. * */
  32. $carbon =Carbon::now()->subHours(10);
  33. $date = '2020-09-18 18:13:50';
  34. $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
  35. if($orderHeaders->count()==0){
  36. return;
  37. }
  38. $orders = $this->orderService->getByWmsOrders($orderHeaders);
  39. $packages = $this->service->getByWmsOrders($orderHeaders);
  40. $this->service->syncOrderPackage($orderHeaders,$orders,$packages);
  41. $exits_packages = $this->service->getByWmsOrders($orderHeaders);
  42. $exits_count = $exits_packages->count();
  43. $logistic_numbers = data_get($orderHeaders,'*.actAllocationDetails.*.picktotraceid');
  44. $logistic_numbers = array_unique(array_diff($logistic_numbers,['',' ','*']));
  45. $this->assertEquals(count($logistic_numbers),$exits_count);
  46. foreach ($logistic_numbers as $logistic_number) {
  47. $exits_package = $exits_packages->where('logistic_number',$logistic_number);
  48. $this->assertEmpty($exits_package);
  49. $this->assertEquals($exits_package->count(),1);
  50. }
  51. }
  52. }