# 영업관리 대시보드 ## 개요 영업관리 대시보드는 영업파트너/상담매니저의 수당 현황, 테넌트 진행률, 유치 파트너 활동을 종합적으로 보여주는 페이지입니다. 로그인한 사용자 기준의 실적 및 수당 정보를 실시간으로 제공합니다. - **라우트**: `GET /sales/salesmanagement/dashboard` - **미들웨어**: `auth`, `hq.member` - **UI 기술**: Blade + HTMX + Alpine.js + Tailwind CSS ## 파일 구조 ``` mng/ ├── app/Http/Controllers/Sales/ │ └── SalesDashboardController.php # 메인 컨트롤러 (18개 메서드, 1,073줄) └── resources/views/sales/dashboard/ ├── index.blade.php # 메인 페이지 └── partials/ ├── data-container.blade.php # HTMX 새로고침 컨테이너 ├── stats.blade.php # 통계 카드 ├── commission-by-role.blade.php # 역할별 수당 ├── tenant-list.blade.php # 테넌트 목록 ├── tenant-stats.blade.php # 테넌트 통계 ├── partner-activity.blade.php # 유치 파트너 활동 ├── my-commission.blade.php # 내 수당 정보 ├── help-modal.blade.php # 도움말 └── prospect-row.blade.php # 가망고객 행 ``` ## 라우트 ```php // routes/web.php (sales prefix 그룹 내) GET /salesmanagement/dashboard → index() 메인 페이지 GET /salesmanagement/dashboard/refresh → refresh() HTMX 부분 새로고침 GET /salesmanagement/dashboard/tenants → refreshTenantList() 테넌트 목록 갱신 GET /salesmanagement/dashboard/partner-activity → partnerActivity() 유치 파트너 활동 GET /salesmanagement/dashboard/help → helpGuide() 도움말 모달 GET /salesmanagement/dashboard/prospect/{id}/row → getProspectRow() 가망고객 행 GET /managers/list → getManagers() 매니저 목록 GET /managers/search → searchManagers() 매니저 검색 POST /tenants/{tenant}/assign-manager → assignManager() 매니저 지정 POST /prospects/{prospect}/assign-manager → assignProspectManager() 가망고객 매니저 지정 ``` ## 컨트롤러 ### SalesDashboardController | 메서드 | HTTP | 설명 | |--------|------|------| | `index()` | GET | 대시보드 메인 화면 | | `refresh()` | GET | HTMX 부분 새로고침 | | `getDashboardData()` | - | 대시보드 핵심 데이터 조회 (private) | | `refreshTenantList()` | GET | 테넌트 목록 새로고침 | | `getManagers()` | GET | 매니저 드롭다운 목록 | | `searchManagers()` | GET | 매니저 검색 API | | `partnerActivity()` | GET | 유치 파트너 활동 현황 | | `getPartnerActivityData()` | - | 파트너 활동 데이터 (private) | | `calculatePartnerSummaryStats()` | - | 파트너 요약 통계 (private) | | `getPartnerActivitiesDetail()` | - | 파트너별 상세 활동 (private) | | `getManagerOnlyProspects()` | - | 매니저 전용 가망고객 (private) | | `getCommissionData()` | - | 수당 정보 조회 (private) | | `getAllManagerUsers()` | - | 상담매니저 사용자 목록 (private) | | `helpGuide()` | GET | 도움말 모달 | | `getProspectRow()` | GET | 가망고객 개별 행 | | `assignManager()` | POST | 테넌트 매니저 변경 | | `assignProspectManager()` | POST | 가망고객 매니저 변경 | | `calculateExpectedCommissionSummary()` | - | 예상 수당 계산 (private) | ### 수당 계산 로직 ``` 영업파트너 수당: - 판매자 수당: 가입비 × 20% - 협업지원금: 개발비 × 10% (인계 완료 시) - 1차/2차 분할: 각 50% 매니저 수당: - 1개월 구독료 (매니저 기본 수당) - 1차/2차 분할: 각 50% ``` ## 뷰 구성 ``` ┌─ 페이지 헤더 ────────────────────── │ 제목: "영업관리" │ [새로고침] 버튼 │ ├─ 탭 전환 (Alpine.js) ───────────── │ [내 활동] | [유치 파트너 현황] │ ├─ 탭1: 내 활동 ───────────────────── │ ├─ 통계 카드 (수당 요약) │ │ 총 수당 | 지급완료 | 미지급 | 예상 수당 │ │ │ ├─ 역할별 수당 상세 │ │ 영업파트너 수당 | 매니저 수당 │ │ │ └─ 테넌트/가망고객 목록 │ 회사명 | 상태 | 진행률 | 수당 | 매니저 | 작업 │ └─ 매니저 지정 변경 (드롭다운) │ ├─ 탭2: 유치 파트너 현황 ──────────── │ ├─ 파트너 요약 통계 │ │ 총 파트너 | 활성 | 계약건수 | 총 수당 │ │ │ └─ 파트너별 활동 상세 │ 파트너명 | 등록 고객 | 계약 | 진행중 | 수당 │ └─ 도움말 모달 ────────────────────── 수당 계산 방식, 진행 단계 설명 ``` ## HTMX 호환성 - Blade + HTMX 기반으로 **HX-Redirect 불필요** - `hx-get`으로 부분 새로고침 처리 - Alpine.js 탭 전환