1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
export interface RfqShipVendorRow {
/** 주요 식별 정보 */
id: number
vendorId: number
rfqId: number
/** Vendor 기본정보 */
vendorName: string
vendorCode: string | null
vendorStatus: string | null
/** 프로젝트 정보 */
projectId: number | null
projectCode: string | null
projectName: string | null
/** RFQ 정보 */
rfqCode: string | null
rfqDescription: string | null
/** CBE 응답 정보 */
commercialResponseStatus: string | null
totalPrice: number | null
currency: string | null
paymentTerms: string | null
incoterms: string | null
deliveryPeriod: string | null
warrantyPeriod: string | null
validityPeriod: string | null
commercialNotes: string | null
respondedAt: Date | null
/** 첨부파일 개수 */
attachmentCount: number | null
commercialAttachmentCount: number | null
/** 댓글 목록 */
comments: Array<{
id: number
commentText: string
vendorId?: number
createdAt: Date
commentedBy?: number
}>
}
export interface RfqShipColumnConfig {
/** 객체의 어느 필드를 표시할지 */
id: keyof RfqShipVendorRow;
/** 화면에서 보여줄 컬럼명 */
label: string;
/** (선택) 그룹핑/카테고리 */
group?: string;
/** (선택) Excel에서의 헤더 */
excelHeader?: string;
/** (선택) 데이터 타입(예: date, string, number 등), 포맷 지정용 */
type?: string;
}
/**
* 프로젝트 정보, 벤더 정보, CBE 정보가 결합된 컬럼 구성
*/
export const rfqShipColumnsConfig: RfqShipColumnConfig[] = [
// 프로젝트 정보
{
id: "projectCode",
label: "Project Code",
excelHeader: "Project Code",
group: "Project Info",
},
{
id: "projectName",
label: "Project Name",
excelHeader: "Project Name",
group: "Project Info",
},
{
id: "rfqCode",
label: "RFQ Code",
excelHeader: "RFQ Code",
group: "Project Info",
},
// 벤더 정보
{
id: "vendorName",
label: "Vendor Name",
excelHeader: "Vendor Name",
group: "Vendor Info",
},
{
id: "vendorCode",
label: "Vendor Code",
excelHeader: "Vendor Code",
group: "Vendor Info",
},
// 상업 응답 정보
{
id: "commercialResponseStatus",
label: "Status",
excelHeader: "Status",
group: "Commercial Response",
type: "text",
},
{
id: "totalPrice",
label: "Total Price",
excelHeader: "Total Price",
group: "Commercial Response",
type: "number",
},
{
id: "currency",
label: "Currency",
excelHeader: "Currency",
group: "Commercial Response",
},
{
id: "paymentTerms",
label: "Payment Terms",
excelHeader: "Payment Terms",
group: "Commercial Response",
},
{
id: "incoterms",
label: "Incoterms",
excelHeader: "Incoterms",
group: "Commercial Response",
},
{
id: "deliveryPeriod",
label: "Delivery Period",
excelHeader: "Delivery Period",
group: "Commercial Response",
}
]
|