docs: 입고 테스트 가이드라인 및 개발 규칙 문서화
- 입고장 → 입고 라인 → LOT 생성 프로세스 명시 - inventory_lots 직접 INSERT 금지 규칙 - 재고 계산 모드별 설명 - 데이터베이스 구조 및 흐름도 추가 - 개발 시 주의사항 정리 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
7314c0075d
commit
831584f752
123
.claude/claude.md
Normal file
123
.claude/claude.md
Normal file
@ -0,0 +1,123 @@
|
||||
# 한약 재고관리 시스템 - 개발 가이드라인
|
||||
|
||||
## 📋 테스트 데이터 입력 규칙
|
||||
|
||||
### 🔴 중요: 입고 테스트 시 필수 준수사항
|
||||
|
||||
**모든 재고 입고 테스트는 반드시 다음 프로세스를 따라야 합니다:**
|
||||
|
||||
1. **입고장 생성 (purchase_receipts)**
|
||||
- 공급업체, 날짜, 총액 등 기본 정보 등록
|
||||
- VAT 포함/미포함 구분
|
||||
|
||||
2. **입고 라인 생성 (purchase_receipt_lines)**
|
||||
- 각 약재별 상세 입고 정보
|
||||
- 수량, 단가, 원산지 등 기록
|
||||
|
||||
3. **재고 LOT 자동 생성 (inventory_lots)**
|
||||
- 입고 라인에 따라 자동으로 LOT 생성
|
||||
- `receipt_line_id`로 입고장과 연결
|
||||
- 재고 추적 및 이력 관리
|
||||
|
||||
### ❌ 금지사항
|
||||
- inventory_lots 테이블에 직접 데이터 INSERT 금지
|
||||
- 입고장 없이 재고만 추가하는 것은 테스트 목적 외 금지
|
||||
|
||||
### ✅ 올바른 예시
|
||||
|
||||
```python
|
||||
# 1. 입고장 생성
|
||||
INSERT INTO purchase_receipts (supplier_id, receipt_date, receipt_no, ...)
|
||||
VALUES (1, '2024-02-18', 'PR-20240218-001', ...);
|
||||
|
||||
# 2. 입고 라인 추가
|
||||
INSERT INTO purchase_receipt_lines (receipt_id, herb_item_id, quantity_g, ...)
|
||||
VALUES (1, 47, 1000, ...);
|
||||
|
||||
# 3. LOT은 자동 생성되거나 트리거로 처리
|
||||
INSERT INTO inventory_lots (receipt_line_id, ...) # receipt_line_id 필수!
|
||||
```
|
||||
|
||||
### 📌 특수 케이스
|
||||
|
||||
**입고장 없는 재고 테스트가 필요한 경우:**
|
||||
- `receipt_line_id = 0` 사용 (입고장 없음 표시)
|
||||
- 반드시 테스트 완료 후 삭제 또는 원복
|
||||
- 실제 운영 환경에서는 사용 금지
|
||||
|
||||
---
|
||||
|
||||
## 🗂️ 데이터베이스 구조
|
||||
|
||||
### 핵심 테이블 관계
|
||||
```
|
||||
purchase_receipts (입고장)
|
||||
↓
|
||||
purchase_receipt_lines (입고 상세)
|
||||
↓
|
||||
inventory_lots (재고 LOT) - receipt_line_id로 연결
|
||||
↓
|
||||
compound_consumptions (소비 내역)
|
||||
```
|
||||
|
||||
### 재고 계산 방식
|
||||
|
||||
1. **전체 재고 (all)**
|
||||
- 모든 LOT 포함
|
||||
- `receipt_line_id = 0` 포함
|
||||
|
||||
2. **입고장 기준 (receipt_only)**
|
||||
- `receipt_line_id > 0`인 LOT만
|
||||
- 정식 입고된 재고만 계산
|
||||
|
||||
3. **검증된 재고 (verified)**
|
||||
- 현재는 입고장 기준과 동일
|
||||
- 향후 별도 검증 플래그 추가 예정
|
||||
|
||||
---
|
||||
|
||||
## 🔄 재고 흐름
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[입고장 등록] --> B[입고 라인 생성]
|
||||
B --> C[LOT 자동 생성]
|
||||
C --> D[재고 보유]
|
||||
D --> E1[복합제 소비]
|
||||
D --> E2[처방 출고]
|
||||
D --> E3[재고 보정]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 개발 시 주의사항
|
||||
|
||||
1. **재고 자산 계산**
|
||||
- 효능 태그 JOIN 시 중복 주의
|
||||
- GROUP BY 전에 DISTINCT 사용
|
||||
- 태그는 별도 쿼리로 조회 권장
|
||||
|
||||
2. **LOT 관리**
|
||||
- receipt_line_id는 NOT NULL 제약
|
||||
- 0 = 입고장 없음 (특수 케이스)
|
||||
- NULL 사용 불가
|
||||
|
||||
3. **단가 처리**
|
||||
- 입고 시점 단가 저장
|
||||
- 출고 시 LOT의 단가 사용
|
||||
- 가중평균 계산 시 주의
|
||||
|
||||
---
|
||||
|
||||
## 📝 테스트 체크리스트
|
||||
|
||||
- [ ] 입고장 생성 확인
|
||||
- [ ] 입고 라인과 LOT 연결 확인
|
||||
- [ ] 재고 자산 계산 정확성
|
||||
- [ ] 소비 후 재고 차감 확인
|
||||
- [ ] 재고 보정 처리 확인
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: 2024-02-18*
|
||||
*작성자: Claude & User*
|
||||
Loading…
Reference in New Issue
Block a user