shish před 1 rokem
rodič
revize
5e01b1b963

+ 2 - 0
app-hd/controllers/SettleController.php

@@ -81,6 +81,7 @@ class SettleController extends BaseController
             $settle = SettleClass::addSettle($orderList, $shop, $custom, $hd, $settleParams);
             $settleId = $settle->id;
             $settleAmount = $settle->actPrice;
+            $settleNo = $settle->orderSn ?? '';
 
             $addData = [
                 'orderSn' => $orderSn,
@@ -100,6 +101,7 @@ class SettleController extends BaseController
                 'status' => 0,
                 'settleId' => $settleId,
                 'settleAmount' => $settleAmount,
+                'settleNo' => $settleNo,
                 'remark' => '',
                 'customId' => $customId,
                 'customName' => $customName,

+ 2 - 0
app-mall/controllers/SettleController.php

@@ -86,6 +86,7 @@ class SettleController extends BaseController
         $settle = SettleClass::addSettle($orderList, $shop, $custom, $hd, $staff, $settleParams);
         $settleId = $settle->id;
         $settleAmount = $settle->actPrice;
+        $settleNo = $settle->orderSn ?? '';
 
         $createData = [
             'customId' => $customId,
@@ -108,6 +109,7 @@ class SettleController extends BaseController
             'status' => 0,
             'settleId' => $settleId,
             'settleAmount' => $settleAmount,
+            'settleNo' => $settleNo,
             'remark' => '',
         ];
         $respond = RechargeClass::addRecharge($createData);

+ 10 - 0
biz-hd/balance/classes/BalanceChangeClass.php

@@ -13,6 +13,16 @@ class BalanceChangeClass extends BaseClass
     public static function getChangeList($where)
     {
         $data = self::getList('*', $where, 'addTime DESC,id DESC');
+        if (!empty($data)) {
+            foreach ($data as $k => $v) {
+                $settleAmount = $v['settleAmount'] ?? 0;
+                $orderAmount = $v['orderAmount'] ?? 0;
+                $sum = bcadd($settleAmount, $orderAmount, 2);
+                $amount = $v['amount'] ?? 0;
+                $becomeBalance = bcsub($amount, $sum, 2);
+                $data[$k]['becomeBalance'] = $becomeBalance;
+            }
+        }
         return $data;
     }
 

+ 12 - 9
biz-hd/recharge/classes/RechargeClass.php

@@ -157,6 +157,7 @@ class RechargeClass extends BaseClass
         $settleId = $recharge->settleId;
         $settleAmount = 0;
         $lastClearOrderId = 0;
+        $lastClearOrderSn = '';
         $realClearAmount = 0;
         $lastClearOrderAmount = 0;
         if (!empty($settleId)) {
@@ -170,29 +171,30 @@ class RechargeClass extends BaseClass
             $orderList = OrderClass::getAllByCondition(['customId' => $customId, 'debt' => 1], 'id asc', '*', null, true);
             if (!empty($orderList)) {
                 $totalRemainAmount = 0;
-                $need = [];
-                $hasPass = false;
+                $needClearIds = [];
+                $hasOver = false;
                 foreach ($orderList as $order) {
                     $orderId = $order->id ?? 0;
                     $remainDebtPrice = $order->remainDebtPrice ?? 0;
                     $currentTotal = bcadd($totalRemainAmount, $remainDebtPrice, 2);
                     if ($currentTotal > $totalAmount) {
-                        continue;
-                    } else {
-                        if (!$hasPass) {
+                        //如果剩下的钱不够销结账单,可以拿来销订单,具体请查看原型文档来理解
+                        if (!$hasOver) {
                             $lastClearOrderAmount = bcsub($totalAmount, $totalRemainAmount, 2);
                             if ($lastClearOrderAmount > 0) {
                                 $lastClearOrderId = $orderId;
+                                $lastClearOrderSn = $order->orderSn ?? '';
                             }
                         }
-                        $hasPass = true;
+                        $hasOver = true;
+                        continue;
                     }
                     $totalRemainAmount = bcadd($totalRemainAmount, $remainDebtPrice, 2);
-                    $need[] = $orderId;
+                    $needClearIds[] = $orderId;
                 }
-                if (!empty($need)) {
+                if (!empty($needClearIds)) {
                     //创建结账单,并且销结账单
-                    $orderData = OrderClass::getAllByCondition(['id' => ['in', $need]], null, '*', null, true);
+                    $orderData = OrderClass::getAllByCondition(['id' => ['in', $needClearIds]], null, '*', null, true);
                     $staffId = $recharge->staffId ?? 0;
                     $staffName = $recharge->staffName ?? '';
                     $settleParams = ['staffId' => $staffId, 'staffName' => $staffName];
@@ -230,6 +232,7 @@ class RechargeClass extends BaseClass
             'settleId' => $settleId,
             'settleAmount' => $settleAmount,
             'orderId' => $lastClearOrderId,
+            'orderSn' => $lastClearOrderSn,
             'orderAmount' => $lastClearOrderAmount,
             'remark' => '',
         ];