65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
import sys
|
|
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')
|
|
|
|
# 1. BaseCode가 있는 제품 수 확인
|
|
result = session.execute(text("""
|
|
SELECT
|
|
COUNT(*) as total,
|
|
SUM(CASE WHEN BaseCode IS NOT NULL AND BaseCode != '' THEN 1 ELSE 0 END) as with_basecode
|
|
FROM CD_GOODS
|
|
WHERE GoodsSelCode = 'B'
|
|
"""))
|
|
row = result.fetchone()
|
|
print(f'=== BaseCode 사용 현황 ===')
|
|
print(f'판매중 전체 제품: {row.total}개')
|
|
print(f'BaseCode 있는 제품: {row.with_basecode}개')
|
|
print()
|
|
|
|
# 2. BaseCode가 있는 제품 샘플 (최대 20개)
|
|
result2 = session.execute(text("""
|
|
SELECT TOP 20 DrugCode, GoodsName, BaseCode, POS_BOON
|
|
FROM CD_GOODS
|
|
WHERE GoodsSelCode = 'B'
|
|
AND BaseCode IS NOT NULL
|
|
AND BaseCode != ''
|
|
ORDER BY GoodsName
|
|
"""))
|
|
|
|
print('=== BaseCode 있는 제품 샘플 ===')
|
|
count = 0
|
|
for row in result2:
|
|
count += 1
|
|
print(f'{row.GoodsName}')
|
|
print(f' DrugCode: {row.DrugCode}')
|
|
print(f' BaseCode: {row.BaseCode}')
|
|
print(f' 분류: {row.POS_BOON}')
|
|
print()
|
|
|
|
if count == 0:
|
|
print('(BaseCode가 있는 제품이 없습니다)')
|
|
|
|
# 3. 분류별 BaseCode 사용 현황
|
|
print('=== 분류(POS_BOON)별 BaseCode 현황 ===')
|
|
result3 = session.execute(text("""
|
|
SELECT
|
|
POS_BOON,
|
|
COUNT(*) as total,
|
|
SUM(CASE WHEN BaseCode IS NOT NULL AND BaseCode != '' THEN 1 ELSE 0 END) as with_basecode
|
|
FROM CD_GOODS
|
|
WHERE GoodsSelCode = 'B'
|
|
GROUP BY POS_BOON
|
|
HAVING SUM(CASE WHEN BaseCode IS NOT NULL AND BaseCode != '' THEN 1 ELSE 0 END) > 0
|
|
ORDER BY with_basecode DESC
|
|
"""))
|
|
|
|
for row in result3:
|
|
print(f'분류 {row.POS_BOON}: {row.with_basecode}/{row.total}개')
|
|
|
|
session.close()
|