diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 44887ef..2f7de29 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -459,7 +459,6 @@ export class ReportController extends Controller { if (requestBody.type == "KPI4") { templateName = "KPI4"; reportName = "KPI4"; - //use_filter const yearNow = new Date().getFullYear(); if (requestBody.profileId) { //ชั่วคราว @@ -481,96 +480,98 @@ export class ReportController extends Controller { // .getRawMany(); // const profileEvaluationCombianIds = profileEvaluationNowYearIds.concat(profileEvaluationNextYearIds); - const profileEvaluations = await this.kpiUserEvaluationRepository.find({ - relations: ["kpiPeriod"], - where: { id: In(profileEvaluationNowYearIds.map((evaluation) => evaluation.id)) }, - }); - - const groupedEvaluations = profileEvaluations.reduce((acc: any, evaluation: any) => { - const year = evaluation.kpiPeriod.year; - const profileId = evaluation.profileId; - const key = `${profileId}-${year}`; - - if (!acc[key]) { - acc[key] = { - fullName: evaluation.prefix + evaluation.firstName + " " + evaluation.lastName, - profileId: profileId, - year: Extension.ToThaiNumber(Extension.ToThaiYear(year).toString()), // Set year once here - evaluations: [], - }; - } - - acc[key].evaluations.push(evaluation); - return acc; - }, {}); - - // สร้าง formatData - const combinedDatas = Object.values(groupedEvaluations).map((group: any) => { - const data: any = { - fullName: group.fullName ?? null, - year: group.year ?? null, - }; - - group.evaluations.forEach((evaluation: any) => { - if (evaluation.kpiPeriod.durationKPI === "APR") { - data.summaryPointAPR1 = - evaluation.summaryPoint >= 90 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointAPR2 = - evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointAPR3 = - evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointAPR4 = - evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointAPR5 = - evaluation.summaryPoint < 60 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.periodAPR = evaluation.kpiPeriod.durationKPI; - } else if (evaluation.kpiPeriod.durationKPI === "OCT") { - data.summaryPointOCT1 = - evaluation.summaryPoint >= 90 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointOCT2 = - evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointOCT3 = - evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointOCT4 = - evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.summaryPointOCT5 = - evaluation.summaryPoint < 60 - ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) - : null; - data.periodOCT = evaluation.kpiPeriod.durationKPI ?? null; - } + if (profileEvaluationNowYearIds.length > 0) { + //ชั่วคราว + const profileEvaluations = await this.kpiUserEvaluationRepository.find({ + relations: ["kpiPeriod"], + where: { id: In(profileEvaluationNowYearIds.map((evaluation) => evaluation.id)) }, }); - return data; - }); - formattedData = { - combinedDatas: combinedDatas.length > 0 ? combinedDatas : [{}], - fullName: combinedDatas[0]["fullName"] ?? null, - }; + const groupedEvaluations = profileEvaluations.reduce((acc: any, evaluation: any) => { + const year = evaluation.kpiPeriod.year; + const profileId = evaluation.profileId; + const key = `${profileId}-${year}`; + + if (!acc[key]) { + acc[key] = { + fullName: evaluation.prefix + evaluation.firstName + " " + evaluation.lastName, + profileId: profileId, + year: year?Extension.ToThaiNumber(Extension.ToThaiYear(year).toString()):null, + evaluations: [], + }; + } + + acc[key].evaluations.push(evaluation); + return acc; + }, {}); + + // สร้าง formatData + const combinedDatas = Object.values(groupedEvaluations).map((group: any) => { + const data: any = { + fullName: group.fullName ?? null, + year: group.year ?? null, + }; + + group.evaluations.forEach((evaluation: any) => { + if (evaluation.kpiPeriod.durationKPI === "APR") { + data.summaryPointAPR1 = + evaluation.summaryPoint >= 90 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointAPR2 = + evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointAPR3 = + evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointAPR4 = + evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointAPR5 = + evaluation.summaryPoint < 60 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.periodAPR = evaluation.kpiPeriod.durationKPI; + } else if (evaluation.kpiPeriod.durationKPI === "OCT") { + data.summaryPointOCT1 = + evaluation.summaryPoint >= 90 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointOCT2 = + evaluation.summaryPoint >= 80 && evaluation.summaryPoint < 90 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointOCT3 = + evaluation.summaryPoint >= 70 && evaluation.summaryPoint < 80 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointOCT4 = + evaluation.summaryPoint >= 60 && evaluation.summaryPoint < 70 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.summaryPointOCT5 = + evaluation.summaryPoint < 60 + ? Extension.ToThaiNumber(evaluation.summaryPoint.toString()) + : null; + data.periodOCT = evaluation.kpiPeriod.durationKPI ?? null; + } + }); + + return data; + }); + formattedData = { + combinedDatas: combinedDatas.length > 0 ? combinedDatas : [{}], + fullName: combinedDatas[0]["fullName"] ?? null, + }; + } } } if (requestBody.type == "KPI5") { templateName = "KPI5"; reportName = "KPI5"; - //use_filter interface KPIData { fullName: string | null; position: string | null; @@ -636,164 +637,166 @@ export class ReportController extends Controller { .groupBy("kpiUserEvaluation.kpiPeriodId") .select("MIN(kpiUserEvaluation.id) as id") .getRawMany(); + if (profileEvaluationIds.length > 0) { + const profileEvaluation = await this.kpiUserEvaluationRepository.find({ + relations: ["kpiPeriod"], + where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) }, + }); - const profileEvaluation = await this.kpiUserEvaluationRepository.find({ - relations: ["kpiPeriod"], - where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) }, - }); + const combinedData: KPIData = profileEvaluation.reduce( + (acc: KPIData, x) => { + const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org]; - const combinedData: KPIData = profileEvaluation.reduce( - (acc: KPIData, x) => { - const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org]; + const affiliation = fullNameParts + .filter((part) => part !== undefined && part !== null) + .join("/"); - const affiliation = fullNameParts - .filter((part) => part !== undefined && part !== null) - .join("/"); + if (!acc.fullName) { + acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName; + acc.position = x.position; + acc.posType = x.posTypeName; + acc.posLevel = x.posLevelName; + acc.affiliation = affiliation; + } - if (!acc.fullName) { - acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName; - acc.position = x.position; - acc.posType = x.posTypeName; - acc.posLevel = x.posLevelName; - acc.affiliation = affiliation; - } + if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR1 = x.summaryPoint + ?Extension.ToThaiNumber(x.summaryPoint.toString()): null; + acc.textPointAPR1 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR1 = x.kpiPeriod.durationKPI; + acc.yearAPR1 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR1 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR1 = x.kpiPeriod.durationKPI; - acc.yearAPR1 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT1 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT1 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodOCT1 = x.kpiPeriod.durationKPI; + acc.yearOCT1 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 4 && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT1 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT1 = x.kpiPeriod.durationKPI; - acc.yearOCT1 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointAPR2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR2 = x.kpiPeriod.durationKPI; + acc.yearAPR2 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR2 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR2 = x.kpiPeriod.durationKPI; - acc.yearAPR2 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodOCT2 = x.kpiPeriod.durationKPI; + acc.yearOCT2 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 3 && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT2 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT2 = x.kpiPeriod.durationKPI; - acc.yearOCT2 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointAPR3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR3 = x.kpiPeriod.durationKPI; + acc.yearAPR3 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR3 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR3 = x.kpiPeriod.durationKPI; - acc.yearAPR3 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodOCT3 = x.kpiPeriod.durationKPI; + acc.yearOCT3 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT3 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT3 = x.kpiPeriod.durationKPI; - acc.yearOCT3 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR4 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointAPR4 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR4 = x.kpiPeriod.durationKPI; + acc.yearAPR4 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR4 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR4 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR4 = x.kpiPeriod.durationKPI; - acc.yearAPR4 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT4 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT4 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodOCT4 = x.kpiPeriod.durationKPI; + acc.yearOCT4 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT4 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT4 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT4 = x.kpiPeriod.durationKPI; - acc.yearOCT4 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR5 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointAPR5 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR5 = x.kpiPeriod.durationKPI; + acc.yearAPR5 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR5 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR5 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR5 = x.kpiPeriod.durationKPI; - acc.yearAPR5 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT5 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT5 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodOCT5 = x.kpiPeriod.durationKPI; + acc.yearOCT5 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT5 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT5 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT5 = x.kpiPeriod.durationKPI; - acc.yearOCT5 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } - - return acc; - }, - { - fullName: null, - position: null, - posType: null, - posLevel: null, - affiliation: null, - summaryPointAPR1: null, - textPointAPR1: null, - periodAPR1: null, - yearAPR1: null, - summaryPointOCT1: null, - textPointOCT1: null, - periodOCT1: null, - yearOCT1: null, - summaryPointAPR2: null, - textPointAPR2: null, - periodAPR2: null, - yearAPR2: null, - summaryPointOCT2: null, - textPointOCT2: null, - periodOCT2: null, - yearOCT2: null, - summaryPointAPR3: null, - textPointAPR3: null, - periodAPR3: null, - yearAPR3: null, - summaryPointOCT3: null, - textPointOCT3: null, - periodOCT3: null, - yearOCT3: null, - summaryPointAPR4: null, - textPointAPR4: null, - periodAPR4: null, - yearAPR4: null, - summaryPointOCT4: null, - textPointOCT4: null, - periodOCT4: null, - yearOCT4: null, - summaryPointAPR5: null, - textPointAPR5: null, - periodAPR5: null, - yearAPR5: null, - summaryPointOCT5: null, - textPointOCT5: null, - periodOCT5: null, - yearOCT5: null, - year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 4).toString()), - year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 3).toString()), - year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()), - year4: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()), - year5: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()), - }, - ); - formattedData = combinedData; + return acc; + }, + { + fullName: null, + position: null, + posType: null, + posLevel: null, + affiliation: null, + summaryPointAPR1: null, + textPointAPR1: null, + periodAPR1: null, + yearAPR1: null, + summaryPointOCT1: null, + textPointOCT1: null, + periodOCT1: null, + yearOCT1: null, + summaryPointAPR2: null, + textPointAPR2: null, + periodAPR2: null, + yearAPR2: null, + summaryPointOCT2: null, + textPointOCT2: null, + periodOCT2: null, + yearOCT2: null, + summaryPointAPR3: null, + textPointAPR3: null, + periodAPR3: null, + yearAPR3: null, + summaryPointOCT3: null, + textPointOCT3: null, + periodOCT3: null, + yearOCT3: null, + summaryPointAPR4: null, + textPointAPR4: null, + periodAPR4: null, + yearAPR4: null, + summaryPointOCT4: null, + textPointOCT4: null, + periodOCT4: null, + yearOCT4: null, + summaryPointAPR5: null, + textPointAPR5: null, + periodAPR5: null, + yearAPR5: null, + summaryPointOCT5: null, + textPointOCT5: null, + periodOCT5: null, + yearOCT5: null, + year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 4).toString()), + year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 3).toString()), + year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()), + year4: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()), + year5: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()), + }, + ); + formattedData = combinedData; + } } } if (requestBody.type == "KPI6") { @@ -847,114 +850,115 @@ export class ReportController extends Controller { .groupBy("kpiUserEvaluation.kpiPeriodId") .select("MIN(kpiUserEvaluation.id) as id") .getRawMany(); + if (profileEvaluationIds.length > 0) { + const profileEvaluation = await this.kpiUserEvaluationRepository.find({ + relations: ["kpiPeriod"], + where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) }, + }); - const profileEvaluation = await this.kpiUserEvaluationRepository.find({ - relations: ["kpiPeriod"], - where: { id: In(profileEvaluationIds.map((evaluation) => evaluation.id)) }, - }); + const combinedData: KPIData = profileEvaluation.reduce( + (acc: KPIData, x) => { + const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org]; - const combinedData: KPIData = profileEvaluation.reduce( - (acc: KPIData, x) => { - const fullNameParts = [x.child4, x.child3, x.child2, x.child1, x.org]; + const affiliation = fullNameParts + .filter((part) => part !== undefined && part !== null) + .join("/"); - const affiliation = fullNameParts - .filter((part) => part !== undefined && part !== null) - .join("/"); + if (!acc.fullName) { + acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName; + acc.position = x.position; + acc.posType = x.posTypeName; + acc.posLevel = x.posLevelName; + acc.affiliation = affiliation; + } - if (!acc.fullName) { - acc.fullName = x.prefix + " " + x.firstName + " " + x.lastName; - acc.position = x.position; - acc.posType = x.posTypeName; - acc.posLevel = x.posLevelName; - acc.affiliation = affiliation; - } + if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR1 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointAPR1 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR1 = x.kpiPeriod.durationKPI; + acc.yearAPR1 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR1 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR1 = x.kpiPeriod.durationKPI; - acc.yearAPR1 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT1 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT1 = x.summaryPoint?Extension.textPoint(x.summaryPoint) : null; + acc.periodOCT1 = x.kpiPeriod.durationKPI; + acc.yearOCT1 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 2 && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT1 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT1 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT1 = x.kpiPeriod.durationKPI; - acc.yearOCT1 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointAPR2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR2 = x.kpiPeriod.durationKPI; + acc.yearAPR2 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR2 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR2 = x.kpiPeriod.durationKPI; - acc.yearAPR2 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT2 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT2 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodOCT2 = x.kpiPeriod.durationKPI; + acc.yearOCT2 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow - 1 && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT2 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT2 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT2 = x.kpiPeriod.durationKPI; - acc.yearOCT2 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") { + acc.summaryPointAPR3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointAPR3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodAPR3 = x.kpiPeriod.durationKPI; + acc.yearAPR3 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "APR") { - acc.summaryPointAPR3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointAPR3 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodAPR3 = x.kpiPeriod.durationKPI; - acc.yearAPR3 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } + if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") { + acc.summaryPointOCT3 = x.summaryPoint?Extension.ToThaiNumber(x.summaryPoint.toString()):null; + acc.textPointOCT3 = x.summaryPoint?Extension.textPoint(x.summaryPoint):null; + acc.periodOCT3 = x.kpiPeriod.durationKPI; + acc.yearOCT3 = + x.kpiPeriod.year?Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()):null; + } - if (x.kpiPeriod.year === yearNow && x.kpiPeriod.durationKPI === "OCT") { - acc.summaryPointOCT3 = Extension.ToThaiNumber(x.summaryPoint.toString()) ?? null; - acc.textPointOCT3 = Extension.textPoint(x.summaryPoint) ?? null; - acc.periodOCT3 = x.kpiPeriod.durationKPI; - acc.yearOCT3 = - Extension.ToThaiNumber(Extension.ToThaiYear(x.kpiPeriod.year).toString()) ?? null; - } - - return acc; - }, - { - fullName: null, - position: null, - posType: null, - posLevel: null, - affiliation: null, - summaryPointAPR1: null, - textPointAPR1: null, - periodAPR1: null, - yearAPR1: null, - summaryPointOCT1: null, - textPointOCT1: null, - periodOCT1: null, - yearOCT1: null, - summaryPointAPR2: null, - textPointAPR2: null, - periodAPR2: null, - yearAPR2: null, - summaryPointOCT2: null, - textPointOCT2: null, - periodOCT2: null, - yearOCT2: null, - summaryPointAPR3: null, - textPointAPR3: null, - periodAPR3: null, - yearAPR3: null, - summaryPointOCT3: null, - textPointOCT3: null, - periodOCT3: null, - yearOCT3: null, - year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()), - year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()), - year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()), - }, - ); - formattedData = combinedData; + return acc; + }, + { + fullName: null, + position: null, + posType: null, + posLevel: null, + affiliation: null, + summaryPointAPR1: null, + textPointAPR1: null, + periodAPR1: null, + yearAPR1: null, + summaryPointOCT1: null, + textPointOCT1: null, + periodOCT1: null, + yearOCT1: null, + summaryPointAPR2: null, + textPointAPR2: null, + periodAPR2: null, + yearAPR2: null, + summaryPointOCT2: null, + textPointOCT2: null, + periodOCT2: null, + yearOCT2: null, + summaryPointAPR3: null, + textPointAPR3: null, + periodAPR3: null, + yearAPR3: null, + summaryPointOCT3: null, + textPointOCT3: null, + periodOCT3: null, + yearOCT3: null, + year1: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 2).toString()), + year2: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow - 1).toString()), + year3: Extension.ToThaiNumber(Extension.ToThaiYear(yearNow).toString()), + }, + ); + formattedData = combinedData; + } } } if (requestBody.type == "KPI7") {