diff options
Diffstat (limited to 'lib/mdg/actions')
| -rw-r--r-- | lib/mdg/actions/material-service.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/mdg/actions/material-service.ts b/lib/mdg/actions/material-service.ts new file mode 100644 index 00000000..76345b13 --- /dev/null +++ b/lib/mdg/actions/material-service.ts @@ -0,0 +1,38 @@ +"use server"; + +import db from "@/db/db"; +import { MATERIAL_MASTER_PART_MATL } from "@/db/schema/MDG/mdg"; +import { eq } from "drizzle-orm"; + +/** + * MATNR(Material Number)로 ZZMRC 값을 조회하는 서버 액션 + * @param matnr - 자재 번호 (Material Number) + * @returns ZZMRC 값 또는 null + */ +export async function getMrcTypeByMatnr(matnr: string): Promise<string | null> { + try { + if (!matnr || matnr.trim() === '') { + console.warn('getMrcTypeByMatnr: MATNR이 제공되지 않았습니다.'); + return null; + } + + const result = await db + .select({ + zzmrc: MATERIAL_MASTER_PART_MATL.ZZMRC, + }) + .from(MATERIAL_MASTER_PART_MATL) + .where(eq(MATERIAL_MASTER_PART_MATL.MATNR, matnr)) + .limit(1); + + if (result.length === 0) { + console.warn(`getMrcTypeByMatnr: MATNR ${matnr}에 해당하는 데이터를 찾을 수 없습니다.`); + return null; + } + + return result[0].zzmrc; + } catch (error) { + console.error('getMrcTypeByMatnr 조회 오류:', error); + throw new Error(`ZZMRC 조회 중 오류가 발생했습니다: ${error instanceof Error ? error.message : 'Unknown error'}`); + } +} + |
