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.tsx20
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/bidding/detail/table/bidding-detail-vendor-table.tsx b/lib/bidding/detail/table/bidding-detail-vendor-table.tsx
index dd1ae94b..95f63ce9 100644
--- a/lib/bidding/detail/table/bidding-detail-vendor-table.tsx
+++ b/lib/bidding/detail/table/bidding-detail-vendor-table.tsx
@@ -1,6 +1,7 @@
'use client'
import * as React from 'react'
+import { useSession } from 'next-auth/react'
import { type DataTableAdvancedFilterField, type DataTableFilterField } from '@/types/table'
import { useDataTable } from '@/hooks/use-data-table'
import { DataTable } from '@/components/data-table/data-table'
@@ -33,6 +34,7 @@ interface BiddingDetailVendorTableContentProps {
onEdit?: (vendor: QuotationVendor) => void
onDelete?: (vendor: QuotationVendor) => void
onSelectWinner?: (vendor: QuotationVendor) => void
+ onViewItemDetails?: (vendor: QuotationVendor) => void
}
const filterFields: DataTableFilterField<QuotationVendor>[] = [
@@ -97,10 +99,15 @@ export function BiddingDetailVendorTableContent({
onOpenAwardDialog,
onEdit,
onDelete,
- onSelectWinner
+ onSelectWinner,
+ onViewItemDetails
}: BiddingDetailVendorTableContentProps) {
+ const { data: session } = useSession()
const { toast } = useToast()
const [isPending, startTransition] = useTransition()
+
+ // 세션에서 사용자 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)
@@ -145,7 +152,7 @@ export function BiddingDetailVendorTableContent({
const result = selectWinnerSchema.safeParse({
biddingId,
vendorId: vendor.id,
- awardRatio: vendor.awardRatio,
+ awardRatio: vendor.awardRatio || 0,
})
if (!result.success) {
@@ -157,7 +164,7 @@ export function BiddingDetailVendorTableContent({
return
}
- const response = await selectWinner(biddingId, vendor.id, vendor.awardRatio, 'current-user')
+ const response = await selectWinner(biddingId, vendor.id, vendor.awardRatio || 0, userId)
if (response.success) {
toast({
@@ -209,9 +216,10 @@ export function BiddingDetailVendorTableContent({
onEdit: onEdit || handleEdit,
onDelete: onDelete || handleDelete,
onSelectWinner: onSelectWinner || handleSelectWinner,
- onViewPriceAdjustment: handleViewPriceAdjustment
+ onViewPriceAdjustment: handleViewPriceAdjustment,
+ onViewItemDetails: onViewItemDetails
}),
- [onEdit, onDelete, onSelectWinner, handleEdit, handleDelete, handleSelectWinner, handleViewPriceAdjustment]
+ [onEdit, onDelete, onSelectWinner, handleEdit, handleDelete, handleSelectWinner, handleViewPriceAdjustment, onViewItemDetails]
)
const { table } = useDataTable({
@@ -241,9 +249,9 @@ export function BiddingDetailVendorTableContent({
table={table}
biddingId={biddingId}
bidding={bidding}
+ userId={userId}
onOpenItemsDialog={onOpenItemsDialog}
onOpenTargetPriceDialog={onOpenTargetPriceDialog}
- onOpenSelectionReasonDialog={onOpenSelectionReasonDialog}
onOpenAwardDialog={() => setIsAwardDialogOpen(true)}
onSuccess={onRefresh}
/>