pharmacy-pos-qr-system/backend/scripts/check_new_apc.py

83 lines
2.1 KiB
Python

# -*- coding: utf-8 -*-
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
sys.path.insert(0, 'c:\\Users\\청춘약국\\source\\pharmacy-pos-qr-system\\backend')
from db.dbsetup import get_db_session
from sqlalchemy import text
session = get_db_session('PM_DRUG')
apc = '0230237810109'
print(f'=== APC "{apc}" 검색 ===\n')
# 1. CD_GOODS에서 안텔민킹 확인
print('1. CD_GOODS (안텔민킹):')
result = session.execute(text("""
SELECT DrugCode, GoodsName, BARCODE, BaseCode
FROM CD_GOODS
WHERE DrugCode = 'LB000003157'
"""))
for row in result:
print(f' BARCODE: [{row.BARCODE}]')
# 2. CD_BARCODE에서 DRUGCODE로 검색
print('\n2. CD_BARCODE (DRUGCODE=LB000003157):')
result2 = session.execute(text("""
SELECT DRUGCODE, BARCODE, BASECODE, ETCNAME
FROM CD_BARCODE
WHERE DRUGCODE = 'LB000003157'
"""))
rows = list(result2)
if rows:
for row in rows:
print(f' BARCODE: {row.BARCODE}, BASECODE: {row.BASECODE}')
else:
print(' (없음)')
# 3. CD_BARCODE에서 APC 직접 검색
print(f'\n3. CD_BARCODE에서 BARCODE="{apc}":')
result3 = session.execute(text(f"""
SELECT DRUGCODE, BARCODE, BASECODE, ETCNAME
FROM CD_BARCODE
WHERE BARCODE = '{apc}'
"""))
rows = list(result3)
if rows:
for row in rows:
print(f' ★ 발견! DRUGCODE: {row.DRUGCODE}')
else:
print(' (없음)')
# 4. CD_GOODS에서 BARCODE로 검색
print(f'\n4. CD_GOODS에서 BARCODE="{apc}":')
result4 = session.execute(text(f"""
SELECT DrugCode, GoodsName, BARCODE
FROM CD_GOODS
WHERE BARCODE = '{apc}'
"""))
rows = list(result4)
if rows:
for row in rows:
print(f' ★ 발견! {row.DrugCode}: {row.GoodsName}')
else:
print(' (없음)')
# 5. 전체 DB에서 LIKE 검색
print(f'\n5. 전체 LIKE 검색:')
result5 = session.execute(text(f"""
SELECT DrugCode, GoodsName, BARCODE
FROM CD_GOODS
WHERE BARCODE LIKE '%{apc}%'
"""))
rows = list(result5)
if rows:
for row in rows:
print(f'{row.DrugCode}: BARCODE=[{row.BARCODE}]')
else:
print(' (없음)')
session.close()