summaryrefslogtreecommitdiff
path: root/lib/vendor-document-list
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-document-list')
-rw-r--r--lib/vendor-document-list/plant/document-stage-dialogs.tsx12
-rw-r--r--lib/vendor-document-list/plant/document-stages-service.ts9
-rw-r--r--lib/vendor-document-list/plant/excel-import-stage.tsx12
3 files changed, 18 insertions, 15 deletions
diff --git a/lib/vendor-document-list/plant/document-stage-dialogs.tsx b/lib/vendor-document-list/plant/document-stage-dialogs.tsx
index a738eba9..0c972658 100644
--- a/lib/vendor-document-list/plant/document-stage-dialogs.tsx
+++ b/lib/vendor-document-list/plant/document-stage-dialogs.tsx
@@ -374,9 +374,9 @@ export function AddDocumentDialog({
const shiDocNumber = shiType ? generateShiPreview() : ''
const cpyDocNumber = cpyType ? generateCpyPreview() : ''
- // 선택된 Document Class의 code 값을 가져오기 (SWP API의 DOC_CLASS로 사용)
+ // 선택된 Document Class의 value 값을 가져오기 (SWP API의 DOC_CLASS로 사용)
const selectedDocClass = documentClasses.find(cls => String(cls.id) === data.documentClassId)
- const docClassCode = selectedDocClass?.code || ''
+ const docClassValue = selectedDocClass?.value || ''
// documentNumberTypeId는 SHI를 우선 사용, 없으면 CPY 사용
const documentNumberTypeId = shiType?.id || cpyType?.id
@@ -391,7 +391,7 @@ export function AddDocumentDialog({
contractId,
documentNumberTypeId,
documentClassId: Number(data.documentClassId),
- docClass: docClassCode, // 첫 번째 선택기의 code 값 사용 (A, B, C 등)
+ docClass: docClassValue, // Document Class의 value 값 사용 (A Class, B Class 등)
title: data.title,
docNumber: shiDocNumber,
vendorDocNumber: cpyDocNumber,
@@ -610,8 +610,10 @@ export function AddDocumentDialog({
<SelectContent>
{documentClasses.map((cls) => (
<SelectItem key={cls.id} value={String(cls.id)}>
- <span className="font-mono font-semibold">{cls.code}</span>
- {cls.description && <span className="text-muted-foreground"> - {cls.description}</span>}
+ <span className="font-mono font-bold">{cls.value}</span>
+ {cls.description && cls.description.trim() !== '' && (
+ <span className="text-muted-foreground"> - {cls.description}</span>
+ )}
</SelectItem>
))}
</SelectContent>
diff --git a/lib/vendor-document-list/plant/document-stages-service.ts b/lib/vendor-document-list/plant/document-stages-service.ts
index 30f57a23..1a7b1ab6 100644
--- a/lib/vendor-document-list/plant/document-stages-service.ts
+++ b/lib/vendor-document-list/plant/document-stages-service.ts
@@ -804,7 +804,8 @@ export async function getDocumentClassOptionsByContract(contractId: number) {
.select({
id: documentClasses.id,
code: documentClasses.code,
- description: documentClasses.value,
+ value: documentClasses.value,
+ description: documentClasses.description,
})
.from(documentClasses)
.where(
@@ -1374,18 +1375,18 @@ export async function uploadImportData(data: UploadData) {
}
- // 2. Document Class 매핑 가져오기 (트랜잭션 밖에서) - code 기반으로 통일
+ // 2. Document Class 매핑 가져오기 (트랜잭션 밖에서) - value 기반으로 통일
const documentClassesData = await db
.select({
id: documentClasses.id,
- code: documentClasses.code,
+ value: documentClasses.value,
description: documentClasses.description,
})
.from(documentClasses)
.where(and(eq(documentClasses.projectId, contract.projectId), eq(documentClasses.isActive, true)))
const classMap = new Map(
- documentClassesData.map(dc => [dc.code, dc.id])
+ documentClassesData.map(dc => [dc.value, dc.id])
)
console.log(classMap)
diff --git a/lib/vendor-document-list/plant/excel-import-stage.tsx b/lib/vendor-document-list/plant/excel-import-stage.tsx
index 9bd9ed4c..24db6ea1 100644
--- a/lib/vendor-document-list/plant/excel-import-stage.tsx
+++ b/lib/vendor-document-list/plant/excel-import-stage.tsx
@@ -421,7 +421,7 @@ async function createImportTemplate(projectType: "ship" | "plant", contractId: n
const res = await getDocumentClassOptionsByContract(contractId)
if (!res.success) throw new Error(res.error || "데이터 로딩 실패")
- const documentClasses = res.data.classes as Array<{ id: number; code: string; description: string }>
+ const documentClasses = res.data.classes as Array<{ id: number; value: string; description: string }>
const options = res.data.options as Array<{ documentClassId: number; optionValue: string }>
// 클래스별 옵션 맵
@@ -460,7 +460,7 @@ async function createImportTemplate(projectType: "ship" | "plant", contractId: n
const sampleRow = [
projectType === "ship" ? "SH-2024-001" : "PL-2024-001",
"샘플 문서명",
- firstClass ? firstClass.code : "",
+ firstClass ? firstClass.value : "", // value 사용 (A Class, B Class 등)
...(projectType === "plant" ? ["V-001"] : []),
...allStageNames.map((s) => (firstClassStages.includes(s) ? "2024-03-01" : "")),
]
@@ -648,8 +648,8 @@ if (projectType === "plant") {
styleHeaderRow(matrixHeaderRow, "FF34495E")
for (const docClass of documentClasses) {
const validStages = new Set(optionsByClassId.get(docClass.id) ?? [])
- // Code를 사용하고 설명을 괄호 안에 추가
- const row = [`${docClass.code}`, ...allStageNames.map((stage) => (validStages.has(stage) ? "✓" : ""))]
+ // Value를 사용 (A Class, B Class 등)
+ const row = [`${docClass.value}`, ...allStageNames.map((stage) => (validStages.has(stage) ? "✓" : ""))]
const dataRow = matrixSheet.addRow(row)
allStageNames.forEach((stage, idx) => {
const cell = dataRow.getCell(idx + 2)
@@ -712,8 +712,8 @@ if (projectType === "plant") {
const referenceSheet = workbook.addWorksheet("ReferenceData", { state: "hidden" })
referenceSheet.getCell("A1").value = "DocumentClasses"
documentClasses.forEach((dc, idx) => {
- // 코드를 메인으로, 설명을 참고용으로 표시
- referenceSheet.getCell(`A${idx + 2}`).value = dc.code
+ // value를 메인으로 (A Class, B Class 등), 설명을 참고용으로 표시
+ referenceSheet.getCell(`A${idx + 2}`).value = dc.value
referenceSheet.getCell(`B${idx + 2}`).value = dc.description
})