summaryrefslogtreecommitdiff
path: root/lib/mdg/actions/material-service.ts
blob: 76345b13f0fb4a167a995d01032990a43258afa9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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'}`);
  }
}