summaryrefslogtreecommitdiff
path: root/lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-08-04 09:40:21 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-08-04 09:40:21 +0000
commit459873f983cf1468f778109df4c7953c5d40743d (patch)
tree63393cf8fa24a4c76219a250893eb2cbcf0aabb7 /lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx
parent53ad72732f781e6c6d5ddb3776ea47aec010af8e (diff)
(최겸) 기술영업 요구사항 반영
Diffstat (limited to 'lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx')
-rw-r--r--lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx54
1 files changed, 54 insertions, 0 deletions
diff --git a/lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx b/lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx
index 7ece2406..65f11d0e 100644
--- a/lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx
+++ b/lib/techsales-rfq/table/detail-table/rfq-detail-column.tsx
@@ -47,6 +47,12 @@ export interface RfqDetailView {
quotationCode?: string | null
rfqCode?: string | null
quotationVersion?: number | null
+ vendorFlags?: {
+ isCustomerPreferred?: boolean; // 고객(선주) 선호 벤더
+ isNewDiscovery?: boolean; // 신규 발굴 벤더
+ isProjectApproved?: boolean; // Project Approved Vendor
+ isShiProposal?: boolean; // SHI Proposal Vendor
+ } | null
quotationAttachments?: Array<{
id: number
revisionId: number
@@ -202,6 +208,54 @@ export function getRfqDetailColumns({
enableResizing: false,
size: 60,
},
+ // [벤더 구분자 컬럼 추가]
+ {
+ id: "vendorFlags",
+ header: ({ column }) => (
+ <DataTableColumnHeaderSimple column={column} title="벤더 구분자" />
+ ),
+ cell: ({ row }) => {
+ const vendorFlags = row.original.vendorFlags;
+
+ if (!vendorFlags) {
+ return <div className="text-muted-foreground">-</div>;
+ }
+
+ const activeFlags = [];
+
+ if (vendorFlags.isCustomerPreferred) {
+ activeFlags.push({ key: "isCustomerPreferred", label: "고객(선주) 선호 벤더", variant: "default" as const });
+ }
+ if (vendorFlags.isNewDiscovery) {
+ activeFlags.push({ key: "isNewDiscovery", label: "신규 발굴 벤더", variant: "secondary" as const });
+ }
+ if (vendorFlags.isProjectApproved) {
+ activeFlags.push({ key: "isProjectApproved", label: "Project Approved Vendor", variant: "outline" as const });
+ }
+ if (vendorFlags.isShiProposal) {
+ activeFlags.push({ key: "isShiProposal", label: "SHI Proposal Vendor", variant: "destructive" as const });
+ }
+
+ if (activeFlags.length === 0) {
+ return <div className="text-muted-foreground">-</div>;
+ }
+
+ return (
+ <div className="flex flex-wrap gap-1">
+ {activeFlags.map((flag) => (
+ <Badge key={flag.key} variant={flag.variant} className="text-xs">
+ {flag.label}
+ </Badge>
+ ))}
+ </div>
+ );
+ },
+ meta: {
+ excelHeader: "벤더 구분자"
+ },
+ enableResizing: true,
+ size: 200,
+ },
{
accessorKey: "totalPrice",
header: ({ column }) => (