summaryrefslogtreecommitdiff
path: root/lib/bidding/vendor/partners-bidding-pre-quote.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bidding/vendor/partners-bidding-pre-quote.tsx')
-rw-r--r--lib/bidding/vendor/partners-bidding-pre-quote.tsx51
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}