# 원산지별 재고 관리 및 조제 시 선택 기능 ## 🎯 완료된 기능 (2026-02-15) ### 1. 원산지별 재고 구분 표시 - **재고 현황 API 개선** (`/api/inventory/summary`) - `origin_count`: 원산지 개수 - `min_price`, `max_price`: 가격 범위 - 평균 가격 표시 ### 2. 재고 상세 API 추가 (`/api/inventory/detail/`) - 원산지별로 그룹화된 재고 정보 - 각 원산지별 로트 목록 - 평균 단가, 재고 수량, 재고 가치 ### 3. UI 개선 - 재고 목록에서 원산지 개수 배지 표시 - 가격 범위 표시 (여러 원산지일 경우) - 클릭 시 상세 모달 표시 - 원산지별 재고 카드형 UI ## 📌 실제 사례: 건강(乾薑) 약재 ``` 페루산: 5,000g @ 12.4원/g (총 62,000원) 한국산: 1,500g @ 51.4원/g (총 77,100원) ``` ## 🔄 조제 시 원산지 선택 기능 (설계) ### 1. 데이터베이스 스키마 변경 ```sql -- compound_details 테이블에 로트 정보 추가 ALTER TABLE compound_details ADD COLUMN lot_id INTEGER; ALTER TABLE compound_details ADD FOREIGN KEY (lot_id) REFERENCES inventory_lots(lot_id); ``` ### 2. 조제 프로세스 개선 1. **처방 선택 후 약재 목록 표시** - 각 약재에 원산지 선택 옵션 제공 - 기본값: 가장 저렴한 원산지 - 선택 가능: 고품질(비싼) 원산지 2. **원산지 선택 UI** ```javascript // 예시: 건강 30g 조제 시 { herb: "건강", required: 30, options: [ {origin: "페루", price: 12.4, available: 5000}, {origin: "한국", price: 51.4, available: 1500} ] } ``` 3. **가격 차이 실시간 표시** - 기본 선택: 페루산 30g = 372원 - 프리미엄 선택: 한국산 30g = 1,542원 - 차이: +1,170원 ### 3. API 엔드포인트 추가 - `GET /api/herbs//lots` - 약재별 가용 로트 목록 - `POST /api/compounds/calculate` - 원산지별 가격 계산 - `POST /api/compounds/dispense` - 원산지 지정 조제 ### 4. FIFO 변형 전략 - **기본**: 저렴한 원산지 우선 (Cost-Optimized FIFO) - **선택**: 특정 원산지 지정 가능 - **혼합**: 일부는 저렴, 일부는 고품질 ## 💡 비즈니스 가치 1. **환자 선택권**: 가격 vs 품질 선택 가능 2. **투명성**: 원산지별 가격 명시 3. **재고 관리**: 원산지별 재고 추적 4. **수익성**: 프리미엄 옵션 제공 ## 🚀 구현 우선순위 1. ✅ 원산지별 재고 표시 (완료) 2. ✅ 재고 상세 모달 (완료) 3. ⏳ 조제 시 원산지 선택 UI 4. ⏳ 원산지별 가격 계산 5. ⏳ 조제 이력에 원산지 기록