diff --git a/src/app/api/comm-code/route.ts b/src/app/api/comm-code/route.ts index 6b4852c..d000836 100644 --- a/src/app/api/comm-code/route.ts +++ b/src/app/api/comm-code/route.ts @@ -20,7 +20,6 @@ export async function GET(request: NextRequest) { if (!headCd) { return NextResponse.json({ error: `${headCode}를 찾을 수 없습니다` }, { status: 404 }) } - // @ts-ignore const roofMaterials: CommCode[] = await prisma.BC_COMM_L.findMany({ where: { @@ -35,10 +34,29 @@ export async function GET(request: NextRequest) { CODE: 'asc', }, }) - + if (headCode === 'SALES_OFFICE_CD') { + return getSaleOffice(headCd.HEAD_CD) + } return NextResponse.json(roofMaterials) } catch (error) { console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error) return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 }) } } + +const getSaleOffice = async (headCode: string) => { + // @ts-ignore + const commCodeSaleOffice: CommCode[] = await prisma.BC_COMM_L.findMany({ + where: { + HEAD_CD: headCode, + REF_NUM1: 1, + }, + select: { + CODE: true, + CODE_JP: true, + REF_CHR1: true, + REF_NUM1: true, + }, + }) + return NextResponse.json(commCodeSaleOffice) +} diff --git a/src/components/popup/SurveySaleSubmitPopup.tsx b/src/components/popup/SurveySaleSubmitPopup.tsx index 720de30..8ccddab 100644 --- a/src/components/popup/SurveySaleSubmitPopup.tsx +++ b/src/components/popup/SurveySaleSubmitPopup.tsx @@ -2,14 +2,16 @@ import Image from 'next/image' import { usePopupController } from '@/store/popupController' import { useParams } from 'next/navigation' import { useServey } from '@/hooks/useSurvey' -import { useState } from 'react' +import { useEffect, useState } from 'react' import { useSessionStore } from '@/store/session' +import { useCommCode } from '@/hooks/useCommCode' +import { CommCode } from '@/types/CommCode' interface SubmitFormData { saleBase: string | null store: string sender: string - receiver: string + receiver: string[] reference: string | null title: string contents: string @@ -21,23 +23,24 @@ interface FormField { required: boolean } -const dummy = [ - { - id: 1, - name: '東京支店', - }, - { - id: 2, - name: '大阪支店', - }, -] - export default function SurveySaleSubmitPopup() { const popupController = usePopupController() const { session } = useSessionStore() const params = useParams() const routeId = params.id + const [commCodeList, setCommCodeList] = useState([]) + + const { getCommCode } = useCommCode() + + useEffect(() => { + if (session?.isLoggedIn && session?.role === 'Admin') { + getCommCode('SALES_OFFICE_CD').then((codes) => { + setCommCodeList(codes) + }) + } + }, [session]) + const FORM_FIELDS: FormField[] = [ { id: 'saleBase', name: '提出地点選択', required: session?.role === 'Admin' }, { id: 'store', name: '提出販売店', required: true }, @@ -52,7 +55,7 @@ export default function SurveySaleSubmitPopup() { saleBase: null, store: '', sender: session?.email ?? '', - receiver: '', + receiver: [], reference: null, title: '[HANASYS現地調査] 調査物件が提出.', contents: '', @@ -68,7 +71,7 @@ export default function SurveySaleSubmitPopup() { const requiredFields = FORM_FIELDS.filter((field) => field.required) for (const field of requiredFields) { - if (!data[field.id]?.trim()) { + if (data[field.id]?.length === 0) { alert(`${field.name}は必須入力項目です。`) const element = document.getElementById(field.id) if (element) { @@ -77,7 +80,6 @@ export default function SurveySaleSubmitPopup() { return false } } - return true } @@ -123,12 +125,19 @@ export default function SurveySaleSubmitPopup() { className="select-form" id={field.id} value={submitData[field.id] ?? ''} - onChange={(e) => handleInputChange(field.id, e.target.value)} + onChange={(e) => { + const selectedOffice = commCodeList.find((item) => item.code === e.target.value) + if (selectedOffice) { + //@ts-ignore + const receiver = selectedOffice.REF_CHR1.split(';') + setSubmitData((prev) => ({ ...prev, receiver: receiver, saleBase: e.target.value })) + } + }} > - {dummy.map((item) => ( - ))} diff --git a/src/components/survey-sale/list/ListTable.tsx b/src/components/survey-sale/list/ListTable.tsx index 38e96a9..6cba7e2 100644 --- a/src/components/survey-sale/list/ListTable.tsx +++ b/src/components/survey-sale/list/ListTable.tsx @@ -58,8 +58,8 @@ export default function ListTable() {
{survey.srlNo}
{survey.investigationDate}
-
{survey.buildingName}
-
{survey.customerName}
+
{survey.buildingName === null ? '-' : survey.buildingName}
+
{survey.customerName === null ? '-' : survey.customerName}
{survey.representative}
{new Date(survey.uptDt).toLocaleString()}