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