|
|
@@ -10,7 +10,6 @@ use bizGhs\book\classes\BookItemCustomClass;
|
|
|
use bizGhs\custom\classes\AccountMoneyClass;
|
|
|
use bizGhs\custom\models\Custom;
|
|
|
use bizGhs\ghs\classes\GhsBalanceChangeClass;
|
|
|
-use bizGhs\order\classes\OrderClass;
|
|
|
use bizGhs\shop\classes\MainClass;
|
|
|
use bizGhs\shop\classes\ShopMoneyClass;
|
|
|
use bizGhs\shop\classes\TotalDebtChangeClass;
|
|
|
@@ -75,29 +74,6 @@ class CustomClass extends BaseClass
|
|
|
self::LEVEL_ZS => 'zsAddPrice',
|
|
|
];
|
|
|
|
|
|
- public static function checkBalance($custom)
|
|
|
- {
|
|
|
- $ghsId = $custom->ghsId ?? 0;
|
|
|
- $customId = $custom->id ?? 0;
|
|
|
- $ghs = GhsClass::getLockById($ghsId);
|
|
|
- $ghsName = $ghs->name ?? '';
|
|
|
- $customName = $custom->name ?? '';
|
|
|
- if (empty($ghs)) {
|
|
|
- util::fail('没有供货商信息');
|
|
|
- }
|
|
|
- if ($custom->balance != $ghs->balance) {
|
|
|
- noticeUtil::push("余额有问题哦,{$ghsName} {$customName}", '15280215347');
|
|
|
- util::fail('余额有问题哦');
|
|
|
- }
|
|
|
- if ($custom->balance < 0) {
|
|
|
- $remainDebt = OrderClass::sum(['customId' => $customId, 'debt' => 1], 'remainDebtPrice');
|
|
|
- if (abs($custom->balance) != $remainDebt) {
|
|
|
- noticeUtil::push("余额有问题呢,{$ghsName} {$customName}", '15280215347');
|
|
|
- util::fail('余额有问题呢');
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
public static function pullOtherShopCustom($data)
|
|
|
{
|
|
|
$connection = Yii::$app->db;
|
|
|
@@ -1275,94 +1251,6 @@ class CustomClass extends BaseClass
|
|
|
TotalDebtChangeClass::addChange($change);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 冲销单:选择“返充到余额”时,把冲销金额加回客户 balance,只记余额变动流水。
|
|
|
- * 与 refundDebtAmountReduce 的区别:这里是独立的冲销单创建流程调用,不依赖 RefundOrder 模型,
|
|
|
- * 也不联动 main.debt / TotalDebtChangeClass 这类主体级挂账汇总缓存,降低对现有售后/结账体系的影响面。
|
|
|
- * ssh 冲销单功能
|
|
|
- * @param $custom object 客户模型(调用方应已 getLockById 加锁)
|
|
|
- * @param $forwardOrder object 冲销单(xhGhsOrder)模型
|
|
|
- * @param string|float $returnAmount 本次返充金额(正数)
|
|
|
- * @return string 返充后的客户最新余额
|
|
|
- */
|
|
|
- /**
|
|
|
- * 冲销单返充客户余额:双边镜像记账。
|
|
|
- * xhGhsCustom(供货商侧的客户档案)与 xhGhs(花店侧对应该供货商的档案,通过 custom.ghsId 关联)
|
|
|
- * 是同一笔往来账的两份存档,净 balance 必须同步增加,且各自记一条余额变动流水。
|
|
|
- * 做法与 CustomClass::rechargeBalance() 中 rechargeType=1(售后返充)保持一致,
|
|
|
- * 区别在于冲销单场景不生成 xhGhsRecharge/xhGhsCustomRecharge 充值单据,只做余额与流水。
|
|
|
- */
|
|
|
- public static function forwardReturnBalance($custom, $forwardOrder, $returnAmount)
|
|
|
- {
|
|
|
- AccountMoneyClass::ensureCustomMoneyReady($custom, true);
|
|
|
- if (bccomp($returnAmount, '0', 2) <= 0) {
|
|
|
- return $custom->balance ?? '0.00';
|
|
|
- }
|
|
|
-
|
|
|
- // 通过 custom.ghsId 反查花店侧的供货商档案(xhGhs),并加锁,保证与 custom 一起原子更新
|
|
|
- $ghsId = $custom->ghsId ?? 0;
|
|
|
- $ghs = GhsClass::getLockById($ghsId);
|
|
|
- if (empty($ghs)) {
|
|
|
- util::fail('没有找到供货商信息,无法返充余额');
|
|
|
- }
|
|
|
- AccountMoneyClass::ensureGhsMoneyReady($ghs, true);
|
|
|
-
|
|
|
- $newBalance = bcadd($custom->balance ?? '0.00', $returnAmount, 2);
|
|
|
- $custom->balance = $newBalance;
|
|
|
- $custom->isDebt = bccomp($newBalance, '0', 2) < 0 ? CustomClass::IS_DEBT_YES : CustomClass::IS_DEBT_NO;
|
|
|
- $custom->save(false, ['balance', 'isDebt']);
|
|
|
-
|
|
|
- $forwardOrderSn = $forwardOrder->orderSn ?? '';
|
|
|
- $event = "冲销单号:{$forwardOrderSn} 售后返充";
|
|
|
- $change = [
|
|
|
- 'relateId' => $forwardOrder->id ?? 0,
|
|
|
- 'customId' => $custom->id ?? 0,
|
|
|
- 'customName' => $custom->name ?? '',
|
|
|
- 'ptStyle' => dict::getDict('ptStyle', 'ghs'),
|
|
|
- 'capitalType' => dict::getDict('capitalType', 'ghsHelpCustomRechargeReturn', 'id'),
|
|
|
- 'amount' => $returnAmount,
|
|
|
- 'balance' => $newBalance,
|
|
|
- 'io' => 1,
|
|
|
- 'payWay' => 0,
|
|
|
- 'event' => $event,
|
|
|
- 'sjId' => $forwardOrder->sjId ?? 0,
|
|
|
- 'shopId' => $forwardOrder->shopId ?? 0,
|
|
|
- 'mainId' => $forwardOrder->mainId ?? 0,
|
|
|
- 'payTime' => $forwardOrder->payTime ?? date('Y-m-d H:i:s'),
|
|
|
- 'staffId' => 0,
|
|
|
- 'staffName' => '',
|
|
|
- 'side' => 0,
|
|
|
- 'fromType' => dict::getDict('fromType', 'shop'),
|
|
|
- 'remark' => '冲销单退款',
|
|
|
- ];
|
|
|
- CustomBalanceChangeClass::add($change, true);
|
|
|
-
|
|
|
- // 花店侧 xhGhs 净 balance 同步增加 + 单独记一条流水,保持与 custom 两边一致
|
|
|
- $newGhsBalance = bcadd($ghs->balance ?? '0.00', $returnAmount, 2);
|
|
|
- $ghs->balance = $newGhsBalance;
|
|
|
- $ghs->save(false, ['balance']);
|
|
|
-
|
|
|
- GhsBalanceChangeClass::add([
|
|
|
- 'ghsId' => $ghs->id ?? 0,
|
|
|
- 'ghsName' => $ghs->name ?? '',
|
|
|
- 'relateId' => $forwardOrder->id ?? 0,
|
|
|
- 'ptStyle' => dict::getDict('ptStyle', 'ghs'),
|
|
|
- 'capitalType' => dict::getDict('capitalType', 'customAskGhsRechargeReturn', 'id'),
|
|
|
- 'amount' => $returnAmount,
|
|
|
- 'balance' => $newGhsBalance,
|
|
|
- 'io' => 1,
|
|
|
- 'side' => 0,
|
|
|
- 'payWay' => 0,
|
|
|
- 'fromType' => dict::getDict('fromType', 'shop'),
|
|
|
- 'event' => $event,
|
|
|
- 'sjId' => $custom->sjId ?? 0,
|
|
|
- 'shopId' => $custom->shopId ?? 0,
|
|
|
- 'mainId' => $custom->mainId ?? 0,
|
|
|
- ], true);
|
|
|
-
|
|
|
- return $newBalance;
|
|
|
- }
|
|
|
-
|
|
|
public static function exportCustom($where, $sort, $mainId)
|
|
|
{
|
|
|
$list = self::getAllByCondition($where, $sort, '*', null);
|