diff options
Diffstat (limited to 'lib/material')
| -rw-r--r-- | lib/material/material-group-service.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/material/material-group-service.ts b/lib/material/material-group-service.ts index 41f06fac..902d9b9b 100644 --- a/lib/material/material-group-service.ts +++ b/lib/material/material-group-service.ts @@ -25,6 +25,44 @@ export interface MaterialSearchResult { } /** + * 자재 그룹 코드로 단일 조회 + */ +export async function getMaterialGroupByCode( + materialGroupCode: string +): Promise<MaterialSearchItem | null> { + if (!materialGroupCode.trim()) { + return null; + } + + try { + const result = await db + .select({ + materialGroupCode: MATERIAL_GROUP_MASTER.materialGroupCode, + materialGroupDescription: MATERIAL_GROUP_MASTER.materialGroupDescription, + materialGroupUom: MATERIAL_GROUP_MASTER.materialGroupUom, + }) + .from(MATERIAL_GROUP_MASTER) + .where(sql`${MATERIAL_GROUP_MASTER.materialGroupCode} = ${materialGroupCode.trim()}`) + .limit(1); + + if (result.length === 0) { + return null; + } + + const item = result[0]; + return { + materialGroupCode: item.materialGroupCode, + materialGroupDescription: item.materialGroupDescription, + materialGroupUom: item.materialGroupUom || undefined, + displayText: `${item.materialGroupCode} - ${item.materialGroupDescription}`, + }; + } catch (error) { + console.error("자재 그룹 코드 조회 오류:", error); + return null; + } +} + +/** * 자재 검색 함수 - material_search_view에서 검색 */ export async function searchMaterialsForSelector( |
