|
@@ -225,13 +225,23 @@ class FyyOrderService extends Service
|
|
|
$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;
|
|
|
}
|
|
|
|
|
|
+ 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){
|
|
|
$result = Orders::where('del_time',0)
|
|
|
->whereIn('out_order_no',array_column($data,'out_order_no'))
|