diff options
Diffstat (limited to 'lib/techsales-rfq/approval-actions.ts')
| -rw-r--r-- | lib/techsales-rfq/approval-actions.ts | 42 |
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 해제 결재 상신에 실패했습니다.' ); } } |
