feat: OTC 모달에 제품 썸네일 이미지 표시
- product_images.db에서 thumbnail_base64 조회
- drug_code로 이미지 매칭
- 이미지 없으면 💊 placeholder
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
|
||||
from flask import Blueprint, jsonify, request, render_template, send_file
|
||||
import pyodbc
|
||||
import sqlite3
|
||||
from pathlib import Path
|
||||
from datetime import datetime, date
|
||||
import logging
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
@@ -711,6 +713,8 @@ def get_patient_otc_history(cus_code):
|
||||
|
||||
# 각 거래의 품목 조회
|
||||
purchases = []
|
||||
all_drug_codes = []
|
||||
|
||||
for order in orders:
|
||||
cursor.execute("""
|
||||
SELECT
|
||||
@@ -728,12 +732,15 @@ def get_patient_otc_history(cus_code):
|
||||
|
||||
items = []
|
||||
for item_row in cursor.fetchall():
|
||||
drug_code = item_row.DrugCode or ''
|
||||
all_drug_codes.append(drug_code)
|
||||
items.append({
|
||||
'drug_code': item_row.DrugCode or '',
|
||||
'name': item_row.GoodsName or item_row.DrugCode or '',
|
||||
'drug_code': drug_code,
|
||||
'name': item_row.GoodsName or drug_code,
|
||||
'quantity': int(item_row.SL_NM_item or 0),
|
||||
'price': int(item_row.SL_TOTAL_PRICE or 0),
|
||||
'category': item_row.PRINT_TYPE or ''
|
||||
'category': item_row.PRINT_TYPE or '',
|
||||
'image': None
|
||||
})
|
||||
|
||||
purchases.append({
|
||||
@@ -744,6 +751,34 @@ def get_patient_otc_history(cus_code):
|
||||
|
||||
conn.close()
|
||||
|
||||
# 제품 이미지 조회 (product_images.db)
|
||||
image_map = {}
|
||||
try:
|
||||
img_db_path = Path(__file__).parent / 'db' / 'product_images.db'
|
||||
if img_db_path.exists() and all_drug_codes:
|
||||
img_conn = sqlite3.connect(str(img_db_path))
|
||||
img_cursor = img_conn.cursor()
|
||||
|
||||
placeholders = ','.join(['?' for _ in all_drug_codes])
|
||||
img_cursor.execute(f'''
|
||||
SELECT drug_code, thumbnail_base64
|
||||
FROM product_images
|
||||
WHERE drug_code IN ({placeholders}) AND thumbnail_base64 IS NOT NULL
|
||||
''', all_drug_codes)
|
||||
|
||||
for row in img_cursor.fetchall():
|
||||
image_map[row[0]] = row[1]
|
||||
|
||||
img_conn.close()
|
||||
except Exception as img_err:
|
||||
logging.warning(f"제품 이미지 조회 오류: {img_err}")
|
||||
|
||||
# 이미지 매핑
|
||||
for purchase in purchases:
|
||||
for item in purchase['items']:
|
||||
if item['drug_code'] in image_map:
|
||||
item['image'] = image_map[item['drug_code']]
|
||||
|
||||
# 통계 계산
|
||||
total_amount = sum(p['amount'] for p in purchases)
|
||||
total_visits = len(purchases)
|
||||
|
||||
Reference in New Issue
Block a user