103 lines
4.9 KiB
Markdown
103 lines
4.9 KiB
Markdown
|
|
# 정산관리 기능
|
|||
|
|
|
|||
|
|
## 개요
|
|||
|
|
|
|||
|
|
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` | 고객사 마스터 (참조) |
|