diff --git a/utilities/project-factory/src/server/config/index.ts b/utilities/project-factory/src/server/config/index.ts index 127e6332f8..50fe8b4545 100644 --- a/utilities/project-factory/src/server/config/index.ts +++ b/utilities/project-factory/src/server/config/index.ts @@ -19,6 +19,7 @@ const config = { excludeHierarchyTypeFromBoundaryCodes:false, excludeBoundaryNameAtLastFromBoundaryCodes:false, masterNameForSchemaOfColumnHeaders: "adminSchema", + masterNameForSplitBoundariesOn: "hierarchyConfig", boundary: { boundaryCode: process.env.BOUNDARY_CODE_HEADER_NAME || "HCM_ADMIN_CONSOLE_BOUNDARY_CODE", boundaryTab: process.env.BOUNDARY_TAB_NAME || "HCM_ADMIN_CONSOLE_BOUNDARY_DATA", diff --git a/utilities/project-factory/src/server/utils/campaignUtils.ts b/utilities/project-factory/src/server/utils/campaignUtils.ts index 25c69502cc..367ab14e09 100644 --- a/utilities/project-factory/src/server/utils/campaignUtils.ts +++ b/utilities/project-factory/src/server/utils/campaignUtils.ts @@ -1788,7 +1788,8 @@ async function getFinalValidHeadersForTargetSheetAsPerCampaignType(request: any, async function getDifferentTabGeneratedBasedOnConfig(request: any, boundaryDataGeneratedBeforeDifferentTabSeparation: any, localizationMap?: any) { var boundaryDataGeneratedAfterDifferentTabSeparation: any = boundaryDataGeneratedBeforeDifferentTabSeparation; const boundaryData = await getBoundaryDataAfterGeneration(boundaryDataGeneratedBeforeDifferentTabSeparation, request, localizationMap); - const differentTabsBasedOnLevel = getLocalizedName(config?.boundary?.generateDifferentTabsOnBasisOf, localizationMap); + let differentTabsBasedOnLevel = await getBoundaryOnWhichWeSplit(request); + differentTabsBasedOnLevel = getLocalizedName(`${request?.query?.hierarchyType}_${differentTabsBasedOnLevel}`.toUpperCase(), localizationMap); logger.info(`Boundaries are seperated based on hierarchy type ${differentTabsBasedOnLevel}`) const isKeyOfThatTypePresent = boundaryData.some((data: any) => data.hasOwnProperty(differentTabsBasedOnLevel)); const boundaryTypeOnWhichWeSplit = boundaryData.filter((data: any) => data[differentTabsBasedOnLevel]); @@ -1799,6 +1800,13 @@ async function getDifferentTabGeneratedBasedOnConfig(request: any, boundaryDataG return boundaryDataGeneratedAfterDifferentTabSeparation; } +async function getBoundaryOnWhichWeSplit(request: any) { + const mdmsResponse = await getMDMSV1Data(request, config?.values?.moduleName, config?.masterNameForSplitBoundariesOn, request?.query?.tenantId); + const responseFromCampaignSearch = await getCampaignSearchResponse(request); + const hierarchyTypeFromCampaignResponseObject = responseFromCampaignSearch?.CampaignDetails?.[0].hierarchyType; + return mdmsResponse.filter((item: any) => item.hierarchy == hierarchyTypeFromCampaignResponseObject).map((item: any) => item.splitBoundariesOn); +} +