summaryrefslogtreecommitdiff
path: root/lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-11-28 16:05:42 +0900
committerjoonhoekim <26rote@gmail.com>2025-11-28 16:05:42 +0900
commit927b3d6cbfad6ce84ec1bff2faaace95e9586efd (patch)
tree7faa247934eaf3186cf7e2489d0df5406d971507 /lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx
parentb278ee06ce347a4d2b1201d02a7f0061f607657a (diff)
(김준회) dolce RegisterKind 코드 오류 수정 (APPP --> APPR-P), 업로드시 file max seq 처리 추가, 상세도면 추가시 RegisterSerialNo 최대값 + 1 으로 요청
Diffstat (limited to 'lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx')
-rw-r--r--lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx32
1 files changed, 28 insertions, 4 deletions
diff --git a/lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx b/lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx
index 54ec79a7..d4318b90 100644
--- a/lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx
+++ b/lib/dolce/dialogs/add-and-modify-detail-drawing-dialog.tsx
@@ -23,7 +23,7 @@ import { Textarea } from "@/components/ui/textarea";
import { Upload, X, FileIcon, Info, Trash2 } from "lucide-react";
import { toast } from "sonner";
import { useTranslation } from "@/i18n/client";
-import { UnifiedDwgReceiptItem, DetailDwgReceiptItem, editDetailDwgReceipt } from "../actions";
+import { UnifiedDwgReceiptItem, DetailDwgReceiptItem, editDetailDwgReceipt, fetchDetailDwgReceiptList } from "../actions";
import { v4 as uuidv4 } from "uuid";
import { useFileUploadWithProgress } from "../hooks/use-file-upload-with-progress";
import { uploadFilesWithProgress } from "../utils/upload-with-progress";
@@ -32,7 +32,8 @@ import {
getB3DrawingUsageOptions,
getB3RegisterKindOptions,
getB4DrawingUsageOptions,
- getB4RegisterKindOptions
+ getB4RegisterKindOptions,
+ findRegisterKindCode
} from "../utils/code-translator";
import {
AlertDialog,
@@ -92,7 +93,7 @@ export function AddAndModifyDetailDrawingDialog({
useEffect(() => {
if (mode === "edit" && detailDrawing && open) {
setDrawingUsage(detailDrawing.DrawingUsage || "");
- setRegisterKind(detailDrawing.RegisterKind || "");
+ setRegisterKind(findRegisterKindCode(detailDrawing.RegisterKind || "", drawingKind));
setRevision(detailDrawing.DrawingRevNo || "");
setComment(detailDrawing.RegisterDesc || "");
} else if (mode === "add" && open) {
@@ -227,6 +228,29 @@ export function AddAndModifyDetailDrawingDialog({
setIsSubmitting(true);
if (mode === "add" && drawing) {
+ // 상세도면 리스트 조회하여 RegisterSerialNo 계산
+ let nextSerialNo = 1;
+ try {
+ const detailList = await fetchDetailDwgReceiptList({
+ project: drawing.ProjectNo,
+ drawingNo: drawing.DrawingNo,
+ discipline: drawing.Discipline,
+ drawingKind: drawing.DrawingKind,
+ userId: userId,
+ });
+
+ if (detailList && detailList.length > 0) {
+ // RegisterSerialNo의 최댓값을 찾아 +1 (기본값 0 처리)
+ const maxSerial = Math.max(...detailList.map(item => item.RegisterSerialNo || 0));
+ nextSerialNo = maxSerial + 1;
+ }
+ console.log(`[AddDetail] RegisterSerialNo Calculated: ${nextSerialNo} (Max: ${nextSerialNo - 1})`);
+ } catch (error) {
+ console.error("상세도면 리스트 조회 실패 (SerialNo 계산 중):", error);
+ toast.error("Failed to calculate serial number");
+ return;
+ }
+
// 파일 업로드 ID 생성
const uploadId = uuidv4();
@@ -243,7 +267,7 @@ export function AddAndModifyDetailDrawingDialog({
DrawingNo: drawing.DrawingNo,
DrawingName: drawing.DrawingName,
RegisterGroupId: drawing.RegisterGroupId,
- RegisterSerialNo: 0, // 자동 증가
+ RegisterSerialNo: nextSerialNo, // 자동 증가값 사용
RegisterKind: registerKind,
DrawingRevNo: drawingUsage === "CMT" ? null : revision,
Category: "TS", // To SHI (벤더가 SHI에게 제출)