This commit is contained in:
AdisakKanthawilang 2024-07-12 10:19:49 +07:00
parent f2a181e7ad
commit 772a0b3a93

View file

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