thug0bin
91f8dea5b4
feat(재고): 약품 더블클릭 시 입고이력 모달 추가
...
- 새 API: GET /api/drugs/<drug_code>/purchase-history
- WH_sub + WH_main + PM_BASE.CD_custom 조인
- 도매상명, 입고일, 수량, 단가, 전화번호 반환
- admin_products.html 업데이트:
- tr ondblclick → openPurchaseModal()
- 입고이력 모달 UI/스타일 추가
- 도매상 전화번호 클릭 시 복사 기능
- 결과 카운트 옆에 더블클릭 힌트 추가
- 기타 onclick에 event.stopPropagation() 추가 (충돌 방지)
2026-03-08 10:33:21 +09:00
thug0bin
d6cf4c2cc1
feat: 반품관리 페이지 추가
2026-03-08 10:03:42 +09:00
thug0bin
09948c234f
feat(rx-usage): 선호 도매상 컬럼 추가
...
- 테이블에 '선호도매상' 컬럼 추가
- 입고장 기반 최다/최근 주문 도매상 표시
- API: /api/order/drugs/preferred-vendors 연동
- Python 스크립트로 안전하게 수정
2026-03-07 23:12:42 +09:00
thug0bin
a23e4bad43
feat: 약품별 선호 도매상 API + delivery_schedules 테이블
...
- GET /api/order/drug/{code}/preferred-vendor: 약품별 선호 도매상 조회
- POST /api/order/drugs/preferred-vendors: 일괄 조회
- MSSQL 입고장 데이터 활용 (WH_main, WH_sub)
- 최근 주문 도매상 + 최다 주문 도매상 반환
DB:
- delivery_schedules 테이블 생성 (orders.db)
- 도매상별 주문 마감시간/배송 도착시간 관리
2026-03-07 22:49:12 +09:00
thug0bin
1088720081
fix(baekje): /orders/summary-by-kd에서 새 API 사용
...
- get_order_list(include_details=True)로 한 번에 조회
- 접수 상태(확정 전)도 집계에 포함
- pending_count, approved_count 응답에 추가
2026-03-07 22:20:15 +09:00
thug0bin
497aeee75f
feat(baekje): order_api에서 선별 주문 사용
...
- submit_order_selective로 기존 장바구니 보존
- 지오영/수인과 동일한 방식 적용
2026-03-07 21:42:15 +09:00
thug0bin
0ae4ae66f0
fix(baekje): 장바구니 담기 시 internal_code 사용하도록 수정
...
- kd_code 대신 internal_code로 장바구니 추가
- internal_code 없으면 검색 후 규격 매칭으로 찾기
- 백제 장바구니 담기 정상 작동 확인
2026-03-07 21:29:00 +09:00
thug0bin
232a77006a
fix: 지오영 주문량 집계 시 취소/삭제 상태 제외
...
- status에 '취소' 또는 '삭제' 포함 시 집계 제외
- 예: '취소(삭제)' 상태
2026-03-07 18:14:00 +09:00
thug0bin
20fc528c2b
fix: 조회 버튼 클릭 시 주문량도 갱신
2026-03-07 18:10:11 +09:00
thug0bin
0f69b50c49
fix: D(도즈) 단위는 boxes=units로 처리 (나잘스프레이 등)
2026-03-07 17:49:03 +09:00
thug0bin
dc2a992c12
fix: 규격 파싱 - T/C/P/D 수량 단위 우선, mg/ml 용량 단위 무시
...
- parse_spec 함수 개선: product_name에서도 수량 단위 추출
- 예: '스틸녹스정10mg(PTP) 14T' → spec='10mg'이어도 14T에서 14 추출
2026-03-07 17:31:18 +09:00
thug0bin
21c8124811
fix: 지오영 summary-by-kd에 KD코드 enrich 추가
2026-03-07 17:08:18 +09:00
thug0bin
33c6cd2d5c
feat: 처방약품 사용량 페이지 - 주문량 지오영+수인 합산
...
- GET /api/geoyoung/orders/summary-by-kd 추가
- admin_rx_usage.html: 두 도매상 병렬 조회 후 합산 표시
- 콘솔에 도매상별 주문량 로깅
2026-03-07 17:07:25 +09:00
thug0bin
e5744e4f0f
feat(geoyoung): 주문 조회 API 엔드포인트 추가
...
- GET /api/geoyoung/order-list: 기간별 주문 목록
- GET /api/geoyoung/order-detail/<order_num>: 주문 상세
- GET /api/geoyoung/order-today: 오늘 주문 요약
수인약품 API와 동일한 엔드포인트 구조
2026-03-07 17:01:22 +09:00
thug0bin
1720c108b5
fix: 상세 모달 날짜도 UTC → KST 변환
2026-03-07 11:40:05 +09:00
thug0bin
d842c776c9
fix: 날짜 표시 UTC → KST 변환 (admin 페이지들)
2026-03-07 11:38:37 +09:00
thug0bin
c1fae04344
docs: PAAI 트러블슈팅 기록 (2026-03-07)
2026-03-07 11:06:07 +09:00
thug0bin
b6d0fadb3c
fix: OTC 라벨 모듈 import 경로 수정 (PM2 환경 호환)
2026-03-07 10:44:44 +09:00
thug0bin
ee300f80ca
feat: 소수 환자 약품 뱃지 표시
...
- 1년간 3명 이하 환자만 사용하는 약품에 환자 이름 뱃지 표시
- 조회 기간 내 사용한 환자는 핑크색으로 강조
- 매출액 컬럼명 변경 (약가 → 매출액)
- SUM(DRUPRICE)로 매출액 계산
2026-03-07 00:43:02 +09:00
thug0bin
846883cbfa
feat: 주문 모달 한도/매출 표시 및 UI 개선
...
- 도매상 한도 API 추가 (wholesaler_limits 테이블)
- 다중 도매상 모달: 월 한도 + 실제 월 매출 표시
- 주문 후 예상 사용량 계산 및 경고 표시
- 이모지 대신 로고 이미지 사용
- 약가 → 매출액 헤더 변경
- 매출액 계산: SUM(DRUPRICE)
2026-03-07 00:24:32 +09:00
thug0bin
29597d55fa
feat: 주문 모달에 금액 표시 추가
2026-03-07 00:01:02 +09:00
thug0bin
442815b65e
feat(rx-usage): 주문 모달 개선 - 버튼 3분할 + 총액 표시
...
- 🧪 테스트 / 🛒 장바구니만 / 🚀 즉시주문 버튼 분리
- cart_only 파라미터로 장바구니만 담기 기능 지원
- 주문 확인 모달에 총액 표시 추가
- 모달 너비 확장 (600px/650px)
2026-03-06 23:47:25 +09:00
thug0bin
a672c7a2a0
feat(order): 지오영/수인 선택적 주문 + 장바구니 보존 기능
...
- internal_code DB 저장 → 프론트에서 선택한 제품 그대로 주문
- 기존 장바구니 백업/복구로 사용자 장바구니 보존
- 수인약품 submit_order() 수정 (체크박스 제외 방식)
- 테스트 파일 정리 및 문서 추가
2026-03-06 23:26:44 +09:00
thug0bin
f48e657e12
fix(order): 지오영 internal_code 있으면 검색 스킵
...
- 프론트에서 이미 선택한 품목의 internal_code 사용
- 검색 없이 바로 add_to_cart 호출
- 재고 불일치 문제 해결
2026-03-06 22:19:48 +09:00
thug0bin
268f5bce8f
feat(order): 지오영 선별 주문 구현 완료
...
- full_order(auto_confirm=False)로 장바구니에 담기
- internal_code 사용 (product_code 아님)
- submit_order_selective()로 선별 주문
- 기존 장바구니 품목 보존, 복원 완료
2026-03-06 22:15:09 +09:00
thug0bin
ad58cde952
fix(order): 지오영 quick_order 파라미터명 수정 (specification → spec)
2026-03-06 22:03:58 +09:00
thug0bin
760aea6f89
feat(order): 지오영 주문도 선별 주문 적용
...
- quick_order로 장바구니 담기 (auto_confirm 제거)
- submit_order_selective로 선별 주문
- 기존 품목 보존, 이번에 담은 것만 주문
2026-03-06 22:00:50 +09:00
thug0bin
be95f8b3d1
feat(order): 수인약품 선별 주문 및 rx-usage 주문 전송 개선
...
- order_api.py: 수인 주문 시 submit_order_selective() 사용 (기존 품목 보존)
- admin_rx_usage.html: cart_only=false로 변경 (장바구니+주문확정)
- 버튼 텍스트 변경: 장바구니 담기 → 주문 전송
2026-03-06 21:52:40 +09:00
thug0bin
5519f5ae62
feat: 도매상 잔고 모달에 월간 매출 추가
...
- 백제/지오영/수인 월간매출 API 라우트 추가
- 모달 UI: 잔고 + 월간 매출 동시 표시
- 총 주문액 / 총 미수금 요약 표시
2026-03-06 18:01:37 +09:00
thug0bin
4b2d934839
feat: 백제약품 월간 매출 API 라우트 추가
2026-03-06 17:57:06 +09:00
thug0bin
06c975ce34
fix: 백제약품 로고를 공식 SVG로 교체
2026-03-06 17:22:08 +09:00
thug0bin
ad0b55ee2d
feat: 도매상 설정 중앙 관리 시스템
...
- config/wholesalers.json: 도매상 정보 중앙 관리 (ID, 이름, 로고, 색상, API)
- config/__init__.py: Python 헬퍼 (get_wholesalers, get_wholesaler)
- wholesaler_config_api.py: /api/config/wholesalers 엔드포인트
- 백제약품 로고(favicon) 추가: logo_baekje.ico
- 잔고 모달에 로고 표시 기능 추가
2026-03-06 17:18:40 +09:00
thug0bin
2d09f139ca
feat: Rx 사용량 페이지에 도매상 잔고 조회 버튼 추가
...
- 💰 도매상 잔고 버튼 (검색 바 옆)
- 모달로 백제/지오영/수인 3개 도매상 잔고 표시
- 총 미수금 합계 표시
- 새로고침 기능
2026-03-06 16:26:26 +09:00
thug0bin
1829c3efa7
feat: 지오영/수인 잔고 API 엔드포인트 추가
...
- GET /api/geoyoung/balance
- GET /api/sooin/balance
2026-03-06 16:15:23 +09:00
thug0bin
241e65aaf1
feat: 백제약품 잔고 API 엔드포인트 추가
...
GET /api/baekje/balance - 잔고액 조회
2026-03-06 15:00:15 +09:00
thug0bin
ddba17ae08
feat: 처방 사용량 페이지에 약품 위치 표시
...
- rx-usage API에 CD_item_position.CD_NM_sale 조인 추가
- 제품코드 옆에 위치 배지 표시 (📍 A-1 형태)
- 인디고 색상 작은 배지로 UI 해치지 않게
2026-03-06 13:41:39 +09:00
thug0bin
055fad574d
feat: 백제약품 프론트엔드 완전 통합
...
- 도매상 재고 조회에 백제 추가
- searchBaekjeAPI 함수 추가
- renderWholesaleResults에 백제 섹션 추가
- addToCartFromWholesale에 백제 처리 추가
- executeOrder에 백제 도매상 필터 추가
- CSS 스타일 추가 (주황색 테마)
2026-03-06 13:18:29 +09:00
thug0bin
857a058691
feat: 백제약품 API 통합
...
- baekje_api.py: Flask Blueprint 추가
- order_api.py: submit_baekje_order 함수 추가
- admin_rx_usage.html: WHOLESALERS에 baekje 추가
- 환경변수: BAEKJE_USER_ID, BAEKJE_PASSWORD
URL: https://ibjp.co.kr (약국용 웹 주문 시스템)
2026-03-06 13:04:07 +09:00
thug0bin
78f6f21228
fix: 주문 확인 모달 도매상명 동적 변경
...
- orderConfirmWholesaler span 추가
- '지오영에 주문합니다' → '{도매상명}에 주문합니다' 동적 변경
2026-03-06 12:35:30 +09:00
thug0bin
f625a08091
refactor: 도매상 설정 중앙화 (WHOLESALERS 객체)
...
- WHOLESALERS 객체로 도매상 정보 일원화
- 향후 도매상 추가 시 객체에만 추가하면 됨
- 결과 모달에 도매상명, 아이콘, 색상 적용
- 단가 정보 결과에 표시
2026-03-06 12:29:11 +09:00
thug0bin
50455e63c7
feat: 수인약품 주문 dry-run 지원
...
- order_api.py: submit_sooin_order() 함수 추가
- admin_rx_usage.html: 도매상별 주문 분기 처리
- 수인/지오영 모두 dry-run 테스트 가능
- 여러 도매상 품목 있을 때 선택 모달
2026-03-06 12:24:15 +09:00
thug0bin
7dda385b7f
feat: 지오영 재고 조회 시 단가 표시
...
- geoyoung_api.py: include_price=True로 검색
- admin_rx_usage.html: 지오영 섹션에 단가 컬럼 추가
2026-03-06 12:18:38 +09:00
thug0bin
101dda2e41
feat: 도매상 로고 아이콘 적용 (이모지 → 실제 로고)
...
- 지오영: favicon.ico 사용
- 수인: 커스텀 SVG (보라색 '수' 아이콘)
- static/img/ 폴더에 로고 저장
2026-03-06 12:05:13 +09:00
thug0bin
19c70e42fb
feat: 더블클릭 시 지오영+수인 동시 재고 조회
...
- openWholesaleModal: 두 도매상 동시 API 호출
- Promise.all로 병렬 조회 (빠른 응답)
- 도매상별 섹션 구분 UI (지오영: 청록, 수인: 보라)
- 각 도매상별 담기 버튼
- 수인은 단가 정보도 표시
2026-03-06 11:59:13 +09:00
thug0bin
90d993156e
docs: 지오영 cancel/restore 문서 업데이트
2026-03-06 11:56:41 +09:00
thug0bin
ba38c05b93
feat: 지오영 cart/cancel, cart/restore 엔드포인트 추가
...
- POST /api/geoyoung/cart/cancel - 개별 삭제
- POST /api/geoyoung/cart/restore - NOT_SUPPORTED 응답
2026-03-06 11:56:17 +09:00
thug0bin
c1596a6d35
feat: 도매상 API 통합 및 스키마 업데이트
...
- wholesale 패키지 연동 (SooinSession, GeoYoungSession)
- Flask Blueprint 분리 (sooin_api.py, geoyoung_api.py)
- order_context 스키마 확장 (wholesaler_id, internal_code 등)
- 수인약품 개별 취소 기능 (cancel_item, restore_item)
- 문서 추가: WHOLESALE_API_INTEGRATION.md
- 테스트 스크립트들
2026-03-06 11:50:46 +09:00
thug0bin
e84eda928a
fix: dry run에서 재고 있는 제품 우선 선택하도록 수정
...
- 동일 보험코드에 여러 제품 있을 때 첫 번째 매칭 선택하던 버그
- 재고 0인 제품 선택되어 dry run 실패하던 문제 해결
- matched_with_stock 우선, 없으면 matched_any 사용
2026-03-06 08:57:02 +09:00
thug0bin
0460085791
feat: 전문의약품(Rx) 사용량 조회 페이지 + OTC 사용량 페이지 추가
...
- /admin/rx-usage: 전문의약품 사용량 조회 (현재고 포함)
- /admin/usage: OTC 일반약 사용량 조회
- /api/rx-usage: 처방전 데이터 기반 품목별 집계 API
- /api/usage: POS 판매 데이터 기반 품목별 집계 API
- 현재고: IM_total.IM_QT_sale_debit 사용
- 장바구니 + 주문서 생성 기능
- 세로모니터 대응 미디어쿼리 포함
2026-03-06 01:07:04 +09:00
thug0bin
0d9f4c9a23
fix: 이전 처방에서도 대체조제 원처방(PS_Type=9) 제외
...
- 현재 처방과 동일하게 PS_Type=9는 목록에서 제외
- 중복 처방처럼 보이는 문제 해결
2026-03-05 20:44:04 +09:00