Ver Fonte

充值现金销账问题

shish há 2 meses atrás
pai
commit
c61be847a2

+ 2 - 2
app-ghs/controllers/OrderClearController.php

@@ -264,8 +264,8 @@ class OrderClearController extends BaseController
             $custom = $return['custom'];
             $ghs = $return['ghs'];
             $customRecharge = $return['customRecharge'];
-            //结账
-            OrderClearClass::confirmClear($clear, $payWay);
+            //结账(现金已在 rechargeBalance 记过,不再重复入账)
+            OrderClearClass::confirmClear($clear, $payWay, ['skipCashMoney' => true]);
             $clearInfo = OrderClearClass::getLockById($id);
             //结账消余额
             CustomClass::clearConsumeBalance($amount, $custom, $ghs, $shop, $staff, $clearInfo);

+ 2 - 2
app-hd/controllers/ClearController.php

@@ -187,8 +187,8 @@ class ClearController extends BaseController
             $return = CustomClass::rechargeBalance($custom, $amount, $shop, $staff, $payWay);
             $custom = $return['custom'];
             $ghs = $return['ghs'];
-            //结账
-            OrderClearClass::confirmClear($clear, $payWay);
+            //结账(充值销账链路,现金/余额已在 rechargeBalance 处理)
+            OrderClearClass::confirmClear($clear, $payWay, ['skipCashMoney' => true]);
             $clearInfo = OrderClearClass::getLockById($id);
             //结账消余额
             CustomClass::clearConsumeBalance($amount, $custom, $ghs, $shop, $staff, $clearInfo);

+ 4 - 3
biz-ghs/order/classes/OrderClearClass.php

@@ -233,7 +233,7 @@ class OrderClearClass extends BaseClass
     }
 
     //确认结账 ssh 20220510
-    public static function confirmClear($clear, $payWay)
+    public static function confirmClear($clear, $payWay, $options = [])
     {
         if ($clear->status == 2) {
             util::fail('已结过账了');
@@ -288,8 +288,9 @@ class OrderClearClass extends BaseClass
         //供货商结账欠款减少
         \bizHd\ghs\classes\GhsClass::clearDebtAmountReduce($ghs, $custom, $amount, $clear);
 
-        //现金余额增加
-        if ($payWay == dict::getDict('payWay', 'cash')) {
+        //现金余额增加(充值销账链路里现金已在 rechargeBalance 记过,需 skipCashMoney)
+        $skipCashMoney = !empty($options['skipCashMoney']);
+        if (!$skipCashMoney && $payWay == dict::getDict('payWay', 'cash')) {
             $mainId = $ghs->mainId ?? 0;
             $main = MainClass::getLockById($mainId);
             if (empty($main)) {