summaryrefslogtreecommitdiff
path: root/lib/mdg/actions
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mdg/actions')
-rw-r--r--lib/mdg/actions/material-service.ts38
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'}`);
+ }
+}
+