From f1df9b4b081871a1f7227f599eda3050e1f55476 Mon Sep 17 00:00:00 2001 From: faisolavolut Date: Tue, 25 Feb 2025 12:04:22 +0700 Subject: [PATCH] feat: enhance approval logic to include role checks and improve decision flow --- utils/conditionalMPR.ts | 45 +++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/utils/conditionalMPR.ts b/utils/conditionalMPR.ts index 5434731..6f615be 100644 --- a/utils/conditionalMPR.ts +++ b/utils/conditionalMPR.ts @@ -41,7 +41,6 @@ export const showApprovel = ( }; const isBudget = data?.mp_planning_header_id ? true : false; const isField = data?.organization_category === "Non Field" ? false : true; - console.log(data?.status); if (data?.status === "NEED APPROVAL") { if (data?.department_head && !data?.vp_gm_director) { return { @@ -86,22 +85,34 @@ export const showApprovel = ( } return null; } else if (data?.status === "APPROVED") { - console.log(data?.status); - if (data?.department_head && !data?.vp_gm_director) { - return { - approve: - action === "reject" - ? "REJECTED" - : isField - ? "APPROVED" - : "NEED APPROVAL", - level: "Level VP", - }; - } else if (!data?.hrd_ho_unit) { - return { - approve: action === "reject" ? "REJECTED" : "COMPLETED", - level: "Level HRD HO", - }; + if (role?.head) { + return null; + } + console.log({ role }); + if (isBudget) { + if (!data?.hrd_ho_unit_name) { + return { + approve: action === "reject" ? "REJECTED" : "COMPLETED", + level: "Level HRD HO", + }; + } + } else { + if (data?.department_head && !data?.vp_gm_director) { + return { + approve: + action === "reject" + ? "REJECTED" + : isField + ? "APPROVED" + : "NEED APPROVAL", + level: "Level VP", + }; + } else if (!data?.hrd_ho_unit) { + return { + approve: action === "reject" ? "REJECTED" : "COMPLETED", + level: "Level HRD HO", + }; + } } } return null;