# -*- 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') print('=== 안텔민킹 (LB000003157) 바코드 전체 조회 ===\n') # 1. CD_SALEGOODS에서 같은 DrugCode로 여러 행? print('1. CD_SALEGOODS (DrugCode = LB000003157):') result = session.execute(text(""" SELECT DrugCode, GoodsName, BARCODE FROM CD_SALEGOODS WHERE DrugCode = 'LB000003157' """)) for row in result: print(f' {row.BARCODE}') # 2. 바코드 전용 테이블이 따로 있나? print('\n2. 바코드 관련 테이블에서 LB000003157 검색:') tables = [ 'CD_BARCODE', 'CD_Bundle', 'CD_ITEM_UNIT_MEMBER', 'CD_NameTag', 'BI_DRUG_MAPPING', 'PharmBridgeMapping' ] for tbl in tables: try: result = session.execute(text(f""" SELECT * FROM {tbl} WHERE DrugCode = 'LB000003157' OR DRUGCODE = 'LB000003157' """)) rows = list(result) if rows: print(f'\n ★ {tbl}: {len(rows)}개 발견!') for row in rows: print(f' {dict(row._mapping)}') except: pass # 3. 바코드 값으로 역검색 (APC) print('\n3. APC 0230237810109 검색 (전체 테이블):') apc = '0230237810109' for tbl in ['CD_GOODS', 'CD_SALEGOODS', 'CD_BARCODE', 'CD_Bundle', 'BI_DRUG_MAPPING', 'PharmBridgeMapping']: try: # 바코드 관련 컬럼 찾기 cols = session.execute(text(f""" SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{tbl}' AND COLUMN_NAME LIKE '%BARCODE%' """)) for col_row in cols: col = col_row.COLUMN_NAME result = session.execute(text(f""" SELECT * FROM {tbl} WHERE {col} = '{apc}' """)) rows = list(result) if rows: print(f' ★ {tbl}.{col}: {len(rows)}개!') for row in rows: print(f' {dict(row._mapping)}') except Exception as e: pass session.close()