fix: [settlement] 구독료 수당(매니저/파트너) 로직 3가지 버그 수정

- 매니저 미지정 시 구독료가 소실되던 버그 → 파트너 수당으로 편입
- deposit/balance 양쪽에서 구독료 이중 계상 → deposit에서만 1회 기록
- 파트너별 결산 탭에 +구독 배지 추가, select에 manager_user_id 포함
This commit is contained in:
김보곤
2026-02-26 21:55:59 +09:00
parent ef943381bf
commit d6633a773a
3 changed files with 31 additions and 8 deletions

View File

@@ -611,7 +611,7 @@ private function getPartnerSettlement(\Closure $baseQuery): \Illuminate\Support\
->select([
'id', 'partner_id', 'management_id', 'payment_type',
'partner_commission', 'manager_commission', 'referrer_commission',
'status', 'scheduled_payment_date',
'status', 'scheduled_payment_date', 'manager_user_id',
])
->orderBy('partner_id')
->orderBy('scheduled_payment_date')

View File

@@ -182,9 +182,19 @@ public function createCommission(int $managementId, string $paymentType, float $
// 수당 계산
$partnerCommission = $baseAmount * ($partnerRate / 100);
// 매니저 수당 = 구독료 1개월 (비율 아님)
// 구독료 수당 (deposit에서만 1회 설정, balance에서는 0)
$subscriptionFee = $contractProducts->sum('subscription_fee') ?? 0;
$managerCommission = $management->manager_user_id ? $subscriptionFee : 0;
$managerCommission = 0;
if ($paymentType === SalesCommission::PAYMENT_DEPOSIT && $subscriptionFee > 0) {
if ($management->manager_user_id) {
// 매니저 지정 → 매니저 수당
$managerCommission = $subscriptionFee;
} else {
// 매니저 미지정 → 파트너 수당으로 편입
$partnerCommission += $subscriptionFee;
}
}
$managerRate = 0; // 매니저는 비율 기반이 아님
$referrerCommission = ($referrerId && $referrerRate > 0)
@@ -654,9 +664,17 @@ private function recalculateCommission(SalesCommission $commission): void
$partnerCommission = $baseAmount * ($partnerRate / 100);
// 매니저 수당 = 구독료 1개월
// 구독료 수당 (deposit에서만 1회 설정, balance에서는 0)
$subscriptionFee = $contractProducts->sum('subscription_fee') ?? 0;
$managerCommission = $management->manager_user_id ? $subscriptionFee : 0;
$managerCommission = 0;
if ($commission->payment_type === SalesCommission::PAYMENT_DEPOSIT && $subscriptionFee > 0) {
if ($management->manager_user_id) {
$managerCommission = $subscriptionFee;
} else {
$partnerCommission += $subscriptionFee;
}
}
// 유치수당
$referrerCommission = ($referrerId && $referrerRate > 0)