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.tsx69
1 files changed, 1 insertions, 68 deletions
diff --git a/lib/bidding/detail/table/bidding-detail-vendor-table.tsx b/lib/bidding/detail/table/bidding-detail-vendor-table.tsx
index a9778636..3e8adda9 100644
--- a/lib/bidding/detail/table/bidding-detail-vendor-table.tsx
+++ b/lib/bidding/detail/table/bidding-detail-vendor-table.tsx
@@ -7,33 +7,22 @@ import { useDataTable } from '@/hooks/use-data-table'
import { DataTable } from '@/components/data-table/data-table'
import { DataTableAdvancedToolbar } from '@/components/data-table/data-table-advanced-toolbar'
import { BiddingDetailVendorToolbarActions } from './bidding-detail-vendor-toolbar-actions'
-import { BiddingDetailVendorCreateDialog } from './bidding-detail-vendor-create-dialog'
import { BiddingDetailVendorEditDialog } from './bidding-detail-vendor-edit-dialog'
import { BiddingAwardDialog } from './bidding-award-dialog'
import { getBiddingDetailVendorColumns } from './bidding-detail-vendor-columns'
import { QuotationVendor, getPriceAdjustmentFormByBiddingCompanyId } from '@/lib/bidding/detail/service'
import { Bidding } from '@/db/schema'
import { PriceAdjustmentDialog } from '@/components/bidding/price-adjustment-dialog'
-import {
- deleteQuotationVendor,
- selectWinner
-} from '@/lib/bidding/detail/service'
-import { selectWinnerSchema } from '@/lib/bidding/validation'
import { useToast } from '@/hooks/use-toast'
-import { useTransition, useCallback } from 'react'
interface BiddingDetailVendorTableContentProps {
biddingId: number
bidding: Bidding
vendors: QuotationVendor[]
onRefresh: () => void
- onOpenItemsDialog: () => void
onOpenTargetPriceDialog: () => void
onOpenSelectionReasonDialog: () => void
- onOpenAwardDialog: () => void
onEdit?: (vendor: QuotationVendor) => void
- onDelete?: (vendor: QuotationVendor) => void
- onSelectWinner?: (vendor: QuotationVendor) => void
onViewItemDetails?: (vendor: QuotationVendor) => void
}
@@ -93,18 +82,12 @@ export function BiddingDetailVendorTableContent({
bidding,
vendors,
onRefresh,
- onOpenItemsDialog,
onOpenTargetPriceDialog,
- onOpenSelectionReasonDialog,
- onOpenAwardDialog,
onEdit,
- onDelete,
- onSelectWinner,
onViewItemDetails
}: BiddingDetailVendorTableContentProps) {
const { data: session } = useSession()
const { toast } = useToast()
- const [isPending, startTransition] = useTransition()
// 세션에서 사용자 ID 가져오기
const userId = session?.user?.id || ''
@@ -114,52 +97,6 @@ export function BiddingDetailVendorTableContent({
const [priceAdjustmentData, setPriceAdjustmentData] = React.useState<any>(null)
const [isPriceAdjustmentDialogOpen, setIsPriceAdjustmentDialogOpen] = React.useState(false)
- const handleSelectWinner = useCallback((vendor: QuotationVendor) => {
- if (!vendor.awardRatio || vendor.awardRatio <= 0) {
- toast({
- title: '오류',
- description: '발주비율을 먼저 설정해주세요.',
- variant: 'destructive',
- })
- return
- }
-
- if (!confirm(`${vendor.vendorName} 업체를 낙찰자로 선정하시겠습니까?`)) return
-
- startTransition(async () => {
- const result = selectWinnerSchema.safeParse({
- biddingId,
- vendorId: vendor.id,
- awardRatio: vendor.awardRatio || 0,
- })
-
- if (!result.success) {
- toast({
- title: '유효성 오류',
- description: result.error.issues[0]?.message || '입력값을 확인해주세요.',
- variant: 'destructive',
- })
- return
- }
-
- const response = await selectWinner(biddingId, vendor.id, vendor.awardRatio || 0, userId)
-
- if (response.success) {
- toast({
- title: '성공',
- description: response.message,
- })
- onRefresh()
- } else {
- toast({
- title: '오류',
- description: response.error,
- variant: 'destructive',
- })
- }
- })
- }, [toast, startTransition, biddingId, userId, selectWinnerSchema, selectWinner, onRefresh])
-
const handleEdit = (vendor: QuotationVendor) => {
setSelectedVendor(vendor)
setIsEditDialogOpen(true)
@@ -192,12 +129,10 @@ export function BiddingDetailVendorTableContent({
const columns = React.useMemo(
() => getBiddingDetailVendorColumns({
onEdit: onEdit || handleEdit,
- onDelete: onDelete,
- onSelectWinner: onSelectWinner || handleSelectWinner,
onViewPriceAdjustment: handleViewPriceAdjustment,
onViewItemDetails: onViewItemDetails
}),
- [onEdit, onDelete, onSelectWinner, handleEdit, handleSelectWinner, handleViewPriceAdjustment, onViewItemDetails]
+ [onEdit, handleEdit, handleViewPriceAdjustment, onViewItemDetails]
)
const { table } = useDataTable({
@@ -224,11 +159,9 @@ export function BiddingDetailVendorTableContent({
shallow={false}
>
<BiddingDetailVendorToolbarActions
- table={table}
biddingId={biddingId}
bidding={bidding}
userId={userId}
- onOpenItemsDialog={onOpenItemsDialog}
onOpenTargetPriceDialog={onOpenTargetPriceDialog}
onOpenAwardDialog={() => setIsAwardDialogOpen(true)}
onSuccess={onRefresh}