diff --git a/app/Http/Controllers/Sales/SalesDashboardController.php b/app/Http/Controllers/Sales/SalesDashboardController.php index 8136cf33..745fa704 100644 --- a/app/Http/Controllers/Sales/SalesDashboardController.php +++ b/app/Http/Controllers/Sales/SalesDashboardController.php @@ -107,19 +107,28 @@ private function getDashboardData(Request $request): array 'confirmed_commission' => 0, // 확정 가입비 수당 ]; - // 테넌트 목록 (나와 연결된 계약만 - 내가 등록한 가망고객에서 전환된 테넌트) - // 현재 사용자와 하위 영업파트너 ID 목록 + // 테넌트 목록 (나와 연결된 계약만) + // 1. 내가 등록하거나 내 하위 영업파트너가 등록한 가망고객 + // 2. 내가 매니저로 지정된 계약 $currentUserId = auth()->id(); $childrenIds = auth()->user()->children()->pluck('id')->toArray(); $partnerIds = array_merge([$currentUserId], $childrenIds); - // 내가 등록하거나 내 하위 영업파트너가 등록한 전환된 가망고객의 tenant_id 목록 조회 - $convertedTenantIds = TenantProspect::whereNotNull('tenant_id') + // 1) 내가 등록한 가망고객에서 전환된 tenant_id (20% 수당) + $registeredTenantIds = TenantProspect::whereNotNull('tenant_id') ->where('status', TenantProspect::STATUS_CONVERTED) ->whereIn('registered_by', $partnerIds) ->pluck('tenant_id') ->toArray(); + // 2) 내가 매니저로 지정된 tenant_id (5% 수당) + $managedTenantIds = SalesTenantManagement::where('manager_user_id', $currentUserId) + ->pluck('tenant_id') + ->toArray(); + + // 두 목록 합치기 (중복 제거) + $convertedTenantIds = array_unique(array_merge($registeredTenantIds, $managedTenantIds)); + // 전환된 테넌트만 조회 (최신순, 페이지네이션) $tenants = Tenant::whereIn('id', $convertedTenantIds) ->orderBy('created_at', 'desc') @@ -204,18 +213,26 @@ public function assignManager(int $tenantId, Request $request): JsonResponse */ public function refreshTenantList(Request $request): View { - // 현재 사용자와 하위 영업파트너 ID 목록 + // 테넌트 목록 (나와 연결된 계약만) $currentUserId = auth()->id(); $childrenIds = auth()->user()->children()->pluck('id')->toArray(); $partnerIds = array_merge([$currentUserId], $childrenIds); - // 내가 등록하거나 내 하위 영업파트너가 등록한 전환된 가망고객의 tenant_id 목록 조회 - $convertedTenantIds = TenantProspect::whereNotNull('tenant_id') + // 1) 내가 등록한 가망고객에서 전환된 tenant_id (20% 수당) + $registeredTenantIds = TenantProspect::whereNotNull('tenant_id') ->where('status', TenantProspect::STATUS_CONVERTED) ->whereIn('registered_by', $partnerIds) ->pluck('tenant_id') ->toArray(); + // 2) 내가 매니저로 지정된 tenant_id (5% 수당) + $managedTenantIds = SalesTenantManagement::where('manager_user_id', $currentUserId) + ->pluck('tenant_id') + ->toArray(); + + // 두 목록 합치기 (중복 제거) + $convertedTenantIds = array_unique(array_merge($registeredTenantIds, $managedTenantIds)); + // 전환된 테넌트만 조회 (최신순, 페이지네이션) $tenants = Tenant::whereIn('id', $convertedTenantIds) ->orderBy('created_at', 'desc')