## 처방 관리 (조제) 기능 - compounds API 추가 (목록/상세/환자별 조회) - 조제 시 자동 재고 차감 (FIFO) - 조제 내역 UI (EMR 스타일) - 조제 상세보기 모달 (처방구성, 재고소비내역) - 오늘/이번달 조제 통계 표시 ## 재고 원장 시스템 - stock-ledger API 구현 - 입출고 내역 실시간 추적 - 재고 현황 페이지 개선 (통계 카드 추가) - 입출고 원장 모달 UI - 약재별/전체 입출고 내역 조회 ## 확인된 동작 - 박주호 환자 오미자 200g 조제 - 재고 2000g → 1800g 정확히 차감 - 모든 입출고 stock_ledger에 기록 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
67 lines
2.2 KiB
Markdown
67 lines
2.2 KiB
Markdown
# 한약 재고관리 시스템 - 프로젝트 상태
|
|
|
|
## ✅ 해결된 이슈 (2026-02-15)
|
|
1. **입고장 상세보기 500 에러** - 해결 완료!
|
|
- 원인: receipt_date가 튜플 문자열로 저장됨, total_amount가 bytes로 저장됨
|
|
- 해결: 데이터베이스 값 수정 완료
|
|
2. **Flask 프로세스 중복 실행 문제** - 해결 완료!
|
|
- 해결: run_server.sh 스크립트 생성으로 단일 프로세스 관리
|
|
|
|
## 📝 최근 수정 사항 (2026-02-15)
|
|
|
|
### ✅ 완료된 작업
|
|
1. **총금액 계산 문제 해결**
|
|
- `app.py` 쿼리에서 중복된 `pr.total_amount` 제거
|
|
- `SUM(prl.line_total) as total_amount` 사용
|
|
- API가 정확한 총금액 1,551,900원 반환
|
|
|
|
2. **UI 개선**
|
|
- 입고장 목록에서 총금액을 굵은 파란색으로 강조
|
|
- 총수량을 작은 회색 글씨로 표시
|
|
- 테이블 헤더 순서 변경 (총금액이 먼저)
|
|
|
|
3. **원산지 데이터 처리**
|
|
- Excel에서 원산지(origin_country) 데이터 읽기 확인
|
|
- 데이터베이스 저장 확인
|
|
- 입고장 상세 화면에 원산지 표시
|
|
|
|
### 🔧 해결 필요
|
|
1. **입고장 상세보기 오류**
|
|
- 증상: 상세보기 버튼 클릭 시 500 에러
|
|
- 위치: `/api/purchase-receipts/<id>` API
|
|
- 원인: 조사 중
|
|
|
|
2. **Flask 프로세스 관리**
|
|
- 문제: 여러 Flask 프로세스가 중복 실행
|
|
- 해결 방법: 단일 프로세스로 관리 필요
|
|
|
|
## 🗄️ 데이터베이스 상태
|
|
- 입고장 1건 (ID: 6, 날짜: 2026-02-11)
|
|
- 총 29개 품목, 총금액 1,551,900원
|
|
- 도매상: (주)휴먼허브
|
|
|
|
## 🌐 서버 정보
|
|
- **포트**: 5001
|
|
- **모드**: Debug (자동 재시작 활성화)
|
|
- **URL**: http://localhost:5001
|
|
|
|
## 📂 주요 파일
|
|
- `app.py` - Flask 백엔드
|
|
- `database/kdrug.db` - SQLite 데이터베이스
|
|
- `templates/index.html` - 프론트엔드 HTML
|
|
- `static/app.js` - JavaScript
|
|
- `excel_processor.py` - Excel 파일 처리
|
|
|
|
## 🔄 Flask 서버 관리 명령어
|
|
```bash
|
|
# 모든 Flask 프로세스 종료
|
|
lsof -ti:5001 | xargs -r kill -9
|
|
|
|
# Flask 서버 시작 (디버그 모드)
|
|
source venv/bin/activate && python app.py
|
|
```
|
|
|
|
## 📋 다음 작업
|
|
1. 입고장 상세보기 500 에러 수정
|
|
2. Flask 프로세스 중복 실행 방지 설정
|
|
3. 에러 로깅 개선 |