Files
sam-docs/features/settlement/README.md
김보곤 8faf5afa8b docs:정산관리 개발문서 추가 (4개 메뉴)
- 영업수수료정산: 입금등록, 수당자동계산, 승인프로세스, 지급추적
- 컨설팅비용정산: 상담시간×시급 정산, 상태관리
- 고객사정산: 월별 매출/수수료/비용 순정산액 관리
- 구독료정산: 플랜별 과금, MRR/ARR 집계, 구독 라이프사이클

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:47:22 +09:00

103 lines
4.9 KiB
Markdown
Raw 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.

# 정산관리 기능
## 개요
SAM 프로젝트의 정산관리 모듈은 영업수수료, 컨설팅비용, 고객사별 정산, 구독료 등
다양한 정산 업무를 종합적으로 관리하는 시스템입니다.
입금 등록, 수당 자동 계산, 승인 프로세스, 지급 추적, 통계 기능을 제공합니다.
## 메뉴 구성
| 메뉴 | 경로 | 설명 | UI 기술 |
|------|------|------|---------|
| [영업수수료정산](./sales-commissions.md) | `/finance/sales-commissions` | 영업파트너/매니저 수당 정산 | Blade + HTMX |
| [컨설팅비용정산](./consulting-fees.md) | `/finance/consulting-fee` | 컨설턴트별 상담수수료 관리 | React 18 |
| [고객사정산](./customer-settlements.md) | `/finance/customer-settlement` | 고객사별 매출/비용 정산 | React 18 |
| [구독료정산](./subscriptions.md) | `/finance/subscription` | 구독 플랜별 과금 관리 | React 18 |
## 아키텍처
```
┌───────────────────────────────────────────────────────────────┐
│ 정산관리 모듈 │
├───────────────┬───────────────┬───────────────┬───────────────┤
│ 영업수수료정산 │ 컨설팅비용정산 │ 고객사정산 │ 구독료정산 │
│ (Blade+HTMX) │ (React 18) │ (React 18) │ (React 18) │
│ │ │ │ │
│ 입금등록 │ 상담기록 │ 월별정산 │ 플랜관리 │
│ 수당자동계산 │ 시급계산 │ 매출/비용 │ MRR/ARR │
│ 승인프로세스 │ 상태관리 │ 순정산액 │ 과금주기 │
│ 지급추적 │ │ │ 사용자수 │
└───────┬───────┴───────┬───────┴───────┬───────┴───────┬───────┘
│ │ │ │
▼ ▼ ▼ ▼
┌───────────────────────────────────────────────────────────────┐
│ 데이터베이스 │
│ sales_commissions, sales_commission_details, │
│ consulting_fees, customer_settlements, subscriptions │
└───────────────────────────────────────────────────────────────┘
```
## 주요 기술 스택
| 기술 | 용도 |
|------|------|
| Laravel 11 (PHP 8.3) | 백엔드 프레임워크 |
| Blade + HTMX | 영업수수료정산 UI (부분 업데이트, 모달) |
| React 18 + Babel | 컨설팅/고객사/구독료 UI (브라우저 트랜스파일링) |
| Tailwind CSS + Lucide | 스타일링 및 아이콘 |
| MySQL 8.0 | 데이터 저장 |
## 데이터 흐름
```
영업수수료정산:
sales_tenant_managements (계약) → 입금 등록
sales_commissions (수당 자동 계산)
├── sales_commission_details (상품별 상세)
└── 승인 → 지급완료 프로세스
컨설팅비용정산:
consulting_fees (상담시간 × 시급 = 정산액)
고객사정산:
customer_settlements (매출 - 수수료 - 비용 = 순정산액)
구독료정산:
subscriptions (플랜별 월정액 × 과금주기)
```
## 공통 패턴
### 멀티 테넌트
모든 테이블은 `tenant_id` 기반으로 데이터를 격리합니다.
컨트롤러에서 `session('selected_tenant_id', 1)`로 현재 테넌트를 결정합니다.
### 상태 관리
| 기능 | 상태값 |
|------|--------|
| 영업수수료 | pending → approved → paid / cancelled |
| 컨설팅비용 | pending / paid |
| 고객사정산 | pending / settled |
| 구독료 | active / trial / cancelled / expired / suspended |
### CSV 내보내기
모든 기능에서 CSV 내보내기를 지원합니다:
- 영업수수료: 서버 사이드 (UTF-8 BOM 인코딩)
- 컨설팅/고객사/구독: 클라이언트 사이드 (React)
## 데이터베이스 테이블 요약
| 테이블 | 역할 |
|--------|------|
| `sales_commissions` | 영업수수료 정산 (입금, 수당, 승인, 지급) |
| `sales_commission_details` | 상품별 수당 상세 내역 |
| `consulting_fees` | 컨설팅 상담수수료 기록 |
| `customer_settlements` | 고객사별 월간 정산 |
| `subscriptions` | 구독 플랜 및 과금 관리 |
| `customers` | 고객사 마스터 (참조) |