Browse Source

Merge branch 'bcknx'

shish 2 years ago
parent
commit
cdcfdcda48
30 changed files with 791 additions and 2 deletions
  1. 28 0
      app-ghs/controllers/CustomBalanceChangeController.php
  2. 47 0
      app-ghs/controllers/CustomController.php
  3. 28 0
      app-ghs/controllers/CustomRechargeController.php
  4. 1 1
      app-ghs/controllers/ExpendController.php
  5. 15 1
      app-ghs/controllers/OrderClearController.php
  6. 27 0
      app-hd/controllers/GhsBalanceChangeController.php
  7. 22 0
      biz-ghs/custom/classes/CustomBalanceChangeClass.php
  8. 220 0
      biz-ghs/custom/classes/CustomClass.php
  9. 22 0
      biz-ghs/custom/classes/CustomRechargeClass.php
  10. 22 0
      biz-ghs/custom/classes/CustomRechargeSnClass.php
  11. 13 0
      biz-ghs/custom/models/CustomBalanceChange.php
  12. 13 0
      biz-ghs/custom/models/CustomRecharge.php
  13. 13 0
      biz-ghs/custom/models/CustomRechargeSn.php
  14. 19 0
      biz-ghs/custom/services/CustomBalanceChangeService.php
  15. 16 0
      biz-ghs/custom/services/CustomRechargeService.php
  16. 17 0
      biz-ghs/custom/services/CustomService.php
  17. 15 0
      biz-ghs/ghs/classes/GhsBalanceChangeClass.php
  18. 15 0
      biz-ghs/ghs/classes/GhsRechargeClass.php
  19. 15 0
      biz-ghs/ghs/classes/GhsRechargeSnClass.php
  20. 15 0
      biz-ghs/ghs/models/GhsBalanceChange.php
  21. 15 0
      biz-ghs/ghs/models/GhsRecharge.php
  22. 15 0
      biz-ghs/ghs/models/GhsRechargeSn.php
  23. 13 0
      biz-ghs/ghs/services/GhsBalanceChangeService.php
  24. 70 0
      biz-ghs/order/classes/OrderClearClass.php
  25. 21 0
      biz-hd/ghs/classes/GhsBalanceChangeClass.php
  26. 13 0
      biz-hd/ghs/models/GhsBalanceChange.php
  27. 14 0
      biz-hd/ghs/services/GhsBalanceChangeService.php
  28. 3 0
      biz/ghs/classes/GhsClass.php
  29. 12 0
      common/components/dict.php
  30. 32 0
      common/components/orderSn.php

+ 28 - 0
app-ghs/controllers/CustomBalanceChangeController.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace ghs\controllers;
+
+use bizGhs\custom\classes\CustomBalanceChangeClass;
+use bizGhs\custom\classes\CustomClass;
+use common\components\util;
+use Yii;
+
+class CustomBalanceChangeController extends BaseController
+{
+
+    public $guestAccess = [];
+
+    //欠款变动明细
+    public function actionList()
+    {
+        $get = Yii::$app->request->get();
+        $customId = $get['customId'] ?? 0;
+        $custom = CustomClass::getById($customId);
+        CustomClass::valid($custom, $this->shopId);
+        $where = [];
+        $where['customId'] = $customId;
+        $list = CustomBalanceChangeClass::getChangeList($where);
+        util::success($list);
+    }
+
+}

+ 47 - 0
app-ghs/controllers/CustomController.php

@@ -24,6 +24,53 @@ use Yii;
 class CustomController extends BaseController
 {
 
+    //供货商给客户充值和结账 ssh 20240309
+    public function actionRecharge()
+    {
+        ini_set('memory_limit', '2045M');
+        set_time_limit(0);
+
+        $staff = $this->shopAdmin;
+        if (isset($staff->finance) == false || $staff->finance == 0) {
+            util::fail('请让财务充值');
+        }
+
+        $get = Yii::$app->request->get();
+        $amount = $get['amount'] ?? 0;
+        $customId = $get['customId'] ?? 0;
+        $payWay = $get['payWay'] ?? -1;
+        if ($payWay < 0) {
+            util::fail('请选择付款方式');
+        }
+        if ($amount <= 0) {
+            util::fail('充值金额需要大于0');
+        }
+        $custom = CustomClass::getLockById($customId);
+        if (empty($custom)) {
+            util::fail('没有找到客户');
+        }
+        if ($custom->ownMainId != $this->mainId) {
+            util::fail('不是你的客户,无法充值');
+        }
+        $customShopId = $custom->shopId ?? 0;
+        $shop = $this->shop;
+        if ($customShopId == $shop->lsShopId) {
+            util::fail('不能给自己充值');
+        }
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            $staff = $this->shopAdmin;
+            CustomService::rechargeClear($custom, $amount, $this->shop, $staff, $payWay);
+            $transaction->commit();
+            util::complete('充值成功');
+        } catch (\Exception $e) {
+            Yii::info("充值失败原因:" . $e->getMessage());
+            $transaction->rollBack();
+            util::fail('充值失败');
+        }
+    }
+
     //生成货位号 ssh 20231215
     public function actionCreateSeatSn()
     {

+ 28 - 0
app-ghs/controllers/CustomRechargeController.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace ghs\controllers;
+
+use bizGhs\custom\classes\CustomClass;
+use bizGhs\custom\classes\CustomRechargeClass;
+use common\components\util;
+use Yii;
+
+class CustomRechargeController extends BaseController
+{
+
+    public $guestAccess = [];
+
+    //充值变动明细
+    public function actionList()
+    {
+        $get = Yii::$app->request->get();
+        $customId = $get['customId'] ?? 0;
+        $custom = CustomClass::getById($customId);
+        CustomClass::valid($custom, $this->shopId);
+        $where = [];
+        $where['customId'] = $customId;
+        $list = CustomRechargeClass::getRechargeList($where);
+        util::success($list);
+    }
+
+}

+ 1 - 1
app-ghs/controllers/ExpendController.php

@@ -46,7 +46,7 @@ class ExpendController extends BaseController
     {
         $staff = $this->shopAdmin;
         if (isset($staff->finance) == false || $staff->finance == 0) {
-            util::fail('没有权限报销');
+            util::fail('请让财务操作');
         }
 
         $get = Yii::$app->request->get();

+ 15 - 1
app-ghs/controllers/OrderClearController.php

@@ -119,7 +119,7 @@ class OrderClearController extends BaseController
             util::fail('没有找到结账单');
         }
         $ghsId = $clear->ghsId ?? 0;
-        $ghs = GhsClass::getById($ghsId, true);
+        $ghs = GhsClass::getLockById($ghsId);
         if ($ghs->shopId != $this->shopId) {
             util::fail('没有权限');
         }
@@ -154,7 +154,21 @@ class OrderClearController extends BaseController
         $connection = Yii::$app->db;
         $transaction = $connection->beginTransaction();
         try {
+
+            $amount = $clear->actPrice ?? 0;
+            $customId = $clear->customId ?? 0;
+            $custom = CustomClass::getLockById($customId);
+            $shop = $this->shop;
+            $staff = $this->shopAdmin;
+            //充值
+            $return = CustomClass::rechargeBalance($custom, $amount, $shop, $staff, $payWay);
+            $custom = $return['custom'];
+            $ghs = $return['ghs'];
+            //结账
             OrderClearClass::confirmClear($clear, $payWay);
+            $clearInfo = OrderClearClass::getLockById($id);
+            //结账消余额
+            CustomClass::clearConsumeBalance($amount, $custom, $ghs, $shop, $staff, $clearInfo);
             $transaction->commit();
             util::complete();
         } catch (\Exception $exception) {

+ 27 - 0
app-hd/controllers/GhsBalanceChangeController.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace hd\controllers;
+
+use bizHd\ghs\classes\GhsBalanceChangeClass;
+use bizHd\ghs\classes\GhsClass;
+use common\components\dict;
+use common\components\util;
+use Yii;
+
+class GhsBalanceChangeController extends BaseController
+{
+
+    //余额变动明细
+    public function actionList()
+    {
+        $get = Yii::$app->request->get();
+        $ghsId = $get['ghsId'] ?? 0;
+        $ghs = GhsClass::getById($ghsId, true);
+        GhsClass::valid($ghs, $this->shopId);
+        $where = [];
+        $where['ghsId'] = $ghsId;
+        $list = GhsBalanceChangeClass::getChangeList($where);
+        util::success($list);
+    }
+
+}

+ 22 - 0
biz-ghs/custom/classes/CustomBalanceChangeClass.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace bizGhs\custom\classes;
+
+use common\components\dict;
+use common\components\imgUtil;
+use common\components\noticeUtil;
+use common\components\util;
+use bizHd\base\classes\BaseClass;
+
+class CustomBalanceChangeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\custom\models\CustomBalanceChange';
+
+    public static function getChangeList($where)
+    {
+        $data = self::getList('*', $where, 'addTime DESC,id DESC');
+        return $data;
+    }
+
+}

+ 220 - 0
biz-ghs/custom/classes/CustomClass.php

@@ -5,13 +5,18 @@ namespace bizGhs\custom\classes;
 use biz\ghs\classes\GhsClass;
 use biz\sj\classes\MerchantClass;
 use bizGhs\custom\models\Custom;
+use bizGhs\ghs\classes\GhsBalanceChangeClass;
 use bizGhs\shop\classes\MainClass;
 use bizGhs\shop\classes\TotalDebtChangeClass;
+use bizGhs\ghs\classes\GhsBalanceClass;
+use bizGhs\ghs\classes\GhsRechargeClass;
+use bizGhs\shop\classes\ShopClass;
 use common\components\business;
 use common\components\dict;
 use common\components\imgUtil;
 use common\components\noticeUtil;
 use common\components\util;
+use common\components\orderSn;
 use bizHd\base\classes\BaseClass;
 
 class CustomClass extends BaseClass
@@ -58,6 +63,221 @@ class CustomClass extends BaseClass
         self::LEVEL_ZS => 'zsAddPrice',
     ];
 
+    //消费余额 ssh 20240311
+    public static function clearConsumeBalance($amount, $custom, $ghs, $shop, $staff, $clear)
+    {
+        $customId = $custom->id ?? 0;
+        $ghsId = $ghs->id ?? 0;
+        $relateId = $clear->id ?? 0;
+        $staffId = $staff->id ?? 0;
+        $staffName = $staff->name ?? '';
+        $clearSn = $clear->orderSn;
+        $mainId = $shop->mainId ?? 0;
+        $shopId = $shop->id ?? 0;
+        $sjId = $shop->sjId ?? 0;
+
+        $newGhsBalance = bcsub($ghs->balance, $amount, 2);
+        $ghs->balance = $newGhsBalance;
+        $ghs->save();
+
+        $newCustomBalance = bcsub($custom->balance, $amount, 2);
+        $custom->balance = $newCustomBalance;
+        $custom->save();
+
+        if ($newGhsBalance < 0) {
+            util::fail('余额有问题哦..');
+        }
+        if (floatval($newGhsBalance) != floatval($newCustomBalance)) {
+            util::fail('余额有问题...');
+        }
+
+        $capitalType = dict::getDict('capitalType', 'ghsHelpCustomUseBalanceClear', 'id');
+        $fromType = dict::getDict('fromType', 'shop');
+        $cbData = [
+            'customId' => $customId,
+            'relateId' => $relateId,
+            'onlinePay' => 1,
+            'ptStyle' => 2,
+            'capitalType' => $capitalType,
+            'amount' => $amount,
+            'balance' => $newCustomBalance,
+            'staffId' => $staffId,
+            'staffName' => $staffName,
+            'io' => 0,
+            'side' => 0,
+            'payWay' => 0,
+            'fromType' => $fromType,
+            'event' => '结账 ' . $clearSn,
+            'mainId' => $mainId,
+            'shopId' => $shopId,
+            'sjId' => $sjId,
+            'remark' => '',
+        ];
+        $cbc = CustomBalanceChangeClass::add($cbData, true);
+
+        $customShopId = $custom->shopId ?? 0;
+        $customShop = ShopClass::getById($customShopId, true);
+        if (empty($customShop)) {
+            util::fail('没有找到客户门店呢..');
+        }
+        $customShopSjId = $customShop->sjId ?? 0;
+        $customShopMainId = $customShop->mainId ?? 0;
+        $capitalType = dict::getDict('capitalType', 'customAskGhsUseBalanceClear', 'id');
+        $gbData = [
+            'ghsId' => $ghsId,
+            'relateId' => $relateId,
+            'ptStyle' => 2,
+            'capitalType' => $capitalType,
+            'amount' => $amount,
+            'balance' => $newGhsBalance,
+            'io' => 0,
+            'side' => 0,
+            'onlinePay' => 1,
+            'payWay' => 0,
+            'fromType' => $fromType,
+            'event' => '结账 ' . $clearSn,
+            'sjId' => $customShopSjId,
+            'mainId' => $customShopMainId,
+            'shopId' => $customShopId,
+            'remark' => '',
+        ];
+        $gbc = GhsBalanceChangeClass::add($gbData, true);
+
+        $clear->customBalanceChangeId = $cbc->id ?? 0;
+        $clear->ghsBalanceChangeId = $gbc->id ?? 0;
+        $clear->save();
+    }
+
+    //充值金额 ssh 20240310
+    public static function rechargeBalance($custom, $amount, $shop, $staff, $payWay)
+    {
+        $ghsId = $custom->ghsId ?? 0;
+        $ghsInfo = GhsClass::getLockById($ghsId);
+        if (empty($ghsInfo)) {
+            util::fail('没有找到供货商');
+        }
+        $ghsShopId = $ghsInfo->shopId ?? 0;
+        $ghsName = $ghsInfo->name ?? '';
+        $customId = $custom->id ?? 0;
+        $customShopId = $custom->shopId ?? 0;
+        $customName = $custom->name ?? '';
+        $customShop = ShopClass::getById($customShopId, true);
+        if (empty($customShop)) {
+            util::fail('没有找到客户门店');
+        }
+        $customShopSjId = $customShop->sjId ?? 0;
+        $customShopMainId = $customShop->mainId ?? 0;
+
+        $payMap = dict::getDict('payWayName');
+        $payName = $payMap[$payWay] ?? '';
+        $rechargeEvent = $payName . '充值';
+
+        $custom->balance = bcadd($custom->balance, $amount, 2);
+        $custom->save();
+        $orderSn = orderSn::getGhsCustomRechargeSn();
+        $shopId = $shop->id ?? 0;
+        $sjId = $shop->sjId ?? 0;
+        $mainId = $shop->mainId ?? 0;
+        $staffId = $staff->id ?? 0;
+        $staffName = $staff->name ?? '';
+        $cData = [
+            'orderSn' => $orderSn,
+            'onlinePay' => 1,
+            'payWay' => $payWay,
+            'shopId' => $shopId,
+            'mainId' => $mainId,
+            'amount' => $amount,
+            'balance' => $custom->balance,
+            'side' => 0,
+            'staffId' => $staffId,
+            'staffName' => $staffName,
+            'payStatus' => 1,
+            'status' => 1,
+            'remark' => '',
+            'ghsId' => $ghsId,
+            'ghsShopId' => $ghsShopId,
+            'ghsName' => $ghsName,
+            'customId' => $customId,
+            'customShopId' => $customShopId,
+            'customName' => $customName,
+        ];
+        $cRecharge = CustomRechargeClass::add($cData, true);
+        $cRechargeId = $cRecharge->id ?? 0;
+
+        $capitalType = dict::getDict('capitalType', 'ghsHelpCustomRecharge', 'id');
+        $fromType = dict::getDict('fromType', 'shop');
+        $cbData = [
+            'customId' => $customId,
+            'relateId' => $cRechargeId,
+            'onlinePay' => 1,
+            'ptStyle' => 2,
+            'capitalType' => $capitalType,
+            'amount' => $amount,
+            'balance' => $custom->balance,
+            'staffId' => $staffId,
+            'staffName' => $staffName,
+            'io' => 1,
+            'side' => 0,
+            'payWay' => $payWay,
+            'fromType' => $fromType,
+            'event' => $rechargeEvent,
+            'mainId' => $mainId,
+            'shopId' => $shopId,
+            'sjId' => $sjId,
+            'remark' => '',
+        ];
+        CustomBalanceChangeClass::add($cbData, true);
+
+        $ghsInfo->balance = bcadd($ghsInfo->balance, $amount, 2);
+        $ghsInfo->save();
+        $orderSn = orderSn::getGhsRechargeSn();
+        $customMainId = $custom->mainId ?? 0;
+        $gData = [
+            'orderSn' => $orderSn,
+            'onlinePay' => 1,
+            'payWay' => $payWay,
+            'shopId' => $customShopId,
+            'mainId' => $customMainId,
+            'amount' => $amount,
+            'balance' => $ghsInfo->balance,
+            'side' => 0,
+            'staffId' => 0,
+            'staffName' => '',
+            'payStatus' => 1,
+            'status' => 1,
+            'remark' => '',
+            'ghsId' => $ghsId,
+            'ghsShopId' => $ghsShopId,
+            'ghsName' => $ghsName,
+            'customId' => $customId,
+            'customShopId' => $customShopId,
+            'customName' => $customName,
+        ];
+        $gRecharge = GhsRechargeClass::add($gData, true);
+        $gRechargeId = $gRecharge->id ?? 0;
+        $capitalType = dict::getDict('capitalType', 'customAskGhsRecharge', 'id');
+        $gbData = [
+            'ghsId' => $ghsId,
+            'relateId' => $gRechargeId,
+            'ptStyle' => 2,
+            'capitalType' => $capitalType,
+            'amount' => $amount,
+            'balance' => $ghsInfo->balance,
+            'io' => 1,
+            'side' => 0,
+            'onlinePay' => 1,
+            'payWay' => $payWay,
+            'fromType' => $fromType,
+            'event' => $rechargeEvent,
+            'sjId' => $customShopSjId,
+            'mainId' => $customShopMainId,
+            'shopId' => $customShopId,
+            'remark' => '',
+        ];
+        GhsBalanceChangeClass::add($gbData, true);
+        return ['custom' => $custom, 'ghs' => $ghsInfo];
+    }
+
     public static function createSeatSn($mainId)
     {
         $max = Custom::find(['mainId' => $mainId])->max('seatSn');

+ 22 - 0
biz-ghs/custom/classes/CustomRechargeClass.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace bizGhs\custom\classes;
+
+use common\components\dict;
+use common\components\imgUtil;
+use common\components\noticeUtil;
+use common\components\util;
+use bizHd\base\classes\BaseClass;
+
+class CustomRechargeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\custom\models\CustomRecharge';
+
+    public static function getRechargeList($where)
+    {
+        $data = self::getList('*', $where, 'addTime DESC,id DESC');
+        return $data;
+    }
+
+}

+ 22 - 0
biz-ghs/custom/classes/CustomRechargeSnClass.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace bizGhs\custom\classes;
+
+use biz\ghs\classes\GhsClass;
+use biz\sj\classes\MerchantClass;
+use bizGhs\custom\models\Custom;
+use bizGhs\shop\classes\MainClass;
+use bizGhs\shop\classes\TotalDebtChangeClass;
+use common\components\business;
+use common\components\dict;
+use common\components\imgUtil;
+use common\components\noticeUtil;
+use common\components\util;
+use bizHd\base\classes\BaseClass;
+
+class CustomRechargeSnClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\custom\models\CustomRechargeSn';
+
+}

+ 13 - 0
biz-ghs/custom/models/CustomBalanceChange.php

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

+ 13 - 0
biz-ghs/custom/models/CustomRecharge.php

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

+ 13 - 0
biz-ghs/custom/models/CustomRechargeSn.php

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

+ 19 - 0
biz-ghs/custom/services/CustomBalanceChangeService.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace bizGhs\custom\services;
+
+use biz\ghs\classes\GhsClass;
+use biz\sj\classes\SjClass;
+use bizGhs\custom\classes\CustomRechargeClass;
+use bizGhs\ghs\classes\GhsRechargeClass;
+use bizHd\base\services\BaseService;
+use bizGhs\custom\classes\CustomClass;
+use common\components\orderSn;
+use common\components\util;
+
+class CustomBalanceChangeService extends BaseService
+{
+
+    public static $baseFile = '\bizGhs\custom\classes\CustomBalanceChangeClass';
+
+}

+ 16 - 0
biz-ghs/custom/services/CustomRechargeService.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace bizGhs\custom\services;
+
+use biz\ghs\classes\GhsClass;
+use biz\sj\classes\SjClass;
+use bizHd\base\services\BaseService;
+use bizGhs\custom\classes\CustomClass;
+use common\components\util;
+
+class CustomRechargeService extends BaseService
+{
+
+    public static $baseFile = '\bizGhs\custom\classes\CustomRechargeClass';
+
+}

+ 17 - 0
biz-ghs/custom/services/CustomService.php

@@ -4,14 +4,31 @@ namespace bizGhs\custom\services;
 
 use biz\ghs\classes\GhsClass;
 use biz\sj\classes\SjClass;
+use bizGhs\order\classes\OrderClearClass;
 use bizHd\base\services\BaseService;
 use bizGhs\custom\classes\CustomClass;
+use common\components\util;
 
 class CustomService extends BaseService
 {
 
     public static $baseFile = '\bizGhs\custom\classes\CustomClass';
 
+    //充值和结账 ssh 20240309
+    public static function rechargeClear($custom, $amount, $shop, $staff, $payWay)
+    {
+        $respond = CustomClass::rechargeBalance($custom, $amount, $shop, $staff, $payWay);
+        $custom = $respond['custom'] ?? [];
+        $ghs = $respond['ghs'] ?? [];
+        if (empty($custom)) {
+            util::fail('没有客户信息');
+        }
+        if (empty($ghs)) {
+            util::fail('没有供货商信息');
+        }
+        OrderClearClass::useBalanceClear($custom, $ghs, $shop, $staff);
+    }
+
     //分享建立客户和供货商关系 ssh 2021.2.28
     public static function shareBuildTrade($applyData, $newShop)
     {

+ 15 - 0
biz-ghs/ghs/classes/GhsBalanceChangeClass.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\ghs\classes;
+
+use bizGhs\base\classes\BaseClass;
+use bizGhs\order\classes\PurchaseOrderClass;
+use bizGhs\shop\classes\ShopClass;
+use common\components\imgUtil;
+
+class GhsBalanceChangeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\ghs\models\GhsBalanceChange';
+
+}

+ 15 - 0
biz-ghs/ghs/classes/GhsRechargeClass.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\ghs\classes;
+
+use bizGhs\base\classes\BaseClass;
+use bizGhs\order\classes\PurchaseOrderClass;
+use bizGhs\shop\classes\ShopClass;
+use common\components\imgUtil;
+
+class GhsRechargeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\ghs\models\GhsRecharge';
+
+}

+ 15 - 0
biz-ghs/ghs/classes/GhsRechargeSnClass.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\ghs\classes;
+
+use bizGhs\base\classes\BaseClass;
+use bizGhs\order\classes\PurchaseOrderClass;
+use bizGhs\shop\classes\ShopClass;
+use common\components\imgUtil;
+
+class GhsRechargeSnClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\ghs\models\GhsRechargeSn';
+
+}

+ 15 - 0
biz-ghs/ghs/models/GhsBalanceChange.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\ghs\models;
+
+use bizGhs\base\models\Base;
+
+class GhsBalanceChange extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhGhsBalanceChange';
+    }
+
+}

+ 15 - 0
biz-ghs/ghs/models/GhsRecharge.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\ghs\models;
+
+use bizGhs\base\models\Base;
+
+class GhsRecharge extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhGhsRecharge';
+    }
+
+}

+ 15 - 0
biz-ghs/ghs/models/GhsRechargeSn.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\ghs\models;
+
+use bizGhs\base\models\Base;
+
+class GhsRechargeSn extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhGhsRechargeSn';
+    }
+
+}

+ 13 - 0
biz-ghs/ghs/services/GhsBalanceChangeService.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizGhs\ghs\services;
+
+use bizGhs\base\services\BaseService;
+use Yii;
+
+class GhsBalanceChangeService extends BaseService
+{
+
+    public static $baseFile = '\bizGhs\ghs\classes\GhsBalanceChangeClass';
+
+}

+ 70 - 0
biz-ghs/order/classes/OrderClearClass.php

@@ -20,6 +20,75 @@ class OrderClearClass extends BaseClass
 
     public static $baseFile = '\bizGhs\order\models\OrderClear';
 
+    //使用余额自助结欠款 ssh 20240310
+    public static function useBalanceClear($custom, $ghs, $shop, $staff)
+    {
+        $staffId = $staff->id ?? 0;
+        $staffName = $staff->name ?? '';
+        $shopId = $shop->id ?? 0;
+        $sjId = $shop->sjId ?? 0;
+        $customId = $custom->id ?? 0;
+        $ghsId = $ghs->id ?? 0;
+        $customBalance = $custom->balance ?? 0;
+        $ghsBalance = $ghs->balance ?? 0;
+        if (floatval($customBalance) != floatval($ghsBalance)) {
+            noticeUtil::push("客户{$customId} {$customBalance} 供货商{$ghsId} {$ghsBalance} 的余额有问题", '15280215347');
+            util::fail('系统故障');
+        }
+        if ($customBalance < 0) {
+            noticeUtil::push("客户{$customId} 供货商{$ghsId} 的余额小于0", '15280215347');
+            util::fail('系统故障哦');
+        }
+        if (floatval($customBalance) == 0) {
+            return true;
+        }
+        $where = ['customId' => $customId, 'debt' => 1];
+        $orderList = OrderClass::getAllByCondition($where, 'id asc', '*', null, true);
+        if (empty($orderList)) {
+            return true;
+        }
+        $totalAmount = 0;
+        $totalMoney = 0;
+        $need = [];
+        foreach ($orderList as $order) {
+            $orderId = $order->id ?? 0;
+            $remainDebtPrice = $order->remainDebtPrice ?? 0;
+            $totalMoney = bcadd($totalMoney, $remainDebtPrice, 2);
+            if ($totalMoney > $customBalance) {
+                break;
+            }
+            $totalAmount = bcadd($totalAmount, $remainDebtPrice, 2);
+            $need[] = ['id' => $orderId];
+        }
+        if (empty($need)) {
+            return true;
+        }
+
+        $where = ['customId' => $customId, 'status' => PurchaseClearClass::STATUS_AWAIT_PAY];
+        $list = OrderClearClass::getAllByCondition($where, null, '*', null, true);
+        if (!empty($list)) {
+            foreach ($list as $item) {
+                //只要新建账单,老账单就取消掉
+                $item->status = PurchaseClearClass::STATUS_EXPIRE;
+                $item->save();
+            }
+        }
+
+        $idText = json_encode($need);
+        $clearData = [
+            'customId' => $customId,
+            'ghsShopAdminId' => $staffId,
+            'ghsShopId' => $shopId,
+            'ghsShopAdminName' => $staffName,
+            'modifyPrice' => $totalAmount,
+            'payWay' => 0,
+            'complete' => 1,
+        ];
+        $clearInfo = self::clear($clearData, $idText, $sjId, $shopId);
+        //结账消费余额
+        CustomClass::clearConsumeBalance($totalAmount, $custom, $ghs, $shop, $staff, $clearInfo);
+    }
+
     //订单结算 ssh 2021.3.14
     public static function clear($post, $idText, $sjId, $shopId)
     {
@@ -138,6 +207,7 @@ class OrderClearClass extends BaseClass
             $clearData['discountType'] = dict::getDict('discountType', 'discount');
         }
         if ($modifyPrice > $amount) {
+            noticeUtil::push("结账金额大于总欠款金额 {$modifyPrice} {$amount}", '15280215347');
             util::fail('结账金额大于总欠款金额');
         }
         $return = PurchaseClearClass::add($clearData, true);

+ 21 - 0
biz-hd/ghs/classes/GhsBalanceChangeClass.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace bizHd\ghs\classes;
+
+use common\components\stringUtil;
+use common\components\util;
+use Yii;
+use bizHd\base\classes\BaseClass;
+
+class GhsBalanceChangeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\ghs\models\GhsBalanceChange';
+
+    public static function getChangeList($where)
+    {
+        $data = self::getList('*', $where, 'addTime DESC,id DESC');
+        return $data;
+    }
+
+}

+ 13 - 0
biz-hd/ghs/models/GhsBalanceChange.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizHd\ghs\models;
+use bizHd\base\models\Base;
+
+class GhsBalanceChange extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhGhsBalanceChange';
+    }
+
+}

+ 14 - 0
biz-hd/ghs/services/GhsBalanceChangeService.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace bizHd\ghs\services;
+
+use bizHd\base\services\BaseService;
+use common\components\util;
+use Yii;
+
+class GhsBalanceChangeService extends BaseService
+{
+
+    public static $baseFile = '\bizHd\ghs\classes\GhsBalanceChangeClass';
+
+}

+ 3 - 0
biz/ghs/classes/GhsClass.php

@@ -240,6 +240,9 @@ class GhsClass extends BaseClass
             $count = PurchaseClass::getCount(['ghsId' => $val['id'], 'debt' => PurchaseClass::DEBT_YES]);
             $list[$key]['debtNum'] = $count;
 
+            $telephone = $currentShop['telephone'] ?? '';
+            $list[$key]['telephone'] = $telephone;
+
             $pfLevel = $currentShop['pfLevel'] ?? 0;
             $list[$key]['pfLevel'] = $pfLevel;
 

+ 12 - 0
common/components/dict.php

@@ -339,6 +339,14 @@ class dict
             'ljhApply' => ['id' => 60, 'name' => 'ljhApply'],
             //供货商结账支出
             'ghsClearExpend' => ['id' => 61, 'name' => 'ghsClearExpend'],
+            //供货商帮客户充值
+            'ghsHelpCustomRecharge' => ['id' => 62, 'name' => 'ghsHelpCustomRecharge'],
+            //客户让供货商帮忙充值
+            'customAskGhsRecharge' => ['id' => 63, 'name' => 'customAskGhsRecharge'],
+            //供货商帮客户用余额结账
+            'ghsHelpCustomUseBalanceClear' => ['id' => 64, 'name' => 'ghsHelpCustomUseBalanceClear'],
+            //客户请供货商帮忙用余额结账
+            'customAskGhsUseBalanceClear' => ['id' => 65, 'name' => 'customAskGhsUseBalanceClear'],
         ],
         "capitalTypeList" => [//流水类型的对应链接,后台收支明细查看时跳转的链接
             0 => ['link' => '/capital/order-detail', 'name' => '网店', 'orderLink' => '/order/detail', 'id' => 0,],
@@ -373,6 +381,10 @@ class dict
             59 => ['link' => '', 'name' => '退货退款', 'id' => 59,],
             60 => ['link' => '', 'name' => '零交会报名', 'id' => 60,],
             61 => ['link' => '', 'name' => '结账支出', 'id' => 61,],
+            62 => ['link' => '', 'name' => '充值', 'id' => 62,],
+            63 => ['link' => '', 'name' => '充值', 'id' => 63,],
+            64 => ['link' => '', 'name' => '结账', 'id' => 64,],
+            65 => ['link' => '', 'name' => '结账', 'id' => 65,],
         ],
 
         //用户来源

+ 32 - 0
common/components/orderSn.php

@@ -4,6 +4,8 @@ namespace common\components;
 
 use biz\shop\classes\ShopClass;
 use biz\sj\classes\CashSnClass;
+use bizGhs\custom\classes\CustomRechargeSnClass;
+use bizGhs\ghs\classes\GhsRechargeSnClass;
 use bizGhs\order\classes\GiveSnClass;
 use bizGhs\order\classes\OrderClass;
 use bizHd\cg\classes\AcceptSnClass;
@@ -31,6 +33,36 @@ use yii\imagine\Image;
 class orderSn
 {
 
+    //客户叫供货商帮忙充值订单号 ssh 20240309
+    public static function getGhsRechargeSn()
+    {
+        $prefix = 'GRS_CS';
+        if (getenv('YII_ENV', 'local') == 'production') {
+            $prefix = 'GRS';
+        }
+        $respond = GhsRechargeSnClass::add(['id' => null]);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('单号没有生成');
+        }
+        return $prefix . $id;
+    }
+
+    //供货商的客户充值订单号 ssh 20240309
+    public static function getGhsCustomRechargeSn()
+    {
+        $prefix = 'CRS_CS';
+        if (getenv('YII_ENV', 'local') == 'production') {
+            $prefix = 'CRS';
+        }
+        $respond = CustomRechargeSnClass::add(['id' => null]);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('单号没有生成');
+        }
+        return $prefix . $id;
+    }
+
     public static function getAcceptSn()
     {
         $prefix = 'ACC_CS';