From 4713395557b7c7482a08e01a6451b642e3dcbe79 Mon Sep 17 00:00:00 2001 From: thug0bin Date: Mon, 2 Mar 2026 17:35:13 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20OTC=20=EB=9D=BC=EB=B2=A8=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=EC=8B=9C=20CD=5FITEM=5FUNIT=5FMEMBER=20=EB=B0=94?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=ED=8F=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CD_GOODS.Barcode가 없어도 CD_ITEM_UNIT_MEMBER에서 바코드 조회 - 바코드 없는 제품도 검색 결과에 포함 --- backend/app.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/backend/app.py b/backend/app.py index 362563f..a8d039c 100644 --- a/backend/app.py +++ b/backend/app.py @@ -5606,17 +5606,22 @@ def api_search_mssql_drug(): mssql_session = db_manager.get_session('PM_DRUG') - # 바코드 또는 이름으로 검색 + # 바코드 또는 이름으로 검색 (CD_ITEM_UNIT_MEMBER 바코드 포함) sql = text(""" SELECT TOP 20 - DrugCode, Barcode, GoodsName, Saleprice - FROM CD_GOODS - WHERE (Barcode LIKE :query OR GoodsName LIKE :query) - AND Barcode IS NOT NULL - AND Barcode != '' + G.DrugCode, + COALESCE(NULLIF(G.Barcode, ''), + (SELECT TOP 1 CD_CD_BARCODE FROM CD_ITEM_UNIT_MEMBER WHERE DrugCode = G.DrugCode) + ) AS Barcode, + G.GoodsName, + G.Saleprice + FROM CD_GOODS G + WHERE G.GoodsName LIKE :query + OR G.Barcode LIKE :query + OR G.DrugCode IN (SELECT DrugCode FROM CD_ITEM_UNIT_MEMBER WHERE CD_CD_BARCODE LIKE :query) ORDER BY - CASE WHEN Barcode = :exact THEN 0 ELSE 1 END, - GoodsName + CASE WHEN G.Barcode = :exact THEN 0 ELSE 1 END, + G.GoodsName """) rows = mssql_session.execute(sql, {