From f6377a9d5c992748ab0680311cac4a83ab0fd064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B2=AD=EC=B6=98=EC=95=BD=EA=B5=AD?= Date: Thu, 2 Apr 2026 15:42:31 +0900 Subject: [PATCH] =?UTF-8?q?feat(V1):=20=EC=84=A0=EB=B3=84=EA=B8=89?= =?UTF-8?q?=EC=97=AC=20=EC=BB=AC=EB=9F=BC=20=EC=B6=94=EA=B0=80=20(QT-POS?= =?UTF-8?q?=20=EB=8F=99=EA=B8=B0=ED=99=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SE_PRICE_P (선별급여약가) 컬럼 추가 - SE_PRICE_C (선별급여 보험부담) 컬럼 추가 - 청구액 = PRICE_C + SE_PRICE_C - 비급여조제료 계산에서 SE_PRICE_P 제외 --- __pycache__/config.cpython-312.pyc | Bin 807 -> 833 bytes queries/__pycache__/__init__.cpython-312.pyc | Bin 141 -> 167 bytes .../v1_pharmit3000.cpython-312.pyc | Bin 8475 -> 8500 bytes .../__pycache__/v2_pmplus20.cpython-312.pyc | Bin 10308 -> 10335 bytes queries/v1_pharmit3000.py | 17 +++++++++++++---- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/__pycache__/config.cpython-312.pyc b/__pycache__/config.cpython-312.pyc index 596e410b9d7a901dc883a3898b2bfc3ba24c924f..344f6e5da975626fd339945d793a33de5dec7df9 100644 GIT binary patch delta 90 zcmZ3^c94ztG%qg~0}$+UKbvW~kvE9R{;MUB>uePhTAW%`9P?(=+Be%~yqUW9)z-B! t#rdU0$*C~~8Hq)?iOH3^#U+U)#kz?FnK8-vd1;yHdIgoYCbuvx1^@vHB$faG delta 64 zcmX@eww#UkG%qg~0}xm!oy}C*$Q#6@`b$Z_C_leMzaS&AC^s>=Qn$Dyv7}fxu^>}F SIX^EgGhMHs^4H{fOp5_|dlozZ diff --git a/queries/__pycache__/__init__.cpython-312.pyc b/queries/__pycache__/__init__.cpython-312.pyc index 2d5920d9e8734f17594f8283d785cd7adeef72a5..18235de2e0c3697167640b6b50757cb2be2d759d 100644 GIT binary patch delta 95 zcmeBWT+YaKnwOW00SJCMPvkQ8{OSy3I$Onr7N-^!$Gq9J_RY2#Z>H{jwRLSwaeir0 xa%xOLMq*KJVsfQ!aYy8r+H delta 169 zcmdnuG~0>qG%qg~0}yPqJe#>*awFeqX60W-`bGKqCHe&!iAA}I$(6drC5a`)x`_pu z`h}&bMVYC^`kTdARx&X*Og_M7V0KZ__!^(d4CRjE35MNe7x+vX+=0Xmebe>zE9)=o zJ6z*-T*2JqGDUbo_>APsf=X9;lrL~QZq{Kp<70e2Iazcj_Xi;cKB3PHj*P6vn;FHd Tm|4IqJIP{p#$S^+DKr59EG#|_MgRZ+Lpoelb7gXKT59 dict: m.PRICE_P, -- 진짜 수납액: PRICE_N + 선별급여/상한제초과 (PS_Main_Sub) (m.PRICE_N + ISNULL(s.SE_PRICE_P, 0)) AS PRICE_N, + -- 선별급여 (QT-POS 동기화) + ISNULL(s.SE_PRICE_P, 0) AS SE_PRICE_P, + ISNULL(s.SE_PRICE_C, 0) AS SE_PRICE_C, ISNULL(n.Appr_Gubun, '') AS Appr_Gubun, ISNULL(n.nAPPROVAL_NUM, '') AS nAPPROVAL_NUM FROM PM_PRES..PS_MAIN m @@ -103,6 +106,8 @@ def get_sales_stats(date_from: str, date_to: str) -> dict: price_c = int(r.get('PRICE_C') or 0) price_p = int(r.get('PRICE_P') or 0) price_n = int(r.get('PRICE_N') or 0) + se_price_p = int(r.get('SE_PRICE_P') or 0) + se_price_c = int(r.get('SE_PRICE_C') or 0) appr_gubun = str(r.get('Appr_Gubun') or '') order_name = str(r.get('OrderName') or '기타') panum = str(r.get('PaNum') or '') @@ -116,10 +121,13 @@ def get_sales_stats(date_from: str, date_to: str) -> dict: nonins_drug = drug_t4 else: ins_prep, ins_drug = s_prep, price_t - s_prep - nonins_prep = max(0, price_n - drug_t4 - price_p) if drug_t4 > 0 else 0 + nonins_prep = max(0, price_n - drug_t4 - se_price_p - price_p) if drug_t4 > 0 else 0 nonins_drug = drug_t4 - args = (sales_amt, ins_prep, ins_drug, nonins_prep, nonins_drug, 0, price_c, price_p, price_n) + # 청구액 = PRICE_C + SE_PRICE_C (선별급여 보험부담분) + claim_amt = price_c + se_price_c + + args = (sales_amt, ins_prep, ins_drug, nonins_prep, nonins_drug, 0, claim_amt, price_p, price_n, se_price_p) # 전체 _add(result['total'], *args) @@ -167,11 +175,11 @@ def get_sales_stats(date_from: str, date_to: str) -> dict: def _empty_row(): return dict(cnt=0, sales_amt=0, ins_prep=0, ins_drug=0, nonins_prep=0, nonins_drug=0, nonins_margin=0, - claim_amt=0, copay=0, receipt=0) + claim_amt=0, copay=0, receipt=0, se_price_p=0) def _add(d, sales_amt, ins_prep, ins_drug, nonins_prep, nonins_drug, - nonins_margin, claim_amt, copay, receipt): + nonins_margin, claim_amt, copay, receipt, se_price_p=0): d['cnt'] += 1 d['sales_amt'] += sales_amt d['ins_prep'] += ins_prep @@ -182,6 +190,7 @@ def _add(d, sales_amt, ins_prep, ins_drug, nonins_prep, nonins_drug, d['claim_amt'] += claim_amt d['copay'] += copay d['receipt'] += receipt + d['se_price_p'] += se_price_p def _calc_age(panum: str, ref_date: date) -> int | None: