summaryrefslogtreecommitdiff
path: root/lib/material/material-group-service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/material/material-group-service.ts')
-rw-r--r--lib/material/material-group-service.ts26
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,
};