ANG YU пре 5 година
родитељ
комит
62c42604e0

+ 7 - 4
app/Services/OrderPackageService.php

@@ -221,18 +221,21 @@ class OrderPackageService
     private function updatePackage($orderHeaders, $packages)
     {
         $map = $this->getSentAtMap($orderHeaders);
+        $update_params = [];
+        $update_params[] = ['id','sent_at'];
         foreach ($packages as $package) {
             if ($package->sent_at) continue;
             try {
                 $data = $map[$package->logistic_number];
             } catch (\Exception $e) {
-                $data = null;
+                continue;
             }
-            $data2 = [
-                'sent_at' => $data? $data->checktime:null,
+            $update_params[] = [
+                'id'=>$package->id,
+                'sent_at' => $data->checktime,
             ];
-            $package->update($data2);
         }
+        $this->batchUpdate($update_params);
     }
 
     /**

+ 7 - 2
tests/Services/OrderPackageService/SyncOrderPackageTest.php

@@ -82,6 +82,10 @@ class SyncOrderPackageTest extends TestCase
         $this->service->syncOrderPackage($orderHeaders);
         $orderPackages = OrderPackage::query()->where('order_id',$this->data['order']['id'])->get();
         $this->assertEquals($orderPackages->count(),count($this->data['orderHeader']->actAllocationDetails));
+        foreach($orderPackages as $orderPackage) {
+            $this->assertEquals($orderPackage->owner_id,$this->data['order']['owner_id']);
+        }
+
     }
 
     /**
@@ -92,12 +96,13 @@ class SyncOrderPackageTest extends TestCase
         foreach ($actAllocationDetails as $actAllocationDetail) {
             $actAllocationDetail->checktime = null;
         }
-        $this->orderPackageUnnecessary();
+        $orderHeaders = collect([$this->data['orderHeader']]);
+        $this->service->syncOrderPackage($orderHeaders);
         $actAllocationDetails = $this->data['orderHeader']->actAllocationDetails;
         foreach ($actAllocationDetails as $actAllocationDetail) {
             $actAllocationDetail->checktime = '2020-11-01';
         }
-        $this->orderPackageUnnecessary();
+        $this->service->syncOrderPackage($orderHeaders);
         $orderPackages = OrderPackage::query()->where('order_id',$this->data['order']['id'])->get();
         $this->assertEquals('2020-11-01 00:00:00', $orderPackages->first()->sent_at);
     }