Browse Source

余额与欠款销账

shish 1 year ago
parent
commit
d93cf1ff66
2 changed files with 39 additions and 8 deletions
  1. 33 4
      biz-hd/custom/classes/CustomClass.php
  2. 6 4
      biz-hd/order/classes/OrderClass.php

+ 33 - 4
biz-hd/custom/classes/CustomClass.php

@@ -7,7 +7,9 @@ use bizGhs\shop\classes\TotalDebtChangeClass;
 use bizHd\balance\classes\BalanceChangeClass;
 use bizHd\balance\classes\BalanceChangeClass;
 use bizHd\member\classes\MemberChangeClass;
 use bizHd\member\classes\MemberChangeClass;
 use bizHd\member\classes\MemberWealClass;
 use bizHd\member\classes\MemberWealClass;
+use bizHd\order\classes\SettleClass;
 use bizHd\shop\classes\MainClass;
 use bizHd\shop\classes\MainClass;
+use bizHd\shop\classes\ShopClass;
 use bizMall\user\classes\UserClass;
 use bizMall\user\classes\UserClass;
 use common\components\dict;
 use common\components\dict;
 use common\components\imgUtil;
 use common\components\imgUtil;
@@ -148,10 +150,36 @@ class CustomClass extends BaseClass
         MemberChangeClass::add($change);
         MemberChangeClass::add($change);
     }
     }
 
 
-    //客户采购欠款金额增加 ssh 20220908
+    //客户采购欠款金额增加,如果有余额时,要进行欠款销账 ssh 20250715
     public static function cgDebtAmountAdd($custom, $order)
     public static function cgDebtAmountAdd($custom, $order)
     {
     {
+        $clearAmount = 0;
         $amount = $order->remainDebtPrice ?? 0;
         $amount = $order->remainDebtPrice ?? 0;
+        $staffId = $order->shopAdminId ?? 0;
+        $staffName = $order->shopAdminName ?? '';
+        $orderId = $order->id;
+        $shopId = $order->shopId;
+        $settleNo = '';
+        $settleId = 0;
+        $settleAmount = 0;
+        if ($custom->balance > 0) {
+            if ($amount >= $custom->balance) {
+                $clearAmount = $custom->balance;
+            } else {
+                $clearAmount = $amount;
+            }
+        }
+        if ($clearAmount > 0) {
+            $shop = ShopClass::getById($shopId, true);
+            $needClearIdMap[] = ['orderId' => $orderId, 'clearAmount' => $clearAmount];
+            $setParams = ['staffId' => $staffId, 'staffName' => $staffName];
+            $set = SettleClass::addSettle($needClearIdMap, $shop, $custom, $hd, $setParams);
+            $ret = SettleClass::clearSettle($set);
+            $settleAmount = $ret['totalClearAmount'] ?? 0;
+            $settleNo = $set->orderSn ?? '';
+            $settleId = $set->id;
+        }
+
         $lastBalance = bcsub($custom->balance, $amount, 2);
         $lastBalance = bcsub($custom->balance, $amount, 2);
         $custom->balance = $lastBalance;
         $custom->balance = $lastBalance;
         if ($custom->balance < 0) {
         if ($custom->balance < 0) {
@@ -162,7 +190,7 @@ class CustomClass extends BaseClass
         $hdId = $custom->hdId ?? 0;
         $hdId = $custom->hdId ?? 0;
         $hd = HdClass::getLockById($hdId);
         $hd = HdClass::getLockById($hdId);
         if (empty($hd)) {
         if (empty($hd)) {
-            util::fail('花店信息缺失');
+            util::fail('花店信息缺失,编号6331');
         }
         }
         $remain = bcsub($hd->balance, $amount, 2);
         $remain = bcsub($hd->balance, $amount, 2);
         $hd->balance = $remain;
         $hd->balance = $remain;
@@ -171,8 +199,6 @@ class CustomClass extends BaseClass
         }
         }
         $hd->save();
         $hd->save();
 
 
-        $staffId = $order->shopAdminId ?? 0;
-        $staffName = $order->shopAdminName ?? '';
         $relateId = $order->id ?? 0;
         $relateId = $order->id ?? 0;
         $customId = $custom->id ?? 0;
         $customId = $custom->id ?? 0;
         $orderSn = $order->orderSn ?? '';
         $orderSn = $order->orderSn ?? '';
@@ -198,6 +224,9 @@ class CustomClass extends BaseClass
             'staffName' => $staffName,
             'staffName' => $staffName,
             'shopId' => $order->id,
             'shopId' => $order->id,
             'mainId' => $order->mainId,
             'mainId' => $order->mainId,
+            'settleId' => $settleId,
+            'settleNo' => $settleNo,
+            'settleAmount' => $settleAmount,
             'remark' => '',
             'remark' => '',
         ];
         ];
         BalanceChangeClass::add($change, true);
         BalanceChangeClass::add($change, true);

+ 6 - 4
biz-hd/order/classes/OrderClass.php

@@ -382,10 +382,12 @@ class OrderClass extends BaseClass
             CustomClass::payToChangeBalance($order);
             CustomClass::payToChangeBalance($order);
         }
         }
 
 
-        //有尾款或全欠款
-        if (isset($order->remainDebtPrice) && $order->remainDebtPrice > 0) {
-            $newCustom = CustomClass::getLockById($customId);
-            CustomClass::cgDebtAmountAdd($newCustom, $order);
+        //有尾款或全部欠款时
+        if($payWay == dict::getDict('payWay', 'debtPay')){
+            if (isset($order->remainDebtPrice) && $order->remainDebtPrice > 0) {
+                $newCustom = CustomClass::getLockById($customId);
+                CustomClass::cgDebtAmountAdd($newCustom, $order);
+            }
         }
         }
 
 
         //全部现金付款余额增加
         //全部现金付款余额增加