diff --git a/app/Http/Controllers/Finance/SettlementController.php b/app/Http/Controllers/Finance/SettlementController.php index 70132713..2e94dd46 100644 --- a/app/Http/Controllers/Finance/SettlementController.php +++ b/app/Http/Controllers/Finance/SettlementController.php @@ -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') diff --git a/app/Services/SalesCommissionService.php b/app/Services/SalesCommissionService.php index b1f8a16f..5fa753b7 100644 --- a/app/Services/SalesCommissionService.php +++ b/app/Services/SalesCommissionService.php @@ -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) diff --git a/resources/views/finance/settlement/payment-stats.blade.php b/resources/views/finance/settlement/payment-stats.blade.php index 275ff579..2c7586b0 100644 --- a/resources/views/finance/settlement/payment-stats.blade.php +++ b/resources/views/finance/settlement/payment-stats.blade.php @@ -439,9 +439,14 @@ class="px-6 py-3 border-b-2 text-sm font-medium transition-colors">