summaryrefslogtreecommitdiff
path: root/lib/material/material-group-service.ts
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-11-05 16:07:43 +0900
committerjoonhoekim <26rote@gmail.com>2025-11-05 16:07:43 +0900
commit208ed7ff11d0f822d3d243c5833d31973904349e (patch)
treeb1a15e3a7f8242294397f433a8484102c5743e69 /lib/material/material-group-service.ts
parentad6bde0250cfe014d5f78747ec76ac59df95a25d (diff)
(김준회) vendor-pool: excel-import 코드기반검색처리, 템플릿 변경 (구매 김수진 프로 요청사항)
Diffstat (limited to 'lib/material/material-group-service.ts')
-rw-r--r--lib/material/material-group-service.ts38
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(