From 4c422036976affb0d950e31572ba342b79199a91 Mon Sep 17 00:00:00 2001 From: evoxwht <442384644@qq.com> Date: Mon, 10 Apr 2023 15:25:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=8D=95=E9=87=91=E9=A2=9D=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=97=AE=E9=A2=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/services/order/StoreOrderSplitServices.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/crmeb/app/services/order/StoreOrderSplitServices.php b/crmeb/app/services/order/StoreOrderSplitServices.php index e6178ecae..154176036 100644 --- a/crmeb/app/services/order/StoreOrderSplitServices.php +++ b/crmeb/app/services/order/StoreOrderSplitServices.php @@ -335,6 +335,7 @@ class StoreOrderSplitServices extends BaseServices * 部分发货重新计算订单商品:实际金额、优惠、积分等金额 * @param int $cart_num * @param array $cart_info + * @param string $orderType * @return array */ public function slpitComputeOrderCart(int $cart_num, array $cart_info, $orderType = 'new') @@ -353,9 +354,17 @@ class StoreOrderSplitServices extends BaseServices if ($field == 'use_integral') $scale = 0; $new_cart_info[$field] = bcmul((string)$cart_num, bcdiv((string)$cart_info[$field], (string)$cart_info['cart_num'], 4), $scale); if ($orderType == 'new') {//拆出 - $new_cart_info[$field] = bcmul((string)$cart_num, bcdiv((string)$cart_info[$field], (string)$cart_info['cart_num'], 4), $scale); + if ($field == 'sum_true_price') { + $new_cart_info[$field] = round(bcmul((string)$cart_num, bcdiv((string)$cart_info[$field], (string)$cart_info['cart_num'], 4), 4), 2, PHP_ROUND_HALF_UP); + } else { + $new_cart_info[$field] = bcmul((string)$cart_num, bcdiv((string)$cart_info[$field], (string)$cart_info['cart_num'], 4), $scale); + } } else { - $field_number = bcmul((string)bcsub((string)$cart_info['cart_num'], (string)$cart_num, 0), bcdiv((string)$cart_info[$field], (string)$cart_info['cart_num'], 4), $scale); + if ($field == 'sum_true_price') { + $field_number = round(bcmul((string)bcsub((string)$cart_info['cart_num'], (string)$cart_num, 0), bcdiv((string)$cart_info[$field], (string)$cart_info['cart_num'], 4), 4), 2, PHP_ROUND_HALF_UP); + } else { + $field_number = bcmul((string)bcsub((string)$cart_info['cart_num'], (string)$cart_num, 0), bcdiv((string)$cart_info[$field], (string)$cart_info['cart_num'], 4), $scale); + } $new_cart_info[$field] = bcsub((string)$cart_info[$field], (string)$field_number, $scale); } }