From 1a034c7f6f50e443bc9f97c3d84bfb0a819af6ce Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Tue, 4 Nov 2025 18:15:39 +0900 Subject: (김준회) MDG 자재마스터 테이블 인덱스 추가, MANTR로 MRC Type 반환하는 서버액션 구현 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/mdg/actions/material-service.ts | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib/mdg/actions/material-service.ts (limited to 'lib') 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 { + 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'}`); + } +} + -- cgit v1.2.3