shish 2 سال پیش
والد
کامیت
70fb8434a0
2فایلهای تغییر یافته به همراه60 افزوده شده و 11 حذف شده
  1. 30 5
      biz-ghs/order/classes/OrderClass.php
  2. 30 6
      biz-hd/purchase/classes/PurchaseClass.php

+ 30 - 5
biz-ghs/order/classes/OrderClass.php

@@ -522,7 +522,6 @@ class OrderClass extends BaseClass
 
         $data['prePrice'] = $currentPrice;
         $actPrice = $currentPrice;
-        $realPrice = $currentPrice;
 
         //商家自己开单时
         if (isset($data['modifyPrice'])) {
@@ -540,10 +539,37 @@ class OrderClass extends BaseClass
                 $data['discountType'] = dict::getDict('discountType', 'discount');
             }
             $actPrice = $modifyPrice;
-            $realPrice = $modifyPrice;
             if ($book == 1) {
                 $actPrice = 0;
-                $realPrice = 0;
+            }
+        } else {
+            //整单满减
+            if ($book == 0) {
+                $meetNum = $shop->meetNum ?? 0;
+                $meetAmount = $shop->meetAmount ?? 0;
+                $cutAmount = $shop->cutAmount ?? 0;
+                if ($meetNum > 0) {
+                    if (isset($data['bigNum']) && $data['bigNum'] >= $meetNum) {
+                        if ($cutAmount > $actPrice) {
+                            util::fail('整单满减为负');
+                        }
+                        $actPrice = bcsub($actPrice, $cutAmount, 2);
+                        if (isset($data['reachDiscountPrice'])) {
+                            $data['reachDiscountPrice'] = bcadd($data['reachDiscountPrice'], $cutAmount, 2);
+                        }
+                    }
+                }
+                if ($meetAmount > 0) {
+                    if (isset($data['itemPrice']) && $data['itemPrice'] >= $meetAmount) {
+                        if ($cutAmount > $actPrice) {
+                            util::fail('整单满减为负');
+                        }
+                        $actPrice = bcsub($actPrice, $cutAmount, 2);
+                        if (isset($data['reachDiscountPrice'])) {
+                            $data['reachDiscountPrice'] = bcadd($data['reachDiscountPrice'], $cutAmount, 2);
+                        }
+                    }
+                }
             }
         }
 
@@ -552,13 +578,12 @@ class OrderClass extends BaseClass
             $discountAmount = $data['discountAmount'] ?? 0;
             $currentDiscountPrice = bcsub($currentPrice, $discountAmount, 2);
             $actPrice = $currentDiscountPrice;
-            $realPrice = $currentDiscountPrice;
         }
 
         $data['actPrice'] = $actPrice;
         $data['bookPrice'] = $actPrice;
         $data['orderPrice'] = $actPrice;
-        $data['realPrice'] = $realPrice;
+        $data['realPrice'] = $actPrice;
 
         $data['sendTimeWant'] = isset($data['sendTimeWant']) && !empty($data['sendTimeWant']) ? $data['sendTimeWant'] : date("Y-m-d");
         //订单有效期

+ 30 - 6
biz-hd/purchase/classes/PurchaseClass.php

@@ -816,10 +816,7 @@ class PurchaseClass extends BaseClass
             $data['miniKilo'] = $miniKilo;
             $data['stockChange'] = 0;
         }
-
         $actPrice = $prePrice;
-        $realPrice = $prePrice;
-
         if (isset($data['modifyPrice'])) {
             $modifyPrice = $data['modifyPrice'] ?? 0;
             if ($modifyPrice < $prePrice) {
@@ -832,10 +829,37 @@ class PurchaseClass extends BaseClass
                 $data['labourCost'] = bcsub($modifyPrice, $prePrice, 2);
             }
             $actPrice = $modifyPrice;
-            $realPrice = $modifyPrice;
             if ($book == 1) {
                 $actPrice = 0;
-                $realPrice = 0;
+            }
+        } else {
+            //整单满减
+            if ($book == 0) {
+                $ghsShopId = $ghs['shopId'] ?? 0;
+                $ghsShop = ShopClass::getById($ghsShopId, true);
+                if (!empty($ghsShop)) {
+                    $meetNum = $ghsShop->meetNum ?? 0;
+                    $meetAmount = $ghsShop->meetAmount ?? 0;
+                    $cutAmount = $ghsShop->cutAmount ?? 0;
+                    if ($meetNum > 0) {
+                        if ($bigNum >= $meetNum) {
+                            if ($cutAmount > $actPrice) {
+                                util::fail('整单满减为负');
+                            }
+                            $actPrice = bcsub($actPrice, $cutAmount, 2);
+                            $totalReachDiscount = bcadd($totalReachDiscount, $cutAmount, 2);
+                        }
+                    }
+                    if ($meetAmount > 0) {
+                        if (isset($data['itemPrice']) && $data['itemPrice'] >= $meetAmount) {
+                            if ($cutAmount > $actPrice) {
+                                util::fail('整单满减为负');
+                            }
+                            $actPrice = bcsub($actPrice, $cutAmount, 2);
+                            $totalReachDiscount = bcadd($totalReachDiscount, $cutAmount, 2);
+                        }
+                    }
+                }
             }
         }
 
@@ -844,7 +868,7 @@ class PurchaseClass extends BaseClass
         $data['bookPrice'] = $actPrice;
         $data['orderPrice'] = $actPrice;
         $data['actPrice'] = $actPrice;
-        $data['realPrice'] = $realPrice;
+        $data['realPrice'] = $actPrice;
         $data['bigNum'] = $bigNum;
         $data['smallNum'] = $smallNum;
         $data['discount'] = 1;