diff options
Diffstat (limited to 'lib/material/material-group-service.ts')
| -rw-r--r-- | lib/material/material-group-service.ts | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/lib/material/material-group-service.ts b/lib/material/material-group-service.ts index ae0ca725..bf58d243 100644 --- a/lib/material/material-group-service.ts +++ b/lib/material/material-group-service.ts @@ -2,11 +2,12 @@ import { sql, SQL } from "drizzle-orm"; import db from "@/db/db"; -import { materialSearchView } from "@/db/schema/items"; +import { MATERIAL_GROUP_MASTER } from "@/db/schema/MDG/mdg"; export interface MaterialSearchItem { materialGroupCode: string; - materialGroupDesc: string; + materialGroupDescription: string; + materialGroupUom?: string; displayText: string; // 애플리케이션 레벨에서 계산된 필드 } @@ -39,25 +40,29 @@ export async function searchMaterialsForSelector( if (query.trim()) { const searchPattern = `%${query.trim()}%`; searchWhere = sql`( - ${materialSearchView.materialGroupCode} ILIKE ${searchPattern} OR - ${materialSearchView.materialGroupDesc} ILIKE ${searchPattern} + ${MATERIAL_GROUP_MASTER.materialGroupCode} ILIKE ${searchPattern} OR + ${MATERIAL_GROUP_MASTER.materialGroupDescription} ILIKE ${searchPattern} )`; } const { data, total } = await db.transaction(async (tx) => { // 데이터 조회 const data = await tx - .select() - .from(materialSearchView) + .select({ + materialGroupCode: MATERIAL_GROUP_MASTER.materialGroupCode, + materialGroupDescription: MATERIAL_GROUP_MASTER.materialGroupDescription, + materialGroupUom: MATERIAL_GROUP_MASTER.materialGroupUom, + }) + .from(MATERIAL_GROUP_MASTER) .where(searchWhere) - .orderBy(materialSearchView.materialGroupCode, materialSearchView.materialGroupDesc) + .orderBy(MATERIAL_GROUP_MASTER.materialGroupCode, MATERIAL_GROUP_MASTER.materialGroupDescription) .limit(perPage) .offset(offset); // 총 개수 조회 const countResult = await tx .select({ count: sql<number>`count(*)` }) - .from(materialSearchView) + .from(MATERIAL_GROUP_MASTER) .where(searchWhere); const total = countResult[0]?.count || 0; @@ -65,8 +70,9 @@ export async function searchMaterialsForSelector( return { data: data.map((row) => ({ materialGroupCode: row.materialGroupCode, - materialGroupDesc: row.materialGroupDesc, - displayText: `${row.materialGroupCode || ''} - ${row.materialGroupDesc || ''}`, // 애플리케이션 레벨에서 생성 + materialGroupDescription: row.materialGroupDescription, + materialGroupUom: row.materialGroupUom, + displayText: `${row.materialGroupCode || ''} - ${row.materialGroupDescription || ''}`, // 애플리케이션 레벨에서 생성 })), total, }; |
