diff options
Diffstat (limited to 'lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx')
| -rw-r--r-- | lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx b/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx index f43e850a..1a1b331e 100644 --- a/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx +++ b/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx @@ -22,13 +22,17 @@ interface BiddingDetailVendorEditDialogProps { open: boolean onOpenChange: (open: boolean) => void onSuccess: () => void + biddingAwardCount?: string // 낙찰수 정보 추가 + biddingStatus?: string // 입찰 상태 정보 추가 } export function BiddingDetailVendorEditDialog({ vendor, open, onOpenChange, - onSuccess + onSuccess, + biddingAwardCount, + biddingStatus }: BiddingDetailVendorEditDialogProps) { const { toast } = useToast() const [isPending, startTransition] = useTransition() @@ -41,11 +45,13 @@ export function BiddingDetailVendorEditDialog({ // vendor가 변경되면 폼 데이터 업데이트 React.useEffect(() => { if (vendor) { + // 낙찰수가 단수인 경우 발주비율을 100%로 자동 설정 + const defaultAwardRatio = biddingAwardCount === 'single' ? 100 : (vendor.awardRatio || 0) setFormData({ - awardRatio: vendor.awardRatio || 0, + awardRatio: defaultAwardRatio, }) } - }, [vendor]) + }, [vendor, biddingAwardCount]) const handleEdit = () => { if (!vendor) return @@ -129,13 +135,23 @@ export function BiddingDetailVendorEditDialog({ value={formData.awardRatio} onChange={(e) => setFormData({ ...formData, awardRatio: Number(e.target.value) })} placeholder="발주비율을 입력하세요" - disabled={vendor?.isBiddingParticipated !== true} + disabled={vendor?.isBiddingParticipated !== true || biddingAwardCount === 'single' || biddingStatus === 'vendor_selected'} /> {vendor?.isBiddingParticipated !== true && ( <p className="text-sm text-muted-foreground"> 입찰에 참여한 업체만 발주비율을 설정할 수 있습니다. </p> )} + {biddingAwardCount === 'single' && vendor?.isBiddingParticipated === true && ( + <p className="text-sm text-blue-600"> + 단수 낙찰의 경우 발주비율은 자동으로 100%로 설정됩니다. + </p> + )} + {biddingStatus === 'vendor_selected' && ( + <p className="text-sm text-red-600"> + 낙찰이 완료되어 발주비율을 수정할 수 없습니다. + </p> + )} </div> </div> <DialogFooter> |
