shish il y a 5 ans
Parent
commit
f175788fbc

+ 7 - 1
biz-ghs/order/services/RefundOrderService.php

@@ -106,6 +106,12 @@ class RefundOrderService extends BaseService
         //当天和当月支出统计
         StatOutClass::updateOrInsert($shop, $refundPrice);
 
+        //记录总的退款金额
+        $currentTkPrice = bcadd($order->tkPrice, $refundPrice, 2);
+        $order->tkPrice = $currentTkPrice;
+        $order->refund = OrderClass::REFUND_YES;
+        $order->save();
+
         if ($payWay == dict::getDict('payWay', 'wxPay')) {
             //门店余额减少
             ShopClass::saleRefundReduceBalance($shop, $refund, $refundPrice);
@@ -124,7 +130,7 @@ class RefundOrderService extends BaseService
             $shop->mayGathering = $currentMayGathering;
             $shop->save();
 
-            //订单减掉退款
+            //订单总金额需要减掉退款部分
             $currentRefund = bcadd($order->refundPrice, $refundPrice, 2);
             $order->refundPrice = $currentRefund;
             $currentActPrice = bcsub($order->actPrice, $refundPrice, 2);

+ 8 - 8
biz-hd/cg/services/CgRefundService.php

@@ -6,8 +6,6 @@ use biz\ghs\classes\GhsClass;
 use biz\shop\classes\ShopCapitalClass;
 use biz\shop\classes\ShopClass;
 use biz\wx\classes\WxMessageClass;
-use bizGhs\cg\classes\CgClass;
-use bizGhs\order\classes\PurchaseOrderClass;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\classes\StockRecordClass;
 use bizHd\base\services\BaseService;
@@ -113,9 +111,9 @@ class CgRefundService extends BaseService
 
         $currentType = dict::getDict('capitalType', 'cgRefund', 'id');
 
-        //退款增加,兼容多次退款累加
-        $currentRefund = bcadd($cg->refundPrice, $refundPrice, 2);
-        $cg->refundPrice = $currentRefund;
+        //记录总的退款金额
+        $currentTkPrice = bcadd($cg->tkPrice, $refundPrice, 2);
+        $cg->tkPrice = $currentTkPrice;
         $cg->refund = PurchaseClass::REFUND_YES;
         $cg->save();
 
@@ -163,9 +161,12 @@ class CgRefundService extends BaseService
 
             $clearId = $cg->clearId ?? 0;
             if (!empty($clearId)) {
-                util::fail('订单已结,无法退款');
+                util::fail('订单已经月结,无法再发起退款');
             }
 
+            //采购单总金额还要减去退款
+            $currentRefund = bcadd($cg->refundPrice, $refundPrice, 2);
+            $cg->refundPrice = $currentRefund;
             $currentActPrice = bcsub($cg->actPrice, $refundPrice, 2);
             if ($currentActPrice < 0) {
                 util::fail('退款金额有问题!');
@@ -233,8 +234,7 @@ class CgRefundService extends BaseService
         //每天每月收入
         StatIncomeClass::updateOrInsert($shop, $refundPrice);
         //微信通知退款成功
-        $amount = $cg->refundPrice ?? 0;
-        WxMessageClass::cgRefundInform($shop, $cg, $amount);
+        WxMessageClass::cgRefundInform($shop, $cg, $refundPrice);
 
         return $cgRefund;