Bläddra i källkod

红包 退款

shish 4 år sedan
förälder
incheckning
30a75c4c3a

+ 5 - 8
biz-ghs/order/classes/RefundOrderClass.php

@@ -21,7 +21,7 @@ class RefundOrderClass extends BaseClass
     const STATUS_COMPLETE = 1; //已完成
 
     const REFUND_TYPE_MONEY_GOOD = 1; //退款退货
-    const REFUND_TYPE_MONEY= 2; // 仅退款
+    const REFUND_TYPE_MONEY = 2; // 仅退款
 
 
     // 订单列表
@@ -39,7 +39,7 @@ class RefundOrderClass extends BaseClass
 
 
     //2021.1.23 linqh 订单详情
-    public static function getOrderDetail($orderSn,$shopId)
+    public static function getOrderDetail($orderSn, $shopId)
     {
         $orderData = self::orderExist(['orderSn' => $orderSn, 'shopId' => $shopId]);
         $orderInfo = RefundOrderItemClass::getOrderItemDetail($orderSn);
@@ -119,7 +119,7 @@ class RefundOrderClass extends BaseClass
     }
 
     //2021.1.23 linqh 订单详情
-    public static function getOrderDetailByRelateOrder($orderSn,$shopId)
+    public static function getOrderDetailByRelateOrder($orderSn, $shopId)
     {
         $orderData = self::orderExist(['relateOrderSn' => $orderSn, 'shopId' => $shopId]);
         $orderInfo = RefundOrderItemClass::getOrderItemDetail($orderData['orderSn']);
@@ -138,13 +138,10 @@ class RefundOrderClass extends BaseClass
                 $itemData[] = $tmp;
             }
         }
-        //下面注释放开前,员工id要用shopAdminId
-        //$orderData = self::groupAdmin($orderData);
         $orderData['itemInfo'] = $itemData;
-        //订单总金额
         $kdOrder = OrderClass::getByOrderSn($orderSn);
-        $orderData['totalPrice'] = $kdOrder['realPrice'];
-
+        $orderData['orderInfo'] = $kdOrder;
         return $orderData;
     }
+
 }

+ 17 - 0
biz-ghs/order/services/RefundOrderService.php

@@ -2,6 +2,7 @@
 
 namespace bizGhs\order\services;
 
+use biz\hb\classes\HbClass;
 use biz\shop\classes\ShopCapitalClass;
 use biz\shop\classes\ShopClass;
 use biz\stat\classes\StatOutClass;
@@ -12,6 +13,7 @@ use bizGhs\order\classes\OrderClass;
 use bizGhs\order\classes\RefundOrderClass;
 use bizGhs\order\classes\RefundOrderItemClass;
 use bizGhs\stock\classes\StockRecordClass;
+use bizHd\purchase\classes\PurchaseClass;
 use common\components\dict;
 use common\components\orderSn;
 use common\components\util;
@@ -56,6 +58,21 @@ class RefundOrderService extends BaseService
         $data['refundPrice'] = $refundPrice;
         $data['refundType'] = $post['refundType'] ?? 0;
 
+        $actPrice = $order->actPrice ?? 0;
+        if (floatval($refundPrice) == floatval($actPrice)) {
+            //检查采购端有没红包并进行退回
+            $purchaseId = $order->purchaseId ?? 0;
+            $cg = PurchaseClass::getById($purchaseId, true);
+            $hbId = $cg->hbId ?? 0;
+            if (!empty($hbId)) {
+                $hbInfo = HbClass::getById($hbId, true);
+                if (!empty($hbInfo)) {
+                    $data['hbAmount'] = $hbInfo->amount ?? 0;
+                    $data['hbRefund'] = 1;
+                }
+            }
+        }
+
         //写入订单表
         $refund = RefundOrderClass::add($data, true);
         if ($data['refundType'] == RefundOrderClass::REFUND_TYPE_MONEY_GOOD) {

+ 15 - 12
biz-hd/cg/services/CgRefundService.php

@@ -59,18 +59,6 @@ class CgRefundService extends BaseService
             util::fail('没有找到门店');
         }
 
-        //退款金额和采购单金额一样,有使用红包则原路退回
-        $actPrice = $cg->actPrice ?? 0;
-        if (floatval($actPrice) == floatval($refundPrice)) {
-            $hbId = $cg->hbId ?? 0;
-            if (!empty($hbId)) {
-                $hbInfo = HbClass::getById($hbId, true);
-                $hbInfo->status = HbClass::STATUS_UN_USE;
-                $hbInfo->take = HbClass::TAKE_UN;
-                $hbInfo->save();
-            }
-        }
-
         $ghsItemInfo = $post['product'] ?? '';
         $data = [];
         $data['status'] = CgRefundClass::STATUS_COMPLETE;
@@ -84,6 +72,21 @@ class CgRefundService extends BaseService
         $data['refundPrice'] = $refundPrice;
         $data['remark'] = $post['remark'];
 
+        //退款金额和采购单金额一样,使用的红包原路退回
+        $actPrice = $cg->actPrice ?? 0;
+        if (floatval($actPrice) == floatval($refundPrice)) {
+            $hbId = $cg->hbId ?? 0;
+            if (!empty($hbId)) {
+                $hbInfo = HbClass::getById($hbId, true);
+                $hbInfo->status = HbClass::STATUS_UN_USE;
+                $hbInfo->take = HbClass::TAKE_UN;
+                $hbInfo->save();
+                $data['hbAmount'] = $hbInfo->amount ?? 0;
+                $data['hbRefund'] = 1;
+                $data['hbId'] = $hbId;
+            }
+        }
+
         if ($ghsItemInfo) {
             $ghsItemInfo = CgRefundClass::mergeItemInfo($ghsItemInfo);
             $sumNum = CgRefundClass::sumNumByItemInfo($ghsItemInfo);