diff --git a/app/Http/Controllers/Sales/SalesDashboardController.php b/app/Http/Controllers/Sales/SalesDashboardController.php index 947329d9..427047fc 100644 --- a/app/Http/Controllers/Sales/SalesDashboardController.php +++ b/app/Http/Controllers/Sales/SalesDashboardController.php @@ -441,10 +441,17 @@ private function calculatePartnerSummaryStats(array $partnerIds, int $currentUse // 하위 파트너들이 등록한 총 영업권(명함) 수 $totalProspects = TenantProspect::whereIn('registered_by', $partnerIds)->count(); - // 하위 파트너들의 계약 성사 건수 - $totalConversions = TenantProspect::whereIn('registered_by', $partnerIds) - ->where('status', TenantProspect::STATUS_CONVERTED) - ->count(); + // 예상 수당 계산을 위해 먼저 가입비 정보 조회 + $prospectIds = TenantProspect::whereIn('registered_by', $partnerIds)->pluck('id')->toArray(); + $managementIds = SalesTenantManagement::whereIn('tenant_prospect_id', $prospectIds)->pluck('id')->toArray(); + $totalRegistrationFee = SalesContractProduct::whereIn('management_id', $managementIds)->sum('registration_fee'); + + // 하위 파트너들의 계약 건수 (가입비가 설정된 건수) + $contractedManagementCount = SalesContractProduct::whereIn('management_id', $managementIds) + ->where('registration_fee', '>', 0) + ->distinct('management_id') + ->count('management_id'); + $totalConversions = $contractedManagementCount; // 확정 수당 (SalesCommission에서) $confirmedCommission = SalesCommission::where('manager_user_id', $currentUserId) @@ -452,11 +459,6 @@ private function calculatePartnerSummaryStats(array $partnerIds, int $currentUse $query->whereIn('user_id', $partnerIds); }) ->sum('manager_commission'); - - // 예상 수당: 하위 파트너들이 등록한 가망고객의 가입비 × 5% - $prospectIds = TenantProspect::whereIn('registered_by', $partnerIds)->pluck('id')->toArray(); - $managementIds = SalesTenantManagement::whereIn('tenant_prospect_id', $prospectIds)->pluck('id')->toArray(); - $totalRegistrationFee = SalesContractProduct::whereIn('management_id', $managementIds)->sum('registration_fee'); $expectedFromFee = (int)($totalRegistrationFee * 0.05); // 최종 예상 수당 (확정 + 예상 중 큰 값)