"use client" import * as React from "react" import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Badge } from "@/components/ui/badge" import { Separator } from "@/components/ui/separator" import { Button } from "@/components/ui/button" import { formatDateToQuarter } from "@/lib/utils" // 프로젝트 스냅샷 타입 정의 interface ProjectSnapshot { scDt?: string klDt?: string lcDt?: string dlDt?: string dockNo?: string dockNm?: string projNo?: string projNm?: string ownerNm?: string kunnrNm?: string cls1Nm?: string projMsrm?: number ptypeNm?: string sector?: string estmPm?: string } // 시리즈 스냅샷 타입 정의 interface SeriesSnapshot { sersNo?: string scDt?: string klDt?: string lcDt?: string dlDt?: string dockNo?: string dockNm?: string } // 기본적인 RFQ 타입 정의 (rfq-table.tsx와 일치) interface TechSalesRfq { id: number rfqCode: string | null itemId: number itemName: string | null materialCode: string | null dueDate: Date rfqSendDate: Date | null status: "RFQ Created" | "RFQ Vendor Assignned" | "RFQ Sent" | "Quotation Analysis" | "Closed" picCode: string | null remark: string | null cancelReason: string | null createdAt: Date updatedAt: Date createdBy: number | null createdByName: string updatedBy: number | null updatedByName: string sentBy: number | null sentByName: string | null projectSnapshot: ProjectSnapshot | null seriesSnapshot: SeriesSnapshot[] | null pspid: string projNm: string sector: string projMsrm: number ptypeNm: string attachmentCount: number quotationCount: number } interface ProjectDetailDialogProps { open: boolean onOpenChange: (open: boolean) => void selectedRfq: TechSalesRfq | null } export function ProjectDetailDialog({ open, onOpenChange, selectedRfq, }: ProjectDetailDialogProps) { if (!selectedRfq) { return null } const projectSnapshot = selectedRfq.projectSnapshot const seriesSnapshot = selectedRfq.seriesSnapshot return ( 프로젝트 상세정보 {selectedRfq.pspid}
RFQ: {selectedRfq.rfqCode || "미할당"} | 자재: {selectedRfq.materialCode || "N/A"}
{selectedRfq.projNm} - {selectedRfq.ptypeNm} ({selectedRfq.itemName || "자재명 없음"})
{/* 기본 프로젝트 정보 */}

기본 정보

프로젝트 ID
{selectedRfq.pspid}
프로젝트명
{selectedRfq.projNm}
선종
{selectedRfq.ptypeNm}
척수
{selectedRfq.projMsrm}
섹터
{selectedRfq.sector}
{/* 프로젝트 스냅샷 정보 */} {projectSnapshot && (

프로젝트 스냅샷

{projectSnapshot.scDt && (
S/C
{formatDateToQuarter(projectSnapshot.scDt)}
)} {projectSnapshot.klDt && (
K/L
{formatDateToQuarter(projectSnapshot.klDt)}
)} {projectSnapshot.lcDt && (
L/C
{formatDateToQuarter(projectSnapshot.lcDt)}
)} {projectSnapshot.dlDt && (
D/L
{formatDateToQuarter(projectSnapshot.dlDt)}
)} {projectSnapshot.dockNo && (
도크번호
{projectSnapshot.dockNo}
)} {projectSnapshot.dockNm && (
도크명
{projectSnapshot.dockNm}
)} {projectSnapshot.projNo && (
공사번호
{projectSnapshot.projNo}
)} {projectSnapshot.projNm && (
공사명
{projectSnapshot.projNm}
)} {projectSnapshot.ownerNm && (
선주
{projectSnapshot.ownerNm}
)} {projectSnapshot.kunnrNm && (
선주명
{projectSnapshot.kunnrNm}
)} {projectSnapshot.cls1Nm && (
선급명
{projectSnapshot.cls1Nm}
)} {projectSnapshot.projMsrm && (
척수
{projectSnapshot.projMsrm}
)} {projectSnapshot.ptypeNm && (
선종명
{projectSnapshot.ptypeNm}
)} {projectSnapshot.sector && (
섹터
{projectSnapshot.sector}
)} {projectSnapshot.estmPm && (
견적 PM
{projectSnapshot.estmPm}
)}
)} {/* 시리즈 스냅샷 정보 */} {seriesSnapshot && Array.isArray(seriesSnapshot) && seriesSnapshot.length > 0 && ( <>

시리즈 정보 스냅샷

{seriesSnapshot.map((series: SeriesSnapshot, index: number) => (
시리즈 {series.sersNo || index + 1}
{series.scDt && (
S/C
{formatDateToQuarter(series.scDt)}
)} {series.klDt && (
K/L
{formatDateToQuarter(series.klDt)}
)} {series.lcDt && (
L/C
{formatDateToQuarter(series.lcDt)}
)} {series.dlDt && (
D/L
{formatDateToQuarter(series.dlDt)}
)} {series.dockNo && (
도크번호
{series.dockNo}
)} {series.dockNm && (
도크명
{series.dockNm}
)}
))}
)} {/* 추가 정보가 없는 경우 */} {!projectSnapshot && !seriesSnapshot && (
추가 프로젝트 상세정보가 없습니다.
)}
{/* 닫기 버튼 */}
) }