chenqp 1 tahun lalu
induk
melakukan
1c11b9be67
1 mengubah file dengan 14 tambahan dan 4 penghapusan
  1. 14 4
      app/Service/FyyOrderService.php

+ 14 - 4
app/Service/FyyOrderService.php

@@ -225,13 +225,23 @@ class FyyOrderService extends Service
                 $data['data'][$key]['is_create'] = 0;
                 $data['data'][$key]['is_create'] = 0;
             }
             }
         }
         }
-        $data['order_quantity'] = array_sum(array_column($data['data'], 'order_quantity'));
-        $data['finished_num'] = array_sum(array_column($data['data'], 'finished_num'));
-        $data['product_quantity_on_hand'] = array_sum(array_column($data['data'], 'product_quantity_on_hand'));
-
+        $data['order_quantity'] = $this->sumWithPrecision($data['data'],'order_quantity');
+        $data['finished_num'] = $this->sumWithPrecision($data['data'],'finished_num');
+        $data['product_quantity_on_hand'] = $this->sumWithPrecision($data['data'],'product_quantity_on_hand');
         return $data;
         return $data;
     }
     }
 
 
+    function sumWithPrecision(array $data, string $column, int $scale = 3): string
+    {
+        $sum = '0';
+        foreach ($data as $item) {
+            if (isset($item[$column])) {
+                $sum = bcadd($sum, (string)$item[$column], $scale);
+            }
+        }
+        return $sum;
+    }
+
     public function orderRule($data){
     public function orderRule($data){
         $result = Orders::where('del_time',0)
         $result = Orders::where('del_time',0)
             ->whereIn('out_order_no',array_column($data,'out_order_no'))
             ->whereIn('out_order_no',array_column($data,'out_order_no'))