// lib/vendor-rfq-response/vendor-tbe-table/vendor-evaluation-view-dialog.tsx "use client" import * as React from "react" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, } from "@/components/ui/dialog" import { Badge } from "@/components/ui/badge" import { ScrollArea } from "@/components/ui/scroll-area" import { CheckCircle, XCircle, AlertCircle, FileText, Package, DollarSign, MessageSquare } from "lucide-react" import { formatDate } from "@/lib/utils" interface VendorEvaluationViewDialogProps { open: boolean onOpenChange: (open: boolean) => void selectedSession: any sessionDetail: any } export function VendorEvaluationViewDialog({ open, onOpenChange, selectedSession, sessionDetail }: VendorEvaluationViewDialogProps) { // Get evaluation icon const getEvaluationIcon = (result: string | null) => { switch (result) { case "pass": return case "conditional_pass": return case "non_pass": return default: return null } } // Get result display text const getResultDisplay = (result: string | null) => { switch (result) { case "pass": return { text: "Pass", variant: "default" as const } case "conditional_pass": return { text: "Conditional Pass", variant: "secondary" as const } case "non_pass": return { text: "Non-Pass", variant: "destructive" as const } default: return { text: "Pending", variant: "outline" as const } } } const resultDisplay = getResultDisplay(selectedSession?.evaluationResult) return ( TBE Evaluation Result {selectedSession?.sessionCode} - Technical Bid Evaluation 결과
{/* Overall Result */}

Overall Evaluation Result

{getEvaluationIcon(selectedSession?.evaluationResult)} {resultDisplay.text}
{selectedSession?.evaluationResult === "conditional_pass" && (

Conditions to be fulfilled:

{sessionDetail?.session?.conditionalRequirements || "조건부 요구사항이 명시되지 않았습니다."}

{sessionDetail?.session?.conditionsFulfilled !== undefined && (
{sessionDetail.session.conditionsFulfilled ? "Conditions Fulfilled" : "Pending Fulfillment"}
)}
)} {selectedSession?.evaluationResult === "non_pass" && (

기술 평가 기준을 충족하지 못했습니다. 자세한 내용은 아래 평가 요약을 참고해주세요.

)}
{/* Technical Summary */} {sessionDetail?.session?.technicalSummary && (

Technical Evaluation Summary

{sessionDetail.session.technicalSummary}

)} {/* Commercial Summary */} {sessionDetail?.session?.commercialSummary && (

Commercial Evaluation Summary

{sessionDetail.session.commercialSummary}

)} {/* Overall Remarks */} {sessionDetail?.session?.overallRemarks && (

Overall Remarks

{sessionDetail.session.overallRemarks}

)} {/* Approval Information */} {sessionDetail?.session?.approvedAt && (

Approval Information

Approved By

{sessionDetail.session.approvedBy || "-"}

Approved Date

{formatDate(sessionDetail.session.approvedAt, "KR")}

{sessionDetail.session.approvalRemarks && (

Approval Remarks

{sessionDetail.session.approvalRemarks}

)}
)} {/* Session Information */}

Session Information

Status

{selectedSession?.sessionStatus}

Created Date

{selectedSession?.createdAt ? formatDate(selectedSession.createdAt, "KR") : "-"}

{sessionDetail?.session?.actualStartDate && (

Start Date

{formatDate(sessionDetail.session.actualStartDate, "KR")}

)} {sessionDetail?.session?.actualEndDate && (

End Date

{formatDate(sessionDetail.session.actualEndDate, "KR")}

)}
{/* Next Steps (for vendor) */} {selectedSession?.evaluationResult && (

Next Steps

{selectedSession.evaluationResult === "pass" && (

기술 평가를 통과하셨습니다. 상업 협상 단계로 진행될 예정입니다. 구매담당자가 추가 안내를 제공할 것입니다.

)} {selectedSession.evaluationResult === "conditional_pass" && (

조건부 통과되었습니다. 명시된 조건을 충족하신 후 최종 승인을 받으실 수 있습니다. 조건 충족을 위한 추가 문서나 설명을 제출해주세요.

)} {selectedSession.evaluationResult === "non_pass" && (

안타깝게도 이번 기술 평가를 통과하지 못하셨습니다. 평가 요약 내용을 참고하시어 향후 입찰에 반영해주시기 바랍니다.

)}
)}
) }