shish il y a 3 ans
Parent
commit
57ee26425b

+ 100 - 0
biz-hd/custom/classes/CustomClass.php

@@ -2,8 +2,12 @@
 
 namespace bizHd\custom\classes;
 
+use bizGhs\shop\classes\TotalDebtChangeClass;
+use bizHd\shop\classes\MainClass;
 use bizMall\user\classes\UserClass;
+use common\components\dict;
 use common\components\imgUtil;
+use common\components\noticeUtil;
 use common\components\stringUtil;
 use common\components\util;
 use Yii;
@@ -14,6 +18,102 @@ class CustomClass extends BaseClass
 
     public static $baseFile = '\bizHd\custom\models\Custom';
 
+    //客户采购欠款金额增加 ssh 20220908
+    public static function cgDebtAmountAdd($custom, $order)
+    {
+        $amount = $order->remainDebtPrice ?? 0;
+        $custom->isDebt = 1;
+        $lastDebt = bcadd($custom->debtAmount, $amount, 2);
+        $custom->debtAmount = $lastDebt;
+        $custom->save();
+
+        $relateId = $order->id ?? 0;
+        $customId = $custom->id ?? 0;
+        $orderSn = $order->orderSn ?? '';
+        $capitalType = dict::getDict('capitalType', 'xhOrder', 'id');
+        $event = '购买花材,单号:' . $orderSn;
+
+        $change = [
+            'relateId' => $relateId,
+            'customId' => $customId,
+            'ptStyle' => dict::getDict('ptStyle', 'hd'),
+            'capitalType' => $capitalType,
+            'amount' => $amount,
+            'balance' => $lastDebt,
+            'io' => 1,
+            'payWay' => $order->payWay,
+            'event' => $event,
+            'sjId' => $order->sjId,
+            'shopId' => $order->id,
+            'mainId' => $order->mainId,
+        ];
+        CustomDebtRecordClass::addChange($change);
+
+        $mainId = $order->mainId ?? 0;
+        $main = MainClass::getLockById($mainId);
+        if (empty($main)) {
+            util::fail('没有main信息');
+        }
+        $debt = $main->debt ?? 0;
+        $remain = bcadd($debt, $amount, 2);
+        $main->debt = $remain;
+        $main->save();
+
+        $event = $custom->name . ' 购买花材,单号:' . $orderSn;
+        $change['balance'] = $remain;
+        $change['event'] = $event;
+        TotalDebtChangeClass::addChange($change);
+    }
+
+    //客户结账欠款金额减少 ssh 20220908
+    public static function clearDebtAmountReduce($custom, $amount, $clear)
+    {
+        $debtAmount = $custom->debtAmount ?? 0.00;
+        $remain = bcsub($debtAmount, $amount, 2);
+        if ($remain < 0) {
+            noticeUtil::push("零售客户欠款总金额:{$custom->debtAmount} 本次结账金额:{$amount} 客户ID:{$custom->id}", '15280215347');
+            util::fail('收款失败,结账后欠款金额会出现负数');
+        }
+        $custom->isDebt = $remain <= 0 ? 0 : 1;
+        $custom->debtAmount = $remain;
+        $custom->save();
+        $relateId = $clear->id ?? 0;
+        $customId = $custom->id ?? 0;
+        $capitalType = dict::getDict('capitalType', 'hdXsClear', 'id');
+        $orderSn = $clear->orderSn ?? '';
+
+        $change = [
+            'relateId' => $relateId,
+            'customId' => $customId,
+            'ptStyle' => dict::getDict('ptStyle', 'ghs'),
+            'capitalType' => $capitalType,
+            'amount' => $amount,
+            'balance' => $remain,
+            'io' => 0,
+            'payWay' => 0,
+            'event' => "结账,单号:{$orderSn}",
+            'sjId' => $clear->sjId,
+            'shopId' => $clear->id,
+            'mainId' => $clear->mainId,
+        ];
+        CustomDebtRecordClass::addChange($change);
+
+        $mainId = $clear->mainId ?? 0;
+        $main = MainClass::getLockById($mainId);
+        if (empty($main)) {
+            util::fail('没有main信息');
+        }
+        $debt = $main->debt ?? 0;
+        $remain = bcsub($debt, $amount, 2);
+        $main->debt = $remain;
+        $main->save();
+
+        $event = $custom->name . " 结账,单号:{$orderSn}";
+        $change['balance'] = $remain;
+        $change['event'] = $event;
+        TotalDebtChangeClass::addChange($change);
+    }
+
     public static function getCustomCacheKey($sjId, $shopId, $userId)
     {
         return 'hd_custom_key_' . $sjId . '_' . $shopId . '_' . $userId;

+ 23 - 0
biz-hd/custom/classes/CustomDebtRecordClass.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace bizHd\custom\classes;
+
+use bizMall\user\classes\UserClass;
+use common\components\imgUtil;
+use common\components\stringUtil;
+use common\components\util;
+use Yii;
+use bizHd\base\classes\BaseClass;
+
+class CustomDebtRecordClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\custom\models\CustomDebtRecord';
+
+    //增加变动 ssh 20220908
+    public static function addChange($change)
+    {
+        return self::add($change, true);
+    }
+
+}

+ 15 - 0
biz-hd/custom/models/CustomDebtRecord.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\custom\models;
+
+use bizHd\base\models\Base;
+
+class CustomDebtRecord extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhCustomDebtRecord';
+    }
+
+}

+ 14 - 0
biz-hd/custom/services/CustomDebtRecordService.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace bizHd\custom\services;
+
+use bizHd\base\services\BaseService;
+use bizHd\custom\classes\CustomClass;
+use Yii;
+
+class CustomDebtRecordService extends BaseService
+{
+
+    public static $baseFile = '\bizHd\custom\classes\CustomDebtRecordClass';
+
+}

+ 2 - 0
biz-hd/order/classes/SettleClass.php

@@ -15,6 +15,7 @@ class SettleClass extends BaseClass
     //结清尾款 ssh 20220708
     public static function confirmSettle($order, $payWay, $staff)
     {
+        $mainId = $order->mainId ?? 0;
         $orderId = $order->id ?? 0;
         $settleId = $order->settleId ?? 0;
         if (!empty($settleId)) {
@@ -36,6 +37,7 @@ class SettleClass extends BaseClass
             'payWay' => $payWay,
             'hdShopId' => $shopId,
             'shopId' => $shopId,
+            'mainId' => $mainId,
             'purchaseIds' => $orderId,
             'saleIds' => $orderId,
             'num' => 1,

+ 6 - 0
biz-hd/order/services/OrderService.php

@@ -299,6 +299,12 @@ class OrderService extends BaseService
         //保存订单
         $returnOrder = OrderClass::addOrder($data);
 
+        if (isset($data['dj']) && $data['dj'] > 0) {
+            //有订金客户的欠款增加
+            $newCustom = CustomClass::getLockById($customId);
+            CustomClass::cgDebtAmountAdd($newCustom, $returnOrder);
+        }
+
         //欠款和已付款的直接完成,另外客服下的单要走配送流程,所以是待配送状态
         if (in_array($hasPay, [dict::getDict('hasPay', 'payed'), dict::getDict('hasPay', 'debt')])) {
             OrderClass::payAfter($returnOrder, $payWay);

+ 3 - 0
common/components/dict.php

@@ -240,6 +240,8 @@ class dict
             'outMoney' => ['id' => 56, 'name' => 'outMoney'],
             //支出登记
             'expendRegister' => ['id' => 57, 'name' => 'expendRegister'],
+            //花店销售结账单
+            'hdXsClear' => ['id' => 58, 'name' => 'hdXsClear'],
         ],
         "capitalTypeList" => [//流水类型的对应链接,后台收支明细查看时跳转的链接
             0 => ['link' => '/capital/order-detail', 'name' => '网店', 'orderLink' => '/order/detail', 'id' => 0,],
@@ -270,6 +272,7 @@ class dict
             55 => ['link' => '', 'name' => '存入现金', 'id' => 55,],
             56 => ['link' => '', 'name' => '取出现金', 'id' => 56,],
             57 => ['link' => '', 'name' => '支出登记', 'id' => 57,],
+            58 => ['link' => '', 'name' => '结算', 'id' => 58,],
         ],
 
         //用户来源