diff options
Diffstat (limited to 'lib/bidding/detail/table/bidding-detail-vendor-table.tsx')
| -rw-r--r-- | lib/bidding/detail/table/bidding-detail-vendor-table.tsx | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/lib/bidding/detail/table/bidding-detail-vendor-table.tsx b/lib/bidding/detail/table/bidding-detail-vendor-table.tsx index edb72aca..fffac0c1 100644 --- a/lib/bidding/detail/table/bidding-detail-vendor-table.tsx +++ b/lib/bidding/detail/table/bidding-detail-vendor-table.tsx @@ -25,7 +25,6 @@ interface BiddingDetailVendorTableContentProps { vendors: QuotationVendor[] onRefresh: () => void onOpenSelectionReasonDialog: () => void - onEdit?: (vendor: QuotationVendor) => void onViewItemDetails?: (vendor: QuotationVendor) => void onViewQuotationHistory?: (vendor: QuotationVendor) => void } @@ -86,7 +85,6 @@ export function BiddingDetailVendorTableContent({ bidding, vendors, onRefresh, - onEdit, onViewItemDetails, onViewQuotationHistory }: BiddingDetailVendorTableContentProps) { @@ -96,8 +94,8 @@ export function BiddingDetailVendorTableContent({ // 세션에서 사용자 ID 가져오기 const userId = session?.user?.id || '' const [selectedVendor, setSelectedVendor] = React.useState<QuotationVendor | null>(null) - const [isEditDialogOpen, setIsEditDialogOpen] = React.useState(false) const [isAwardDialogOpen, setIsAwardDialogOpen] = React.useState(false) + const [isAwardRatioDialogOpen, setIsAwardRatioDialogOpen] = React.useState(false) const [priceAdjustmentData, setPriceAdjustmentData] = React.useState<any>(null) const [isPriceAdjustmentDialogOpen, setIsPriceAdjustmentDialogOpen] = React.useState(false) const [quotationHistoryData, setQuotationHistoryData] = React.useState<any>(null) @@ -116,11 +114,6 @@ export function BiddingDetailVendorTableContent({ } | null>(null) const [isApprovalPreviewDialogOpen, setIsApprovalPreviewDialogOpen] = React.useState(false) - const handleEdit = (vendor: QuotationVendor) => { - setSelectedVendor(vendor) - setIsEditDialogOpen(true) - } - const handleViewPriceAdjustment = async (vendor: QuotationVendor) => { try { const priceAdjustmentForm = await getPriceAdjustmentFormByBiddingCompanyId(vendor.id) @@ -179,13 +172,15 @@ export function BiddingDetailVendorTableContent({ const columns = React.useMemo( () => getBiddingDetailVendorColumns({ - onEdit: onEdit || handleEdit, onViewPriceAdjustment: handleViewPriceAdjustment, onViewItemDetails: onViewItemDetails, onViewQuotationHistory: onViewQuotationHistory || handleViewQuotationHistory, - biddingStatus: bidding.status + biddingStatus: bidding.status, + biddingTargetPrice: bidding.targetPrice, + biddingFinalBidPrice: bidding.finalBidPrice, + biddingCurrency: bidding.currency || undefined }), - [onEdit, handleEdit, handleViewPriceAdjustment, onViewItemDetails, onViewQuotationHistory, handleViewQuotationHistory, bidding.status] + [handleViewPriceAdjustment, onViewItemDetails, onViewQuotationHistory, handleViewQuotationHistory, bidding.status, bidding.targetPrice, bidding.finalBidPrice, bidding.currency] ) const { table } = useDataTable({ @@ -203,6 +198,18 @@ export function BiddingDetailVendorTableContent({ clearOnDefault: true, }) + // single select된 vendor 가져오기 + const selectedRows = table.getSelectedRowModel().rows + const singleSelectedVendor = selectedRows.length === 1 ? selectedRows[0].original : null + + // 발주비율 산정 버튼 핸들러 + const handleOpenAwardRatioDialog = () => { + if (singleSelectedVendor) { + setSelectedVendor(singleSelectedVendor) + setIsAwardRatioDialogOpen(true) + } + } + // 낙찰 결재 상신 핸들러 const handleAwardApprovalConfirm = async (data: { approvers: string[]; title: string; attachments?: File[] }) => { if (!session?.user?.id || !approvalPreviewData) return @@ -258,16 +265,19 @@ export function BiddingDetailVendorTableContent({ bidding={bidding} userId={userId} onOpenAwardDialog={() => setIsAwardDialogOpen(true)} + onOpenAwardRatioDialog={handleOpenAwardRatioDialog} onSuccess={onRefresh} winnerVendor={vendors.find(v => v.awardRatio === 100)} + singleSelectedVendor={singleSelectedVendor} /> </DataTableAdvancedToolbar> </DataTable> + {/* 발주비율 산정 Dialog */} <BiddingDetailVendorEditDialog vendor={selectedVendor} - open={isEditDialogOpen} - onOpenChange={setIsEditDialogOpen} + open={isAwardRatioDialogOpen} + onOpenChange={setIsAwardRatioDialogOpen} onSuccess={onRefresh} biddingAwardCount={bidding.awardCount || undefined} biddingStatus={bidding.status} |
