summaryrefslogtreecommitdiff
path: root/lib/bidding/detail/table/bidding-detail-vendor-toolbar-actions.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bidding/detail/table/bidding-detail-vendor-toolbar-actions.tsx')
-rw-r--r--lib/bidding/detail/table/bidding-detail-vendor-toolbar-actions.tsx26
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/bidding/detail/table/bidding-detail-vendor-toolbar-actions.tsx b/lib/bidding/detail/table/bidding-detail-vendor-toolbar-actions.tsx
index 4e9fc58d..484b1b1e 100644
--- a/lib/bidding/detail/table/bidding-detail-vendor-toolbar-actions.tsx
+++ b/lib/bidding/detail/table/bidding-detail-vendor-toolbar-actions.tsx
@@ -5,10 +5,11 @@ import { type Table } from "@tanstack/react-table"
import { useRouter } from "next/navigation"
import { useTransition } from "react"
import { Button } from "@/components/ui/button"
-import { Plus, Send, RotateCcw, XCircle, Trophy, FileText } from "lucide-react"
+import { Plus, Send, RotateCcw, XCircle, Trophy, FileText, DollarSign } from "lucide-react"
import { QuotationVendor, registerBidding, markAsDisposal, createRebidding, awardBidding } from "@/lib/bidding/detail/service"
import { BiddingDetailVendorCreateDialog } from "./bidding-detail-vendor-create-dialog"
import { BiddingDocumentUploadDialog } from "./bidding-document-upload-dialog"
+import { BiddingVendorPricesDialog } from "./bidding-vendor-prices-dialog"
import { Bidding } from "@/db/schema"
import { useToast } from "@/hooks/use-toast"
@@ -38,6 +39,7 @@ export function BiddingDetailVendorToolbarActions({
const [isPending, startTransition] = useTransition()
const [isCreateDialogOpen, setIsCreateDialogOpen] = React.useState(false)
const [isDocumentDialogOpen, setIsDocumentDialogOpen] = React.useState(false)
+ const [isPricesDialogOpen, setIsPricesDialogOpen] = React.useState(false)
const handleCreateVendor = () => {
setIsCreateDialogOpen(true)
@@ -47,6 +49,10 @@ export function BiddingDetailVendorToolbarActions({
setIsDocumentDialogOpen(true)
}
+ const handleViewVendorPrices = () => {
+ setIsPricesDialogOpen(true)
+ }
+
const handleRegister = () => {
startTransition(async () => {
const result = await registerBidding(bidding.id, userId)
@@ -191,6 +197,14 @@ export function BiddingDetailVendorToolbarActions({
<FileText className="mr-2 h-4 w-4" />
입찰문서 등록
</Button>
+ <Button
+ variant="outline"
+ size="sm"
+ onClick={handleViewVendorPrices}
+ >
+ <DollarSign className="mr-2 h-4 w-4" />
+ 입찰가 비교
+ </Button>
</div>
<BiddingDetailVendorCreateDialog
@@ -210,6 +224,16 @@ export function BiddingDetailVendorToolbarActions({
userId={userId}
onSuccess={onSuccess}
/>
+
+ <BiddingVendorPricesDialog
+ open={isPricesDialogOpen}
+ onOpenChange={setIsPricesDialogOpen}
+ biddingId={biddingId}
+ biddingTitle={bidding.title}
+ budget={bidding.budget ? parseFloat(bidding.budget.toString()) : null}
+ targetPrice={bidding.targetPrice ? parseFloat(bidding.targetPrice.toString()) : null}
+ currency={bidding.currency}
+ />
</>
)
}