fix: OTC 라벨 검색 시 CD_ITEM_UNIT_MEMBER 바코드 포함
- CD_GOODS.Barcode가 없어도 CD_ITEM_UNIT_MEMBER에서 바코드 조회 - 바코드 없는 제품도 검색 결과에 포함
This commit is contained in:
parent
007b37e6c6
commit
4713395557
@ -5606,17 +5606,22 @@ def api_search_mssql_drug():
|
|||||||
|
|
||||||
mssql_session = db_manager.get_session('PM_DRUG')
|
mssql_session = db_manager.get_session('PM_DRUG')
|
||||||
|
|
||||||
# 바코드 또는 이름으로 검색
|
# 바코드 또는 이름으로 검색 (CD_ITEM_UNIT_MEMBER 바코드 포함)
|
||||||
sql = text("""
|
sql = text("""
|
||||||
SELECT TOP 20
|
SELECT TOP 20
|
||||||
DrugCode, Barcode, GoodsName, Saleprice
|
G.DrugCode,
|
||||||
FROM CD_GOODS
|
COALESCE(NULLIF(G.Barcode, ''),
|
||||||
WHERE (Barcode LIKE :query OR GoodsName LIKE :query)
|
(SELECT TOP 1 CD_CD_BARCODE FROM CD_ITEM_UNIT_MEMBER WHERE DrugCode = G.DrugCode)
|
||||||
AND Barcode IS NOT NULL
|
) AS Barcode,
|
||||||
AND 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
|
ORDER BY
|
||||||
CASE WHEN Barcode = :exact THEN 0 ELSE 1 END,
|
CASE WHEN G.Barcode = :exact THEN 0 ELSE 1 END,
|
||||||
GoodsName
|
G.GoodsName
|
||||||
""")
|
""")
|
||||||
|
|
||||||
rows = mssql_session.execute(sql, {
|
rows = mssql_session.execute(sql, {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user