summaryrefslogtreecommitdiff
path: root/lib/techsales-rfq/approval-actions.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-24 05:00:38 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-24 05:00:38 +0000
commitd79f56ae5a9e5f72781f78fe0399018cfac44081 (patch)
tree7a4aaaba1e27e6aa7ac19bd72909989ae804d7e8 /lib/techsales-rfq/approval-actions.ts
parent58d700b925967bfe470c944b380b02b2140cab8a (diff)
(최겸) 기술영업 결재 수정
Diffstat (limited to 'lib/techsales-rfq/approval-actions.ts')
-rw-r--r--lib/techsales-rfq/approval-actions.ts23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/techsales-rfq/approval-actions.ts b/lib/techsales-rfq/approval-actions.ts
index 175bca1d..335be760 100644
--- a/lib/techsales-rfq/approval-actions.ts
+++ b/lib/techsales-rfq/approval-actions.ts
@@ -8,11 +8,13 @@
import { ApprovalSubmissionSaga } from '@/lib/approval';
import { mapTechSalesRfqSendToTemplateVariables } from './approval-handlers';
+import { revalidatePath, revalidateTag } from 'next/cache';
interface TechSalesRfqSendApprovalData {
// RFQ 기본 정보
rfqId: number;
rfqCode?: string;
+ rfqType: "SHIP" | "TOP" | "HULL";
// 발송 데이터
vendorIds: number[];
@@ -133,6 +135,10 @@ export async function requestTechSalesRfqSendWithApproval(data: TechSalesRfqSend
console.log('[TechSales RFQ Approval] ✅ Approval submitted successfully');
console.log('[TechSales RFQ Approval] Approval ID:', result.approvalId);
console.log('[TechSales RFQ Approval] Pending Action ID:', result.pendingActionId);
+ revalidateTag("techSalesRfqs");
+ revalidateTag("techSalesVendorQuotations");
+ revalidateTag(`techSalesRfq-${data.rfqId}`);
+ revalidatePath(getTechSalesRevalidationPath(data.rfqType || "SHIP"));
return {
success: true,
@@ -151,6 +157,21 @@ export async function requestTechSalesRfqSendWithApproval(data: TechSalesRfqSend
}
/**
+ * RFQ 타입에 따른 캐시 무효화 경로 반환
+ */
+function getTechSalesRevalidationPath(rfqType: "SHIP" | "TOP" | "HULL"): string {
+ switch (rfqType) {
+ case "SHIP":
+ return "/evcp/budgetary-tech-sales-ship";
+ case "TOP":
+ return "/evcp/budgetary-tech-sales-top";
+ case "HULL":
+ return "/evcp/budgetary-tech-sales-hull";
+ default:
+ return "/evcp/budgetary-tech-sales-ship";
+ }
+}
+/**
* 기술영업 RFQ 재발송 결재 상신
*
* 이미 발송된 RFQ에 DRM 파일이 추가된 경우 재발송을 위한 결재 상신
@@ -203,6 +224,7 @@ export async function requestRfqResendWithDrmApproval(data: {
epId: data.currentUser.epId,
},
};
+ console.log('approvalPayload', approvalPayload);
// Saga로 결재 상신
const saga = new ApprovalSubmissionSaga(
@@ -216,6 +238,7 @@ export async function requestRfqResendWithDrmApproval(data: {
approvers: data.approvers,
currentUser: {
id: data.currentUser.id,
+ name: data.currentUser.name,
epId: data.currentUser.epId,
email: data.currentUser.email,
},