diff options
Diffstat (limited to 'lib/bidding/vendor/partners-bidding-pre-quote.tsx')
| -rw-r--r-- | lib/bidding/vendor/partners-bidding-pre-quote.tsx | 51 |
1 files changed, 43 insertions, 8 deletions
diff --git a/lib/bidding/vendor/partners-bidding-pre-quote.tsx b/lib/bidding/vendor/partners-bidding-pre-quote.tsx index fdd05154..29a37cae 100644 --- a/lib/bidding/vendor/partners-bidding-pre-quote.tsx +++ b/lib/bidding/vendor/partners-bidding-pre-quote.tsx @@ -381,6 +381,41 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin return } + // 품목별 납품일 검증 + if (prItemQuotations.length > 0) { + for (const quotation of prItemQuotations) { + if (!quotation.proposedDeliveryDate?.trim()) { + const prItem = prItems.find(item => item.id === quotation.prItemId) + toast({ + title: '유효성 오류', + description: `품목 ${prItem?.itemNumber || quotation.prItemId}의 납품예정일을 입력해주세요.`, + variant: 'destructive', + }) + return + } + } + } + + const requiredFields = [ + { value: responseData.proposedContractDeliveryDate, name: '제안 납품일' }, + { value: responseData.paymentTermsResponse, name: '응답 지급조건' }, + { value: responseData.taxConditionsResponse, name: '응답 세금조건' }, + { value: responseData.incotermsResponse, name: '응답 운송조건' }, + { value: responseData.proposedShippingPort, name: '제안 선적지' }, + { value: responseData.proposedDestinationPort, name: '제안 도착지' }, + { value: responseData.sparePartResponse, name: '스페어파트 응답' }, + ] + + const missingField = requiredFields.find(field => !field.value?.trim()) + if (missingField) { + toast({ + title: '유효성 오류', + description: `${missingField.name}을(를) 입력해주세요.`, + variant: 'destructive', + }) + return + } + startTransition(async () => { const submissionData = { preQuoteAmount: totalAmount, // 품목별 계산된 총 금액 사용 @@ -873,7 +908,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin {/* 총 금액 표시 (읽기 전용) */} <div className="grid grid-cols-1 md:grid-cols-2 gap-6"> <div className="space-y-2"> - <Label htmlFor="totalAmount">총 사전견적 금액 *</Label> + <Label htmlFor="totalAmount">총 사전견적 금액 <span className="text-red-500">*</span></Label> <Input id="totalAmount" type="text" @@ -887,7 +922,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin </div> <div className="space-y-2"> - <Label htmlFor="proposedContractDeliveryDate">제안 납품일</Label> + <Label htmlFor="proposedContractDeliveryDate">제안 납품일 <span className="text-red-500">*</span></Label> <Input id="proposedContractDeliveryDate" type="date" @@ -905,7 +940,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin <div className="grid grid-cols-1 md:grid-cols-2 gap-6"> <div className="space-y-2"> - <Label htmlFor="paymentTermsResponse">응답 지급조건</Label> + <Label htmlFor="paymentTermsResponse">응답 지급조건 <span className="text-red-500">*</span></Label> <Input id="paymentTermsResponse" value={responseData.paymentTermsResponse} @@ -915,7 +950,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin </div> <div className="space-y-2"> - <Label htmlFor="taxConditionsResponse">응답 세금조건</Label> + <Label htmlFor="taxConditionsResponse">응답 세금조건 <span className="text-red-500">*</span></Label> <Input id="taxConditionsResponse" value={responseData.taxConditionsResponse} @@ -927,7 +962,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin <div className="grid grid-cols-1 md:grid-cols-2 gap-6"> <div className="space-y-2"> - <Label htmlFor="incotermsResponse">응답 운송조건</Label> + <Label htmlFor="incotermsResponse">응답 운송조건 <span className="text-red-500">*</span></Label> <Input id="incotermsResponse" value={responseData.incotermsResponse} @@ -937,7 +972,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin </div> <div className="space-y-2"> - <Label htmlFor="proposedShippingPort">제안 선적지</Label> + <Label htmlFor="proposedShippingPort">제안 선적지 <span className="text-red-500">*</span></Label> <Input id="proposedShippingPort" value={responseData.proposedShippingPort} @@ -949,7 +984,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin <div className="grid grid-cols-1 md:grid-cols-2 gap-6"> <div className="space-y-2"> - <Label htmlFor="proposedDestinationPort">제안 도착지</Label> + <Label htmlFor="proposedDestinationPort">제안 도착지 <span className="text-red-500">*</span></Label> <Input id="proposedDestinationPort" value={responseData.proposedDestinationPort} @@ -959,7 +994,7 @@ export function PartnersBiddingPreQuote({ biddingId, companyId }: PartnersBiddin </div> <div className="space-y-2"> - <Label htmlFor="sparePartResponse">스페어파트 응답</Label> + <Label htmlFor="sparePartResponse">스페어파트 응답 <span className="text-red-500">*</span></Label> <Input id="sparePartResponse" value={responseData.sparePartResponse} |
