summaryrefslogtreecommitdiff
path: root/lib/techsales-rfq/approval-actions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/techsales-rfq/approval-actions.ts')
-rw-r--r--lib/techsales-rfq/approval-actions.ts42
1 files changed, 22 insertions, 20 deletions
diff --git a/lib/techsales-rfq/approval-actions.ts b/lib/techsales-rfq/approval-actions.ts
index 335be760..cf914592 100644
--- a/lib/techsales-rfq/approval-actions.ts
+++ b/lib/techsales-rfq/approval-actions.ts
@@ -172,17 +172,19 @@ function getTechSalesRevalidationPath(rfqType: "SHIP" | "TOP" | "HULL"): string
}
}
/**
- * 기술영업 RFQ 재발송 결재 상신
+ * 기술영업 RFQ DRM 첨부 해제 결재 상신
*
- * 이미 발송된 RFQ에 DRM 파일이 추가된 경우 재발송을 위한 결재 상신
+ * 이미 발송된 RFQ에 DRM 파일이 추가된 경우 DRM 해제를 위한 결재 상신
*/
export async function requestRfqResendWithDrmApproval(data: {
rfqId: number;
rfqCode?: string;
- drmFiles: Array<{
- file: File;
- attachmentType: string;
- description?: string;
+ drmAttachmentIds: number[];
+ drmAttachments: Array<{
+ id: number;
+ fileName?: string | null;
+ fileSize?: number | null;
+ attachmentType?: string | null;
}>;
applicationReason: string;
currentUser: {
@@ -197,18 +199,18 @@ export async function requestRfqResendWithDrmApproval(data: {
throw new Error('Knox EP ID가 필요합니다.');
}
- console.log('[RFQ Resend Approval] Starting resend approval process');
- console.log('[RFQ Resend Approval] RFQ ID:', data.rfqId);
- console.log('[RFQ Resend Approval] DRM Files:', data.drmFiles.length);
+ console.log('[RFQ DRM Unlock Approval] Starting DRM unlock approval process');
+ console.log('[RFQ DRM Unlock Approval] RFQ ID:', data.rfqId);
+ console.log('[RFQ DRM Unlock Approval] DRM Attachments:', data.drmAttachmentIds.length);
try {
// 템플릿 변수 매핑
const variables = await mapTechSalesRfqSendToTemplateVariables({
- attachments: data.drmFiles.map(f => ({
- fileName: f.file.name,
- fileSize: f.file.size,
+ attachments: data.drmAttachments.map(att => ({
+ fileName: att.fileName,
+ fileSize: att.fileSize,
})),
- vendorNames: [], // 기존 벤더 목록은 후처리에서 조회
+ vendorNames: [],
applicationReason: data.applicationReason,
});
@@ -216,7 +218,7 @@ export async function requestRfqResendWithDrmApproval(data: {
const approvalPayload = {
rfqId: data.rfqId,
rfqCode: data.rfqCode,
- drmFiles: data.drmFiles,
+ drmAttachmentIds: data.drmAttachmentIds,
currentUser: {
id: data.currentUser.id,
name: data.currentUser.name,
@@ -231,8 +233,8 @@ export async function requestRfqResendWithDrmApproval(data: {
'tech_sales_rfq_resend_with_drm', // 핸들러 키
approvalPayload,
{
- title: `DRM 파일 재발송 결재 - ${data.rfqCode || 'RFQ'}`,
- description: `이미 발송된 RFQ에 ${data.drmFiles.length}개의 DRM 파일이 추가되어 재발송을 요청합니다.`,
+ title: `DRM 파일 해제 결재 - ${data.rfqCode || 'RFQ'}`,
+ description: `발송 완료된 RFQ에 추가된 DRM 첨부파일 ${data.drmAttachmentIds.length}개 해제를 요청합니다.`,
templateName: '암호화해제 신청',
variables,
approvers: data.approvers,
@@ -247,20 +249,20 @@ export async function requestRfqResendWithDrmApproval(data: {
const result = await saga.execute();
- console.log('[RFQ Resend Approval] ✅ Resend approval submitted successfully');
+ console.log('[RFQ DRM Unlock Approval] ✅ DRM unlock approval submitted successfully');
return {
success: true,
...result,
- message: `재발송 결재가 상신되었습니다. (결재 ID: ${result.approvalId})`,
+ message: `DRM 해제 결재가 상신되었습니다. (결재 ID: ${result.approvalId})`,
};
} catch (error) {
- console.error('[RFQ Resend Approval] ❌ Failed to submit resend approval:', error);
+ console.error('[RFQ DRM Unlock Approval] ❌ Failed to submit DRM unlock approval:', error);
throw new Error(
error instanceof Error
? error.message
- : 'RFQ 재발송 결재 상신에 실패했습니다.'
+ : 'RFQ DRM 해제 결재 상신에 실패했습니다.'
);
}
}