Commit Graph

35 Commits

Author SHA1 Message Date
2ca5622bbd feat: 의약품 마스터 DB 연동 및 한약재/OTC 구분 체계 구축
- herb_items 테이블에 product_type, standard_code 컬럼 추가
- POST /api/purchase-receipts/from-cart API 구현 (표준코드 기반 입고)
- 5개 API에 product_type/standard_code 필드 추가
- 프론트엔드 전역 구분 표시: 한약재/OTC 배지, 보험코드/표준코드 구분
- 경방신약 주문 매핑 문서 작성 (38건, 총액 1,561,800원)
- DB 스키마 백업 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-23 13:39:59 +00:00
9dd1f41bbb feat: 의약품 마스터 입고 장바구니 UI 구현
검색 결과에서 제품을 장바구니에 담고, 종이 입고장 기준으로
수량/단가 입력 시 g당단가·금액을 자동 계산하는 프론트엔드 플로우.
DB 연동은 추후 구현 예정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:11:56 +00:00
725f14c59a feat: 조제 원가 미리보기 및 재고 상태 표시 개선
원가 미리보기:
- 조제 실행 전 약재별 예상 원가(용량×단가) 및 합계 표시
- 용량/원산지/로트 변경 시 실시간 갱신
- 추가 약재의 이름 표시 오류 수정 (select 내 전체 옵션 텍스트 → 선택값만)

원산지 자동 선택:
- 처방 로드 시 재고 충분한 최저가 원산지를 자동 선택
- "자동 선택" 상태가 아닌 실제 원산지가 선택되어 원가 즉시 계산

재고 상태 표시:
- checkStockForCompound() TODO 제거, 실제 API 호출로 재고 확인
- 기존 원산지 선택을 덮어쓰지 않고 재고 상태만 갱신
- 선택 가능한 원산지가 2개 이상이면 "N종" 뱃지 표시

조제 폼 초기화:
- 새 조제 시 제수 기본값(1)으로 총 첩수(20)/파우치(30) 자동 설정
- 처방 선택 시 총 첩수가 비어있으면 자동 계산

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:50:21 +00:00
974ce5f655 feat: 한퓨어 엑셀 형식 지원 및 조제 용도 구분(usage_type) 추가
한퓨어 엑셀:
- ExcelProcessor에 hanpure 형식 자동 감지 및 처리 추가
- 옵션항목에서 중량 파싱 (600g*5개 → 3000g 등)
- 주문번호에서 입고일 추출, ingredient_code 직접 활용

조제 용도 구분:
- compounds.usage_type 컬럼 추가 (SALE/SELF_USE/SAMPLE/DISPOSAL)
- 조제 실행 시 용도 선택 드롭다운
- 조제 목록에서 용도 뱃지 클릭으로 사후 변경 가능
- 비판매 용도 시 sell_price_total=0, 매출 통계 제외
- PUT /api/compounds/:id/usage-type API 추가
- 용도 구분 설계 문서 (docs/조제_용도구분_usage_type.md)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:34:10 +00:00
50883a6a84 feat: 100처방 구성약재 수 표시, 등록 여부 백엔드 판정, 이름매칭 개선
- official_formulas API에 ingredient_count 추가 (LEFT JOIN COUNT)
- 등록 여부를 백엔드에서 판정 (official_formula_id FK 1차 + 이름 포함 매칭 fallback)
- 내 처방 100처방 뱃지 매칭: startsWith → includes 변경
- 100처방 목록에 구성약재 수 뱃지 컬럼 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:41:40 +00:00
1679f75d33 feat: 100처방 UI, 처방 가감 표시, 어울림 스타일링
- 처방 관리 페이지에 100처방 원방 마스터 섹션 추가 (검색 포함)
- 100처방 상세 모달 (구성약재, 참고자료 편집, 내 처방으로 등록)
- 내 처방 목록에 100처방 뱃지 및 가감 정보 표시
  - 변경: 파란 뱃지, 추가: 초록 뱃지, 제거: 빨간 뱃지
  - 원방 그대로: 회색 뱃지
- "어울림" 접두어 초록색 볼드 스타일링
- stock_ledger에 RETURN(반환)/DISCARD(폐기) 한글 라벨 추가
- 수동입고 원산지 드롭다운 변경, 재고 상세 유통기한 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:15:44 +00:00
3a39951fdc feat: 수동입고 기능 구현 및 입고일 날짜 포맷 버그 수정
- 수동입고 API (POST /api/purchase-receipts/manual) 추가
- 수동입고 모달 UI 구현 (도매상 선택, 품목 동적 추가, 금액 자동계산)
- 도매상 등록 모달 z-index 처리 (수동입고 모달 위에 표시)
- Excel 입고 시 receipt_date 튜플/대시 없는 날짜 포맷 정규화
- inventory_lots에 lot_number, expiry_date 저장 누락 수정
- CLAUDE.md 추가 (lot_id vs lot_number 구분 가이드)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 07:34:56 +00:00
3d13c0b1f3 feat: 전화번호/주민번호 포맷팅 및 대시보드 매출 통계 추가
- 전화번호 포맷팅 (010-1234-5678 형식) 전역 적용
- 주민번호 마스킹 포맷팅 (980520-1****** 형식)
- 대시보드에 총 마일리지, 이번달 매출, 마진, 마진율 통계 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 06:41:28 +00:00
605db69daa fix: 판매 모달에서 마일리지 표시 오류 수정
- patient_id를 통한 직접 조회로 변경
- /api/patients/search 엔드포인트 추가
- 판매 버튼에 patient_id 데이터 속성 추가
- loadPatientMileage 함수 개선 (patient_id 기반 조회)

이제 박주호 회원의 50,000 마일리지가 판매 모달에서 정상 표시됨

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 06:32:31 +00:00
3f96b286d3 fix: 환자 편집 버튼 기능 수정
- 환자 편집 버튼 클릭 이벤트 핸들러 추가
- 편집 모드에서 환자 정보 불러오기 구현
- 마일리지 정보 표시 (현재 잔액, 총 적립, 총 사용)
- 환자 정보 수정 API 연동 (PUT 메소드)
- API에 마일리지 정보 포함하도록 수정
- 모달 닫힐 때 폼 초기화 처리

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 05:49:00 +00:00
ee15d8e45e feat: 회원 관리 페이지에 마일리지 표시 추가
- 환자 목록에 마일리지 잔액 컬럼 추가
- 마일리지가 있는 회원은 돼지저금통 아이콘 표시
- 환자 편집 모달에 마일리지 관리 섹션 추가
  - 현재 잔액, 총 적립, 총 사용 표시
  - 마일리지 적립/차감 버튼 (추후 구현 예정)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 05:44:34 +00:00
f3f1efd8c2 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>
2026-02-18 05:42:29 +00:00
ad9ac396e2 chore: 개발 파일 정리 및 구조화
- 개발/테스트 스크립트를 dev_scripts/ 폴더로 이동
- 스크린샷을 screenshots/ 폴더로 이동
- 백업 파일 보존 (.backup)
- 처방 관련 추가 스크립트 포함

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 04:44:48 +00:00
124bc5eaf8 feat: 처방 주요 효능(efficacy) 필드 추가 및 UI 개선
- DB: formulas 테이블에 efficacy 칼럼 추가
- API: 처방 생성/수정/조회 시 efficacy 필드 처리
- UI: 처방 등록/수정 모달에 주요 효능 입력 필드 추가
- UI: 처방 상세 화면에 주요 효능 표시
- 기존 처방들의 주요 효능 데이터 입력 완료

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 04:39:05 +00:00
3f4b9c816a fix: 로트 배분 모달 필요량 0 표시 버그 수정
문제:
- 원산지 선택에서 "수동 배분" 선택 시 필요량이 0으로 표시
- loadOriginOptions 함수 호출 시점의 requiredQty를 그대로 사용

해결:
- 모달 열기 시점에 현재 행의 실제 필요량 재계산
- gramsPerCheop × cheopTotal로 실시간 계산
- 디버깅 로그 추가로 값 확인 가능

이제 첩수나 용량이 변경된 후에도 정확한 필요량이 모달에 표시됩니다.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 02:23:37 +00:00
0f40cdfba7 feat: 복합 로트 사용 기능 구현 (수동 로트 배분)
## 구현 내용

### 1. 백엔드 (app.py)
- 수동 로트 배분 지원 (lot_assignments 배열 처리)
- 각 로트별 지정 수량만큼 재고 차감
- 검증: 배분 합계 확인, 재고 충분 확인
- compound_consumptions 테이블에 각 로트별 소비 기록

### 2. 프론트엔드 (app.js, index.html)
- 로트 배분 모달 UI 구현
  - 로트별 재고, 단가 표시
  - 수동 입력 및 자동 배분 기능
  - 실시간 합계 계산 및 검증
- 원산지 선택에 "수동 배분" 옵션 추가 (로트 2개 이상 시)
- 조제 저장 시 lot_assignments 포함

### 3. 테스트
- 테스트용 당귀 로트 추가 (한국산)
- E2E 테스트 성공
  - 당귀 100g을 2개 로트(중국산 60g + 한국산 40g)로 배분
  - 각 로트별 재고 정확히 차감
  - 소비 내역 올바르게 기록

## 장점
- DB 스키마 변경 없음
- 기존 자동 선택과 호환
- 재고 부족 시 여러 로트 조합 가능
- 원가 최적화 가능

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 02:16:02 +00:00
6ad8bac5c2 fix: 커스텀 처방 감지 로직 개선 및 기존 데이터 업데이트
- 문제: ingredient_code 기준 비교 누락으로 인삼 제거가 감지되지 않음
  - 인삼(3400H1AHM)은 herb_items에 없어서 herb_item_id 매핑 실패
  - 원 처방에만 있고 실제 재고가 없는 약재 처리 불가

- 해결: ingredient_code 기준 비교 로직 추가
  - original_by_code 딕셔너리로 원 처방 구성 저장
  - actual_by_code 딕셔너리로 실제 조제 구성 저장
  - 제거된 약재를 ingredient_code 기준으로 감지

- 조제 상세 모달에 가감방 표시 추가
  - 처방명 옆에 "가감" 뱃지 표시
  - 변경 내용 요약 표시

- 기존 데이터 업데이트 스크립트 추가
  - 십전대보탕에서 인삼 제거 감지 성공
  - compound #4를 가감방으로 정상 업데이트

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 01:38:23 +00:00
1441c01fb4 feat: 실시간 커스텀 처방(가감방) 감지 시스템 구현
- 프론트엔드: 조제 시 실시간 커스텀 처방 감지
  - 처방 선택 시 원래 구성 약재 저장
  - 약재 추가/삭제/변경 시 즉시 감지
  - 가감방 뱃지 및 변경 내용 표시

- 백엔드: 커스텀 처방 자동 감지 및 저장
  - compounds 테이블에 커스텀 관련 필드 추가
  - 조제 시 원 처방과 비교하여 변경사항 자동 감지
  - 커스텀 처방 정보 저장 (추가/제거/변경된 약재)

- 환자 조제 내역에 커스텀 처방 표시
  - 가감방 뱃지 표시
  - 변경 내용 상세 표시

- DB 마이그레이션 스크립트 추가
  - is_custom, custom_summary, custom_type 필드 추가
  - compound_ingredients에 modification_type, original_grams 필드 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 01:28:44 +00:00
490553881f feat: UI에 display_name 및 variant 정보 표시
- 입고 상세 모달에 display_name과 variant 뱃지 표시
- 재고 상세 모달에 품명 컬럼 추가
- 조제 시 원산지 선택에 display_name 표시
- 형태, 가공, 등급 정보를 색상별 뱃지로 구분

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-16 16:05:31 +00:00
0bf0772864 fix: 제품 선택 드롭다운에서 마스터 약재명 표시
- /api/herbs/by-ingredient API에서 마스터 약재명(herb_masters) 조회 추가
- 제품별 개별명(신흥인삼) 대신 통일된 성분명(인삼) 표시
- product_name 필드에 원래 제품명 보존, herb_name에 마스터명 제공
- 프론트엔드에서 약재명 [회사명] (재고) 형식으로 표시

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 18:38:08 +00:00
a4861dc1b8 fix: 조제 관리 약재 추가 시 마스터 약재명 표시 및 2단계 선택 구조 개선
- 약재 추가 드롭다운에서 제품명 대신 마스터 약재명 표시
- /api/herbs/masters 엔드포인트 사용하여 ingredient_code 기반 약재 목록 로드
- /api/herbs/by-ingredient/<code> 엔드포인트 추가 (제품 목록 조회)
- 2단계 선택 구조: 약재(마스터) → 제품 → 원산지/롯트
- 기존 처방 약재와 새로 추가하는 약재의 테이블 구조 통일 (6칼럼)
- 원산지 선택 칼럼에 제품/원산지 드롭다운 함께 표시

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 18:31:15 +00:00
55974423ea feat: 조제 화면에 2단계 선택 시스템 구현
- 1단계: 제품 선택 (같은 주성분의 여러 제품 중 선택)
- 2단계: 원산지/로트 선택 (선택한 제품의 원산지별 로트 중 선택)
- formula_ingredients API 응답 구조 변경에 따른 프론트엔드 수정
  - available_products 배열 기반 렌더링
  - 제품 선택 드롭다운과 원산지 선택 드롭다운 분리
  - 제품 변경 시 원산지/로트 옵션 동적 로드

예시:
- 인삼 → 신흥인삼 선택 → [한국산|중국산] 선택 가능
- 인삼 → 세화인삼 선택 → [한국산|미국산] 선택 가능
2026-02-15 17:46:04 +00:00
041d1d81c4 feat: 환자 처방 내역에서 조제 상세 정보 인라인 펼침 기능 추가
- 환자 처방 내역 모달에서 처방 행 클릭 시 상세 정보 펼침
- 중첩 모달 문제 해결을 위해 인라인 표시 방식으로 변경
- 구성 약재 정보 테이블 표시 (약재명, 보험코드, 첩당용량, 총용량)
- 재고 소비 내역 테이블 표시 (약재명, 원산지, 도매상, 사용량, 단가, 원가)
- 총 원가 자동 계산 및 표시
- chevron 아이콘으로 펼침/접힘 상태 표시
- 다른 행 클릭 시 자동으로 이전 행 닫기

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:54:22 +00:00
83f9f10f3d fix: 환자 처방 내역 조회 API 응답 형식 수정
- API 응답에서 'data' 대신 'compounds' 사용하도록 수정
- 에러 방지를 위해 기본값 빈 배열 설정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:48:03 +00:00
45672a125f feat: 환자 처방 내역 조회 기능 추가
- 환자 목록에 처방 횟수 표시 (배지)
- 환자별 처방 내역 조회 버튼 추가
- 환자 처방 내역 모달 추가 (통계 + 상세 내역)
  - 총 처방 횟수, 최근 방문일, 총 제수, 총 처방비
  - 전체 처방 내역 테이블 (조제일, 처방명, 상태 등)
  - 각 처방의 상세 보기 기능 연동
- 환자 개별 조회 API 엔드포인트 추가 (GET /api/patients/<id>)
- 환자 편집 버튼 UI 추가 (기능 준비)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:45:21 +00:00
724af5000a feat: 재고 보정 및 보정 내역 조회 기능 추가
- 재고 보정 모달 UI 추가 (약재, 로트, 수량 관리)
- 재고 보정 내역 조회 모달 추가
- 재고 보정 상세 조회 모달 추가
- 자동 델타 계산 기능 (보정 전/후 비교)
- 로트별 재고 선택 및 원산지별 그룹화
- 보정 유형: 감모/손실, 발견, 재고조사, 파손, 유통기한 경과
- API 데이터 형식 수정 (items → details)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:39:03 +00:00
b58e46f8fd fix: 대시보드 최근 조제 내역 표시 추가
## 개선사항
- 대시보드에 최근 조제 내역 5건 표시
- 조제일, 환자명, 처방명, 제수, 파우치, 상태 표시
- 상태별 배지 색상 구분
  - 조제완료: 녹색
  - 출고완료: 파란색
  - 취소: 빨간색

이제 대시보드에서 오늘 조제 수와 최근 조제 내역을 한눈에 확인 가능!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:21:53 +00:00
91ebfc2984 fix: 재고 보정 메뉴 추가 및 대시보드 오늘 조제 카운트 수정
## UI 개선
- 재고 현황 페이지에 "재고 보정" 버튼 추가
- 입출고 원장 옆에 배치

## 대시보드 수정
- 오늘 조제 카운트 실제 데이터 표시
- compounds API에서 오늘 날짜 필터링

## 위치
- 재고 보정: 재고 현황 > 재고 보정 버튼
- 대시보드 오늘 조제: 정상 작동

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:21:24 +00:00
1826ea5ca4 feat: 재고 보정 시스템 구현
## 재고 보정 기능
- 재고 보정 테이블 추가 (stock_adjustments, stock_adjustment_details)
- 보정 타입: LOSS(감모), FOUND(발견), RECOUNT(재고조사), DAMAGE(파손), EXPIRE(유통기한)
- 보정 번호 자동 생성: ADJ-YYYYMMDD-XXXX

## API 엔드포인트
- GET /api/stock-adjustments - 보정 내역 조회
- GET /api/stock-adjustments/<id> - 보정 상세 조회
- POST /api/stock-adjustments - 보정 생성

## 재고 원장 연동
- 보정 내역이 stock_ledger에 자동 기록 (ADJUST 타입)
- 입출고 원장에서 보정 내역 필터링 가능
- 참고번호: ADJ-20260215-0001

## 사용자 추적
- created_by 필드로 보정 담당자 기록
- 향후 계정 시스템 연동 준비

한약재 loss 관리 및 재고조사 기능 완비!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:19:18 +00:00
6de812cfe6 fix: 입출고 원장 필터 기능 수정
## 버그 수정
- 약재 필터: 선택한 약재의 입출고 내역만 표시 (API 재호출)
- 타입 필터: 입고/출고/전체 필터링 (클라이언트 사이드)
- 필터 조합 가능 (약재 선택 후 입고만/출고만 보기)

## 구현 방식
- 원본 데이터를 currentLedgerData에 저장
- 타입 필터 변경시 저장된 데이터에서 필터링
- 약재 필터 변경시 새로운 데이터 로드

이제 필터가 정상 작동합니다!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 12:13:50 +00:00
38838e5ecf feat: 처방 관리 및 재고 원장 시스템 구현
## 처방 관리 (조제) 기능
- 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>
2026-02-15 11:21:20 +00:00
8f2823e6df refactor: 주성분코드 기반 데이터베이스 리팩토링 완료
DB 구조 개선:
- 454개 주성분코드 기반 herb_masters 테이블 생성
- 53,769개 제품 데이터를 herb_products 테이블에 임포트
- 128개 업체 정보를 product_companies 테이블에 추가
- 기존 herb_items에 ingredient_code 매핑 (100% 완료)

UI/API 개선:
- 급여 약재 보유 현황 표시 (28/454 = 6.2%)
- 재고 현황에 프로그레스 바 추가
- 주성분코드 기준 통계 API 추가

문서화:
- 데이터베이스 리팩토링 제안서 작성
- 리팩토링 결과 보고서 작성
- 백업 정보 문서화

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 10:34:32 +00:00
c834b5625f feat: 직접조제 및 원산지별 재고 관리 기능 강화
API 개선:
- /api/herbs, /api/inventory/summary에 효능 태그 추가
- 조제 시 원산지 선택 처리 로직 추가
- 원산지별 FIFO 또는 자동 선택 (저렴한 것부터)

UI 개선:
- 재고 목록에 효능 태그 표시 (녹색 배지)
- 처방 선택에 "직접조제" 옵션 추가
- 조제 시 원산지 선택 드롭다운 추가
- JavaScript 주석 블록 오류 수정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 09:55:22 +00:00
40be340a63 feat: 입고장 관리 기능 추가
 새로운 기능
- 입고장 목록 조회 (날짜/공급업체 필터링)
- 입고장 상세 보기 (모달 팝업)
- 입고장 삭제 (재고 미사용시만 가능)
- 입고장 라인별 수정 API

📊 화면 구성
1. 입고장 목록 테이블
   - 입고일, 공급업체, 품목수, 총수량, 총금액
   - 상세보기, 삭제 버튼

2. 입고장 필터링
   - 시작일/종료일 선택
   - 공급업체별 조회

🔧 백엔드 API
- GET /api/purchase-receipts - 입고장 목록
- GET /api/purchase-receipts/<id> - 입고장 상세
- PUT /api/purchase-receipts/<id>/lines/<line_id> - 라인 수정
- DELETE /api/purchase-receipts/<id> - 입고장 삭제

🛡️ 안전장치
- 이미 조제에 사용된 재고는 수정/삭제 불가
- 재고 원장에 모든 변동사항 기록

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 08:26:51 +00:00
2fddc89bca 초기 커밋: 한약 재고관리 시스템
 주요 기능
- 환자 관리: 환자 등록 및 조회 (이름, 전화번호, 주민번호, 성별)
- 입고 관리: Excel 파일 업로드로 대량 입고 처리
- 처방 관리: 약속 처방 템플릿 등록 및 관리
- 조제 관리: 처방 기반 조제 및 약재 가감 기능
- 재고 관리: 실시간 재고 현황 및 로트별 관리

🛠️ 기술 스택
- Backend: Flask (Python 웹 프레임워크)
- Database: SQLite (경량 관계형 데이터베이스)
- Frontend: Bootstrap + jQuery
- Excel 처리: pandas + openpyxl

🔧 핵심 개념
- 1제 = 20첩 = 30파우치 (기본값)
- FIFO 방식 재고 차감
- 로트별 원산지/단가 관리
- 정확한 조제 원가 계산

📁 프로젝트 구조
- app.py: Flask 백엔드 서버
- database/: 데이터베이스 스키마 및 파일
- templates/: HTML 템플릿
- static/: JavaScript 및 CSS
- sample/: 샘플 Excel 파일

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-15 07:57:40 +00:00