shish 9 месяцев назад
Родитель
Сommit
4c767a9c66

+ 3 - 4
app-ghs/controllers/OrderController.php

@@ -1942,11 +1942,10 @@ class OrderController extends BaseController
         $superInfo = ShopAdminClass::getManager($mainId);
         $info['customSuper'] = $superInfo;
 
-        //没有财务权限不能看到利润 ssh 20251117
+        //员工是否有财务权限 ssh 20251117
         $staff = $this->shopAdmin;
-        if ($staff->finance == 0) {
-            $info['profit'] = 0;
-        }
+        $staffFinance = $staff->finance ?? 0;
+        $info['staffFinance'] = $staffFinance;
 
         util::success($info);
     }

+ 19 - 1
biz-ghs/order/classes/RefundOrderClass.php

@@ -118,6 +118,9 @@ class RefundOrderClass extends BaseClass
         $order->refund = OrderClass::REFUND_YES;
         $order->save();
 
+        //退货并退款的售后,需要减少订单的总成本
+        $reduceCost = 0;
+
         $orderSn = $order->orderSn ?? '';
         $onlinePay = $order->onlinePay ?? 1;
         $shopId = $order->shopId ?? 0;
@@ -152,7 +155,7 @@ class RefundOrderClass extends BaseClass
                 $productId = $oneItem->productId ?? 0;
                 $ptItemId = $oneItem->itemId ?? 0;
                 $itemName = $oneItem->name ?? '';
-
+                $cost = $oneItem->cost ?? 0;
                 $orderItemNum = $oneItem->xhNum ?? 0;
                 $refundNum = $oneItem->refundNum ?? 0;
                 $remainNum = bcsub($orderItemNum, $refundNum);
@@ -167,6 +170,9 @@ class RefundOrderClass extends BaseClass
                     $oneItem->refundNum = bcadd($refundNum, $num);
                     $oneItem->save();
 
+                    $currentCost = bcmul($cost, $num, 2);
+                    $reduceCost = bcadd($currentCost, $reduceCost, 2);
+
                     if ($refundSingle->xhUnitType == 1) {
                         $smallNum = $num;
                         $bigNum = 0;
@@ -204,6 +210,18 @@ class RefundOrderClass extends BaseClass
             }
         }
 
+        $refundPackCost = $refund->refundPackCost ?? 0;
+        $reduceCost = bcadd($reduceCost, $refundPackCost, 2);
+        $refundSendCost = $refund->refundSendCost ?? 0;
+        $reduceCost = bcadd($reduceCost, $refundSendCost, 2);
+        //售后减掉订单的成本
+        if ($order->remainCost > $reduceCost) {
+            $order->remainCost = bcsub($order->remainCost, $reduceCost, 2);
+        } else {
+            $order->remainCost = 0;
+        }
+        $order->save();
+
         $shop = ShopClass::getLockById($shopId);
         if (empty($shop)) {
             util::fail('没有找到门店73');