fix: [settlement] 구독료 수당(매니저/파트너) 로직 3가지 버그 수정
- 매니저 미지정 시 구독료가 소실되던 버그 → 파트너 수당으로 편입 - deposit/balance 양쪽에서 구독료 이중 계상 → deposit에서만 1회 기록 - 파트너별 결산 탭에 +구독 배지 추가, select에 manager_user_id 포함
This commit is contained in:
@@ -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')
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user