fix(v1): QT-POS sales_stats_dialog.py 와 1:1 동기화

pharmon-web/sales_stats_dialog.py 의 _query / _build_margin_cache
로직을 그대로 이식하여 QT-POS 와 stats-api 의 통계 수치 불일치
문제를 해결.

주요 변경:
- CD_SUNAB LEFT JOIN → OUTER APPLY TOP 1
  (1:N 곱증으로 행 중복되어 매출 이중계산되던 버그 제거)
- PS_SUB_BOJO JOIN 추가 (보훈 GITA_GUBUN 세분화 지원)
- SELECT 확장: S_FASTMON, S_TEMP3, SE_BOHUN_C, DRUG_T1~T3,
  S_S_PHOL_0~3, SUGA_ZE_PRICE, GITA_GUBUN
- GPPOS2 공식으로 재작성
  sales_amt = PRICE_C + PRICE_P + S_FASTMON + S_TEMP3
            + SE_PRICE_C + SE_PRICE_P + SE_BOHUN_C
- 보훈(PreGubun='4') + GITA_GUBUN ∈ {1,2,3,4} → '4_1'~'4_4'
- 자동차보험 할증금액, 선별급여 청구액 (SE_PRICE_P*0.25) 반영
- 비급여 마진 캐시 (PS_SUB_PHARM × WH_sub/CD_GOODS)
- config.py: DB 서버 192.168.0.201 → 192.168.0.69 (테스트 서버)

2026-04-08 1/3 스크린샷 기준 QT-POS 와 1원 단위까지 수치 일치 확인.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
청춘약국
2026-04-08 20:53:46 +09:00
parent 34374c5626
commit ef23830a77
2 changed files with 253 additions and 95 deletions

View File

@@ -3,8 +3,10 @@
import os
# PharmIT3000 (v1)
# 테스트 서버: 192.168.0.69\PM2014 (pharmon-web/config.py 와 동일)
# live: 192.168.0.4 (읽기 전용) / 개발: 192.168.0.206
PHARMIT3000_CONFIG = {
'server': os.getenv('PHARMIT_SERVER', '192.168.0.201\\PM2014'),
'server': os.getenv('PHARMIT_SERVER', '192.168.0.69\\PM2014'),
'database': 'PM_PRES',
'username': os.getenv('PHARMIT_USER', 'sa'),
'password': os.getenv('PHARMIT_PASS', 'tmddls214!%('),