feat: 판매관리 시스템 Phase 1 및 마일리지 시스템 구현
- 판매 관리 기능 추가 - compounds 테이블에 판매 관련 컬럼 추가 (payment_method, discount_rate, delivery_method 등) - 판매 상태 관리 (조제완료→결제대기→결제완료→배송대기→배송완료) - 판매 처리 모달 UI 구현 - 9가지 상태별 뱃지 표시 - 마일리지 시스템 구축 - patients 테이블에 마일리지 컬럼 추가 (balance, earned, used) - mileage_transactions 테이블 생성 (거래 이력 관리) - 마일리지 사용/적립 기능 구현 - 복합 결제 기능 - 할인율(%) / 할인액(원) 직접 입력 선택 가능 - 마일리지 + 현금 + 카드 + 계좌이체 복합 결제 - 결제 금액 자동 검증 - 결제 방법 자동 분류 (복합결제 지원) - API 엔드포인트 추가 - POST /api/compounds/<id>/status (상태 업데이트) - PUT /api/compounds/<id>/price (가격 조정) - GET /api/sales/statistics (판매 통계) - 데이터베이스 설정 통합 - config.py 생성하여 DB 경로 중앙화 TODO: 처방별 기본가격 정책 시스템 (price_policies 테이블 활용) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
317
docs/직접조제_고도화_기획문서.md
Normal file
317
docs/직접조제_고도화_기획문서.md
Normal file
@@ -0,0 +1,317 @@
|
||||
# 직접조제(Custom Compound) 고도화 기획 문서
|
||||
|
||||
## 1. 현황 분석
|
||||
|
||||
### 1.1 현재 직접조제 데이터 구조
|
||||
|
||||
#### 실제 데이터 사례
|
||||
```
|
||||
Compound ID 10: 휴먼건강 3.0g (단품)
|
||||
Compound ID 8: 휴먼건강 2.0g (단품)
|
||||
Compound ID 7: 휴먼일당귀 100.0g (단품)
|
||||
Compound ID 6: 휴먼일당귀 100.0g (단품)
|
||||
```
|
||||
|
||||
#### 현재 저장 방식
|
||||
- formula_id: NULL
|
||||
- is_custom: 0 (잘못된 설정)
|
||||
- custom_type: 'standard' (잘못된 설정)
|
||||
- custom_summary: NULL
|
||||
- 약재 정보: compound_ingredients에 단일 약재로 저장
|
||||
|
||||
### 1.2 문제점
|
||||
|
||||
1. **분류 체계 미비**
|
||||
- 직접조제임에도 is_custom=0으로 저장
|
||||
- custom_type이 'standard'로 잘못 설정
|
||||
- 표준처방과 직접조제 구분 불명확
|
||||
|
||||
2. **데이터 무결성**
|
||||
- formula_id NULL이지만 custom 플래그 미설정
|
||||
- 직접조제 사유/목적 미기록
|
||||
- 처방명 없음 (custom_summary 미사용)
|
||||
|
||||
3. **관리 기능 부족**
|
||||
- 직접조제 이력 추적 어려움
|
||||
- 가격 책정 기준 불명확
|
||||
- 재조제시 참조 데이터 부재
|
||||
|
||||
## 2. 직접조제 유형 분류
|
||||
|
||||
### 2.1 단품 판매 (Single Item)
|
||||
- **특징**: 단일 약재 판매
|
||||
- **사례**: 녹용 100g, 홍삼 50g
|
||||
- **용도**: 환자 요청에 의한 약재 구매
|
||||
|
||||
### 2.2 맞춤 조제 (Custom Formula)
|
||||
- **특징**: 여러 약재 조합하여 맞춤 처방
|
||||
- **사례**: 기존 처방 가감방, 한약사 임의 조제
|
||||
- **용도**: 환자 체질/증상에 맞춘 개별화 처방
|
||||
|
||||
### 2.3 OTC 조제 (Over The Counter)
|
||||
- **특징**: 처방전 없이 판매 가능한 제품
|
||||
- **사례**: 쌍화탕 파우치, 공진단
|
||||
- **용도**: 일반 판매용 제품
|
||||
|
||||
### 2.4 테스트/샘플 (Test/Sample)
|
||||
- **특징**: 시음용, 테스트용 소량 조제
|
||||
- **사례**: 처방 샘플 1일분
|
||||
- **용도**: 환자 시음, 품질 테스트
|
||||
|
||||
## 3. 개선 방안
|
||||
|
||||
### 3.1 데이터 구조 개선
|
||||
|
||||
#### 3.1.1 compounds 테이블 수정
|
||||
```sql
|
||||
-- 직접조제 분류 강화
|
||||
ALTER TABLE compounds ADD COLUMN custom_category TEXT;
|
||||
-- 'SINGLE_ITEM', 'CUSTOM_FORMULA', 'OTC', 'SAMPLE'
|
||||
|
||||
ALTER TABLE compounds ADD COLUMN custom_name TEXT;
|
||||
-- 직접조제명 (예: '감기 맞춤처방', '홍삼 단품')
|
||||
|
||||
ALTER TABLE compounds ADD COLUMN custom_purpose TEXT;
|
||||
-- 조제 목적/사유
|
||||
|
||||
ALTER TABLE compounds ADD COLUMN reference_compound_id INTEGER;
|
||||
-- 재조제시 참조할 이전 조제 ID
|
||||
```
|
||||
|
||||
#### 3.1.2 custom_formulas 테이블 신규
|
||||
```sql
|
||||
CREATE TABLE custom_formulas (
|
||||
custom_formula_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
compound_id INTEGER REFERENCES compounds(compound_id),
|
||||
formula_name TEXT NOT NULL,
|
||||
formula_description TEXT,
|
||||
base_formula_id INTEGER REFERENCES formulas(formula_id),
|
||||
-- 기본이 된 표준처방 (가감방인 경우)
|
||||
|
||||
modification_summary TEXT,
|
||||
-- 가감 내용 요약
|
||||
|
||||
symptoms TEXT,
|
||||
-- 대상 증상
|
||||
|
||||
contraindications TEXT,
|
||||
-- 금기사항
|
||||
|
||||
created_by TEXT NOT NULL,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
is_reusable BOOLEAN DEFAULT 0,
|
||||
-- 재사용 가능 여부 (다른 환자에게도 적용 가능)
|
||||
|
||||
reuse_count INTEGER DEFAULT 0
|
||||
-- 재사용 횟수
|
||||
);
|
||||
```
|
||||
|
||||
### 3.2 비즈니스 로직 개선
|
||||
|
||||
#### 3.2.1 직접조제 생성 프로세스
|
||||
```
|
||||
1. 조제 유형 선택
|
||||
└─ 단품/맞춤/OTC/샘플
|
||||
|
||||
2. 유형별 정보 입력
|
||||
├─ 단품: 약재, 용량, 판매사유
|
||||
├─ 맞춤: 처방명, 약재구성, 증상, 기반처방
|
||||
├─ OTC: 제품명, 수량
|
||||
└─ 샘플: 목적, 대상처방, 용량
|
||||
|
||||
3. 가격 책정
|
||||
├─ 자동계산: 약재원가 + 조제료
|
||||
└─ 수동입력: 특별가 적용
|
||||
|
||||
4. 데이터 저장
|
||||
├─ compounds: is_custom=1, custom_category 설정
|
||||
├─ compound_ingredients: 약재 구성
|
||||
└─ custom_formulas: 맞춤처방 상세정보
|
||||
```
|
||||
|
||||
#### 3.2.2 직접조제 관리 기능
|
||||
1. **템플릿 관리**
|
||||
- 자주 사용하는 직접조제 템플릿 저장
|
||||
- 템플릿에서 빠른 조제 생성
|
||||
|
||||
2. **이력 관리**
|
||||
- 환자별 직접조제 이력 조회
|
||||
- 동일 처방 재조제 기능
|
||||
|
||||
3. **가격 정책**
|
||||
- 직접조제 유형별 조제료 설정
|
||||
- 단품 판매 마진율 관리
|
||||
|
||||
### 3.3 UI/UX 개선
|
||||
|
||||
#### 3.3.1 직접조제 입력 화면
|
||||
```
|
||||
┌─────────────── 직접조제 등록 ──────────────┐
|
||||
│ │
|
||||
│ 조제 유형: [단품 판매 ▼] │
|
||||
│ │
|
||||
│ ─────── 기본 정보 ───────── │
|
||||
│ 조제명: [________________] │
|
||||
│ 환자: [환자선택 ▼] 또는 [비회원] │
|
||||
│ │
|
||||
│ ─────── 약재 구성 ───────── │
|
||||
│ [+ 약재 추가] │
|
||||
│ ┌────────┬──────┬──────┬────┐ │
|
||||
│ │약재명 │용량 │단가 │삭제 │ │
|
||||
│ ├────────┼──────┼──────┼────┤ │
|
||||
│ │홍삼 │100g │500원/g│ X │ │
|
||||
│ └────────┴──────┴──────┴────┘ │
|
||||
│ │
|
||||
│ ─────── 가격 정보 ───────── │
|
||||
│ 약재비: 50,000원 │
|
||||
│ 조제료: [10,000원] │
|
||||
│ 판매가: [60,000원] │
|
||||
│ │
|
||||
│ 조제 목적: [________________] │
|
||||
│ 비고: [____________________] │
|
||||
│ │
|
||||
│ [템플릿 저장] [취소] [조제 등록] │
|
||||
└────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
#### 3.3.2 직접조제 목록 화면
|
||||
```
|
||||
[직접조제 관리]
|
||||
|
||||
필터: [전체 ▼] [2024-02-01] ~ [2024-02-29] [검색]
|
||||
|
||||
┌────┬──────┬────────┬──────┬──────┬────────┬──────┐
|
||||
│번호│유형 │조제명 │환자 │약재수 │판매가 │작업 │
|
||||
├────┼──────┼────────┼──────┼──────┼────────┼──────┤
|
||||
│ 1 │단품 │홍삼100g │홍길동 │ 1 │ 60,000 │[상세] │
|
||||
│ 2 │맞춤 │감기처방 │김철수 │ 8 │120,000 │[재조제]│
|
||||
│ 3 │OTC │공진단3환 │비회원 │ 3 │ 90,000 │[상세] │
|
||||
│ 4 │샘플 │시음1일분 │이영희 │ 5 │ 0 │[상세] │
|
||||
└────┴──────┴────────┴──────┴──────┴────────┴──────┘
|
||||
```
|
||||
|
||||
### 3.4 데이터 마이그레이션
|
||||
|
||||
#### 3.4.1 기존 데이터 정리
|
||||
```sql
|
||||
-- formula_id가 NULL인 조제 데이터 업데이트
|
||||
UPDATE compounds
|
||||
SET is_custom = 1,
|
||||
custom_type = 'custom',
|
||||
custom_category = 'SINGLE_ITEM',
|
||||
custom_name = (
|
||||
SELECT h.herb_name || ' ' || ci.total_grams || 'g'
|
||||
FROM compound_ingredients ci
|
||||
JOIN herb_items h ON ci.herb_item_id = h.herb_item_id
|
||||
WHERE ci.compound_id = compounds.compound_id
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE formula_id IS NULL;
|
||||
```
|
||||
|
||||
#### 3.4.2 데이터 검증
|
||||
- 모든 직접조제 데이터의 무결성 확인
|
||||
- is_custom 플래그와 formula_id NULL 일치 여부 검증
|
||||
- custom_category 분류 정확성 확인
|
||||
|
||||
## 4. API 설계
|
||||
|
||||
### 4.1 직접조제 API
|
||||
|
||||
```python
|
||||
# 직접조제 생성
|
||||
POST /api/compounds/custom
|
||||
{
|
||||
"patient_id": 1, # nullable for OTC
|
||||
"custom_category": "SINGLE_ITEM",
|
||||
"custom_name": "홍삼 100g",
|
||||
"custom_purpose": "면역력 증진",
|
||||
"ingredients": [
|
||||
{
|
||||
"herb_item_id": 123,
|
||||
"grams": 100,
|
||||
"unit_price": 500
|
||||
}
|
||||
],
|
||||
"dispensing_fee": 10000,
|
||||
"sell_price": 60000
|
||||
}
|
||||
|
||||
# 직접조제 템플릿 저장
|
||||
POST /api/custom-templates
|
||||
{
|
||||
"template_name": "감기 기본방",
|
||||
"category": "CUSTOM_FORMULA",
|
||||
"ingredients": [...],
|
||||
"default_price": 80000
|
||||
}
|
||||
|
||||
# 직접조제 이력 조회
|
||||
GET /api/compounds/custom?patient_id=1&category=SINGLE_ITEM
|
||||
|
||||
# 재조제
|
||||
POST /api/compounds/{compound_id}/reorder
|
||||
{
|
||||
"patient_id": 1,
|
||||
"quantity_multiplier": 1.5 # 1.5배 용량
|
||||
}
|
||||
```
|
||||
|
||||
## 5. 구현 로드맵
|
||||
|
||||
### Phase 1: 기반 구축 (1주)
|
||||
- [ ] DB 스키마 수정 (custom_category, custom_name 등 추가)
|
||||
- [ ] 기존 데이터 마이그레이션
|
||||
- [ ] 직접조제 분류 체계 구현
|
||||
|
||||
### Phase 2: 핵심 기능 (2주)
|
||||
- [ ] 직접조제 생성 UI/API
|
||||
- [ ] 유형별 입력 폼 구현
|
||||
- [ ] 가격 자동계산 로직
|
||||
|
||||
### Phase 3: 관리 기능 (1주)
|
||||
- [ ] 직접조제 목록/검색
|
||||
- [ ] 템플릿 관리
|
||||
- [ ] 재조제 기능
|
||||
|
||||
### Phase 4: 고도화 (2주)
|
||||
- [ ] 통계 및 리포트
|
||||
- [ ] 환자별 구매 패턴 분석
|
||||
- [ ] 인기 직접조제 랭킹
|
||||
|
||||
## 6. 주의사항
|
||||
|
||||
### 6.1 규제 준수
|
||||
- 의약품 판매 관련 법규 확인
|
||||
- 처방전 필요 여부 명확히 구분
|
||||
- OTC 판매 가능 품목 관리
|
||||
|
||||
### 6.2 데이터 정합성
|
||||
- formula_id NULL과 is_custom=1 일치 유지
|
||||
- 직접조제는 반드시 custom_category 설정
|
||||
- 가격 정보 필수 입력
|
||||
|
||||
### 6.3 사용자 교육
|
||||
- 직접조제 유형별 사용 가이드
|
||||
- 가격 책정 기준 안내
|
||||
- 템플릿 활용 방법
|
||||
|
||||
## 7. 기대 효과
|
||||
|
||||
1. **체계적 관리**
|
||||
- 직접조제 데이터 일관성 확보
|
||||
- 판매 이력 추적 가능
|
||||
|
||||
2. **업무 효율성**
|
||||
- 템플릿으로 빠른 조제
|
||||
- 재조제 간소화
|
||||
|
||||
3. **매출 증대**
|
||||
- 단품 판매 활성화
|
||||
- 맞춤 처방 서비스 확대
|
||||
|
||||
4. **고객 만족**
|
||||
- 개인 맞춤 서비스
|
||||
- 투명한 가격 정책
|
||||
298
docs/판매관리_기획문서.md
Normal file
298
docs/판매관리_기획문서.md
Normal file
@@ -0,0 +1,298 @@
|
||||
# 한약 판매 관리 시스템 기획 문서
|
||||
|
||||
## 1. 개요
|
||||
|
||||
### 1.1 배경
|
||||
- 한약사가 조제한 한약은 재고 차감과 별개로 판매 프로세스를 거쳐야 함
|
||||
- 조제 완료 후 판매 상태 관리 및 가격 책정이 필요
|
||||
- 환자 관리 및 마케팅을 위한 카카오 채널 연동 계획
|
||||
|
||||
### 1.2 목적
|
||||
- 조제된 한약의 판매 상태 관리
|
||||
- 유연한 가격 정책 적용
|
||||
- 판매 이력 추적 및 매출 관리
|
||||
- 환자 정보 연계 강화
|
||||
|
||||
## 2. 현재 시스템 분석
|
||||
|
||||
### 2.1 기존 구조
|
||||
```
|
||||
compounds 테이블:
|
||||
- compound_id: 조제 고유번호
|
||||
- status: 현재 'PREPARED'로 고정
|
||||
- sell_price_total: 판매가격 필드 존재하나 미활용
|
||||
- cost_total: 원가 필드 존재
|
||||
```
|
||||
|
||||
### 2.2 현재 문제점
|
||||
- 조제 후 판매 상태 추적 불가
|
||||
- 가격 정책 유연성 부족
|
||||
- 판매 완료/취소/반품 등 프로세스 미비
|
||||
- 매출 통계 기능 없음
|
||||
|
||||
## 3. 기능 요구사항
|
||||
|
||||
### 3.1 판매 상태 관리
|
||||
|
||||
#### 3.1.1 상태 유형
|
||||
```
|
||||
PREPARED (조제완료) → 현재 기본값
|
||||
PENDING_PAYMENT (결제대기)
|
||||
PAID (결제완료)
|
||||
PENDING_DELIVERY (배송대기)
|
||||
DELIVERED (배송완료)
|
||||
COMPLETED (판매완료)
|
||||
OTC_CONVERTED (OTC전환)
|
||||
CANCELLED (취소)
|
||||
REFUNDED (환불)
|
||||
```
|
||||
|
||||
#### 3.1.2 상태 전이 규칙
|
||||
```
|
||||
조제완료 → 결제대기 → 결제완료 → 배송대기 → 배송완료 → 판매완료
|
||||
↓ ↓
|
||||
OTC전환 취소/환불
|
||||
```
|
||||
|
||||
### 3.2 가격 관리
|
||||
|
||||
#### 3.2.1 가격 정책
|
||||
1. **기본가격 산정**
|
||||
- 표준처방: 처방별 기본가격 테이블 참조
|
||||
- 직접조제: 약재별 단가 × 용량 × 첩수 자동 계산
|
||||
|
||||
2. **가격 조정**
|
||||
- 가감방 적용시 자동 재계산
|
||||
- 수동 가격 조정 가능
|
||||
- 할인율 적용 기능
|
||||
|
||||
3. **가격 구성**
|
||||
```
|
||||
약재원가 + 조제료 + 배송비 = 기본가격
|
||||
기본가격 × (1 - 할인율) = 최종판매가
|
||||
```
|
||||
|
||||
### 3.3 판매 처리 기능
|
||||
|
||||
#### 3.3.1 판매 정보 입력
|
||||
- 결제 방법 (현금/카드/계좌이체/카카오페이)
|
||||
- 결제 일시
|
||||
- 실제 판매가격
|
||||
- 할인 사유 및 금액
|
||||
- 배송 정보 (택배/직접수령/퀵서비스)
|
||||
- 영수증 발행 여부
|
||||
|
||||
#### 3.3.2 OTC 전환
|
||||
- 처방전 없이 판매 가능한 경우
|
||||
- 환자 정보 없이도 판매 처리
|
||||
- 별도 재고 관리 필요
|
||||
|
||||
## 4. 데이터베이스 설계
|
||||
|
||||
### 4.1 기존 테이블 수정
|
||||
|
||||
#### compounds 테이블 수정사항
|
||||
```sql
|
||||
ALTER TABLE compounds ADD COLUMN payment_method TEXT;
|
||||
ALTER TABLE compounds ADD COLUMN payment_date DATETIME;
|
||||
ALTER TABLE compounds ADD COLUMN discount_rate REAL DEFAULT 0;
|
||||
ALTER TABLE compounds ADD COLUMN discount_reason TEXT;
|
||||
ALTER TABLE compounds ADD COLUMN delivery_method TEXT;
|
||||
ALTER TABLE compounds ADD COLUMN delivery_date DATETIME;
|
||||
ALTER TABLE compounds ADD COLUMN invoice_number TEXT;
|
||||
```
|
||||
|
||||
### 4.2 신규 테이블
|
||||
|
||||
#### sales_transactions (판매 거래)
|
||||
```sql
|
||||
CREATE TABLE sales_transactions (
|
||||
transaction_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
compound_id INTEGER REFERENCES compounds(compound_id),
|
||||
transaction_date DATETIME NOT NULL,
|
||||
transaction_type TEXT NOT NULL, -- SALE, REFUND, CANCEL
|
||||
amount REAL NOT NULL,
|
||||
payment_method TEXT,
|
||||
payment_status TEXT, -- PENDING, COMPLETED, FAILED
|
||||
notes TEXT,
|
||||
created_by TEXT,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
```
|
||||
|
||||
#### price_policies (가격 정책)
|
||||
```sql
|
||||
CREATE TABLE price_policies (
|
||||
policy_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
formula_id INTEGER REFERENCES formulas(formula_id),
|
||||
base_price REAL NOT NULL,
|
||||
dispensing_fee REAL DEFAULT 0,
|
||||
is_active BOOLEAN DEFAULT 1,
|
||||
effective_date DATE,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
```
|
||||
|
||||
#### sales_status_history (판매 상태 이력)
|
||||
```sql
|
||||
CREATE TABLE sales_status_history (
|
||||
history_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
compound_id INTEGER REFERENCES compounds(compound_id),
|
||||
old_status TEXT,
|
||||
new_status TEXT NOT NULL,
|
||||
changed_by TEXT,
|
||||
change_reason TEXT,
|
||||
changed_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
```
|
||||
|
||||
## 5. 사용자 인터페이스
|
||||
|
||||
### 5.1 판매 관리 화면
|
||||
|
||||
#### 5.1.1 조제 목록 화면 개선
|
||||
```
|
||||
[조제 목록]
|
||||
┌────┬──────┬──────┬────────┬────────┬────────┬──────────┐
|
||||
│번호│환자명│처방명│조제일자│ 상태 │판매가격│ 작업 │
|
||||
├────┼──────┼──────┼────────┼────────┼────────┼──────────┤
|
||||
│ 1 │홍길동│갈근탕│02-18 │조제완료│ 80,000 │[판매처리]│
|
||||
│ 2 │김철수│쌍화탕│02-18 │결제대기│ 60,000 │[결제확인]│
|
||||
│ 3 │이영희│십전대│02-17 │배송대기│120,000 │[배송처리]│
|
||||
└────┴──────┴──────┴────────┴────────┴────────┴──────────┘
|
||||
```
|
||||
|
||||
#### 5.1.2 판매 처리 모달
|
||||
```
|
||||
┌─────────────── 판매 처리 ──────────────┐
|
||||
│ │
|
||||
│ 처방명: 갈근탕 │
|
||||
│ 환자명: 홍길동 │
|
||||
│ 조제일: 2026-02-18 │
|
||||
│ │
|
||||
│ ─────── 가격 정보 ───────── │
|
||||
│ 약재원가: 45,000원 │
|
||||
│ 조제료: 20,000원 │
|
||||
│ 기본가격: 65,000원 │
|
||||
│ │
|
||||
│ 할인율: [10%▼] │
|
||||
│ 할인사유: [_______________] │
|
||||
│ 최종가격: 58,500원 │
|
||||
│ │
|
||||
│ ─────── 결제 정보 ───────── │
|
||||
│ 결제방법: [카드▼] │
|
||||
│ 결제일시: [2026-02-18 14:30] │
|
||||
│ │
|
||||
│ ─────── 배송 정보 ───────── │
|
||||
│ 배송방법: [택배▼] │
|
||||
│ 배송예정: [2026-02-19] │
|
||||
│ │
|
||||
│ [취소] [판매확정] │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 5.2 매출 통계 화면
|
||||
|
||||
```
|
||||
[매출 현황]
|
||||
기간: [2026-02-01] ~ [2026-02-29]
|
||||
|
||||
┌─────────────────────────────────┐
|
||||
│ 총 매출: 3,540,000원 │
|
||||
│ 총 건수: 42건 │
|
||||
│ 평균 단가: 84,286원 │
|
||||
└─────────────────────────────────┘
|
||||
|
||||
[일별 매출 추이 그래프]
|
||||
[처방별 매출 비중 차트]
|
||||
[결제 방법별 통계]
|
||||
```
|
||||
|
||||
## 6. API 설계
|
||||
|
||||
### 6.1 판매 관련 API
|
||||
|
||||
```python
|
||||
# 판매 상태 업데이트
|
||||
POST /api/compounds/{compound_id}/status
|
||||
{
|
||||
"status": "PAID",
|
||||
"payment_method": "CARD",
|
||||
"payment_date": "2026-02-18T14:30:00",
|
||||
"amount": 58500
|
||||
}
|
||||
|
||||
# 가격 조정
|
||||
PUT /api/compounds/{compound_id}/price
|
||||
{
|
||||
"sell_price_total": 58500,
|
||||
"discount_rate": 10,
|
||||
"discount_reason": "단골 할인"
|
||||
}
|
||||
|
||||
# 판매 통계 조회
|
||||
GET /api/sales/statistics?start_date=2026-02-01&end_date=2026-02-29
|
||||
|
||||
# OTC 전환
|
||||
POST /api/compounds/{compound_id}/convert-to-otc
|
||||
{
|
||||
"reason": "처방전 미제출",
|
||||
"notes": "환자 요청"
|
||||
}
|
||||
```
|
||||
|
||||
## 7. 구현 우선순위
|
||||
|
||||
### Phase 1 (1주차)
|
||||
1. compounds 테이블 칼럼 추가
|
||||
2. 판매 상태 변경 기능
|
||||
3. 기본 가격 입력/수정 기능
|
||||
4. 판매 처리 UI 구현
|
||||
|
||||
### Phase 2 (2주차)
|
||||
1. sales_transactions 테이블 생성
|
||||
2. 판매 이력 관리 기능
|
||||
3. 매출 통계 API
|
||||
4. 통계 화면 구현
|
||||
|
||||
### Phase 3 (3주차)
|
||||
1. 가격 정책 테이블 구현
|
||||
2. 자동 가격 계산 로직
|
||||
3. OTC 전환 기능
|
||||
4. 영수증 발행 기능
|
||||
|
||||
## 8. 추후 확장 계획
|
||||
|
||||
### 8.1 카카오 채널 연동
|
||||
- QR 코드 생성 및 출력
|
||||
- 카카오 회원가입 유도
|
||||
- 알림톡 발송 (조제완료, 배송안내)
|
||||
|
||||
### 8.2 고객 관리
|
||||
- 구매 이력 관리
|
||||
- 재구매 주기 분석
|
||||
- 맞춤 처방 추천
|
||||
|
||||
### 8.3 재고 연계
|
||||
- OTC 전환시 별도 재고 관리
|
||||
- 유통기한 관리
|
||||
- 재고 부족 알림
|
||||
|
||||
## 9. 기대 효과
|
||||
|
||||
1. **업무 효율성 향상**
|
||||
- 조제부터 판매까지 일원화된 관리
|
||||
- 자동 가격 계산으로 실수 방지
|
||||
|
||||
2. **매출 관리 개선**
|
||||
- 실시간 매출 현황 파악
|
||||
- 처방별/기간별 분석 가능
|
||||
|
||||
3. **고객 서비스 향상**
|
||||
- 체계적인 배송 관리
|
||||
- 투명한 가격 정책
|
||||
|
||||
4. **의사결정 지원**
|
||||
- 데이터 기반 가격 정책 수립
|
||||
- 인기 처방 파악 및 재고 관리 최적화
|
||||
Reference in New Issue
Block a user