feat: add fetch commonCode for get email from your dealer base representative
This commit is contained in:
parent
46fe524f79
commit
d599f28522
@ -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)
|
||||
}
|
||||
|
||||
@ -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<CommCode[]>([])
|
||||
|
||||
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 }))
|
||||
}
|
||||
}}
|
||||
>
|
||||
<option value="">選択してください</option>
|
||||
{dummy.map((item) => (
|
||||
<option key={item.id} value={item.name}>
|
||||
{item.name}
|
||||
{commCodeList.map((item) => (
|
||||
<option key={item.code} value={item.code}>
|
||||
{item.codeJp}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
|
||||
@ -58,8 +58,8 @@ export default function ListTable() {
|
||||
<div className="sale-item-num">{survey.srlNo}</div>
|
||||
<div className="sale-item-date">{survey.investigationDate}</div>
|
||||
</div>
|
||||
<div className="sale-item-tit">{survey.buildingName}</div>
|
||||
<div className="sale-item-customer">{survey.customerName}</div>
|
||||
<div className="sale-item-tit">{survey.buildingName === null ? '-' : survey.buildingName}</div>
|
||||
<div className="sale-item-customer">{survey.customerName === null ? '-' : survey.customerName}</div>
|
||||
<div className="sale-item-update-bx">
|
||||
<div className="sale-item-name">{survey.representative}</div>
|
||||
<div className="sale-item-update">{new Date(survey.uptDt).toLocaleString()}</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user