Files
sam-docs/features/sales/sales-dashboard.md
김보곤 c5b1eb050e docs:영업/매출관리 개발문서 추가 (7개 메뉴)
- 영업관리 대시보드: 수당 현황, 테넌트 진행률, 파트너 활동
- 파트너관리: 영업파트너 CRUD, 역할 관리, 서류 관리
- 영업파트너승인: 신규 파트너 신청 승인/반려 워크플로우
- 상품관리: 카테고리별 상품, 가격/수당률 설정
- 고객관리(관리자): 전사 고객 현황, 본사 진행상태 8단계
- 영업파트너 고객관리: 명함등록 기반 영업권, 테넌트 전환
- 인터뷰 시나리오: 질문 템플릿, 세션 기반 인터뷰 기록

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 17:04:06 +09:00

123 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 영업관리 대시보드
## 개요
영업관리 대시보드는 영업파트너/상담매니저의 수당 현황, 테넌트 진행률, 유치 파트너 활동을 종합적으로 보여주는 페이지입니다.
로그인한 사용자 기준의 실적 및 수당 정보를 실시간으로 제공합니다.
- **라우트**: `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 탭 전환