diff --git a/src/controllers/DevelopmentController.ts b/src/controllers/DevelopmentController.ts index 2cd5f30..95d2ae4 100644 --- a/src/controllers/DevelopmentController.ts +++ b/src/controllers/DevelopmentController.ts @@ -2539,9 +2539,51 @@ export class DevelopmentController extends Controller { where: { developmentId: id, isDoneIDP: false }, relations: ["development", "development.developmentProjectTechniqueActuals"], }); + + let isDevelopment70: boolean = false + const dev70Lists = [ + "on_the_job_training", + "job_project_assignment", + "job_shadowing", + "job_enlargement", + "internal_trainer", + "rotation", + "activity", + "site_visit", + "benchmarking", + "problem_solving", + "team_working", + "other1" + ]; + let isDevelopment20: boolean = false + const dev20Lists = [ + "coaching", + "mentoring", + "team_meeting", + "consulting", + "feedback", + "other2" + ]; + let isDevelopment10: boolean = false + const dev10Lists = [ + "self_learning", + "classroom_training", + "in_house_training", + "public_training", + "e_training", + "meeting", + "seminar", + "other3" + ]; await Promise.all( getDevelopment.map(async (x) => { const _data = Object.assign(new DevelopmentHistory(), x); + + const techniqueActuals = x.development?.developmentProjectTechniqueActuals.flatMap(x => x.name) || []; + isDevelopment70 = techniqueActuals.length > 0 && dev70Lists.some(item => techniqueActuals.includes(item)); + isDevelopment20 = techniqueActuals.length > 0 && dev20Lists.some(item => techniqueActuals.includes(item)); + isDevelopment10 = techniqueActuals.length > 0 && dev10Lists.some(item => techniqueActuals.includes(item)); + if (x.type == "OFFICER") { await new CallAPI() .PostData(request, "/org/profile/development", { @@ -2555,9 +2597,9 @@ export class DevelopmentController extends Controller { reasonDevelopment70: x.development.reasonActual70, reasonDevelopment20: x.development.reasonActual20, reasonDevelopment10: x.development.reasonActual10, - isDevelopment70: x.development.isReasonActual70, - isDevelopment20: x.development.isReasonActual20, - isDevelopment10: x.development.isReasonActual10, + isDevelopment70: isDevelopment70, + isDevelopment20: isDevelopment20, + isDevelopment10: isDevelopment10, developmentTarget: null, developmentResults: null, developmentReport: null, @@ -2584,9 +2626,9 @@ export class DevelopmentController extends Controller { reasonDevelopment70: x.development.reasonActual70, reasonDevelopment20: x.development.reasonActual20, reasonDevelopment10: x.development.reasonActual10, - isDevelopment70: x.development.isReasonActual70, - isDevelopment20: x.development.isReasonActual20, - isDevelopment10: x.development.isReasonActual10, + isDevelopment70: isDevelopment70, + isDevelopment20: isDevelopment20, + isDevelopment10: isDevelopment10, developmentTarget: null, developmentResults: null, developmentReport: null, diff --git a/src/controllers/DevelopmentHistoryController.ts b/src/controllers/DevelopmentHistoryController.ts index e546a0c..5ab0f55 100644 --- a/src/controllers/DevelopmentHistoryController.ts +++ b/src/controllers/DevelopmentHistoryController.ts @@ -250,6 +250,7 @@ export class DevelopmentOfficerHistoryController extends Controller { .leftJoinAndSelect("developmentHistory.development", "development") .leftJoinAndSelect("developmentHistory.posLevel", "posLevel") .leftJoinAndSelect("developmentHistory.posType", "posType") + .where("developmentHistory.profileId IS NOT NULL") .andWhere( body.year != 0 && body.year != null && body.year != undefined ? "development.year = :year" diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index bf63247..ff19bb7 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -16,6 +16,7 @@ import { isNotEmittedStatement } from "typescript"; @Tags("Report") @Security("bearerAuth") export class ReportController extends Controller { + private developmentRepository = AppDataSource.getRepository(Development); private developmentScholarshipRepository = AppDataSource.getRepository(DevelopmentScholarship); private viewDevScholarship = AppDataSource.getRepository(viewDevScholarship); /** @@ -44,6 +45,7 @@ export class ReportController extends Controller { .leftJoinAndSelect("development.strategyChild5Actual", "strategy5") .where("development.status = :status", { status: "FINISH" }) .andWhere("development.strategyChild1ActualId IS NOT NULL") + .andWhere("development.rootDnaId = :rootDnaId", { rootDnaId: rootId }) .select([ "development.id AS id", "development.projectName AS projectName", @@ -114,6 +116,7 @@ export class ReportController extends Controller { .leftJoinAndSelect("development.strategyChild1Actual", "strategy1") .where("development.status = :status", { status: "FINISH" }) .andWhere("development.strategyChild1ActualId IS NOT NULL") + .andWhere("development.rootDnaId = :rootDnaId", { rootDnaId: rootId }) .select([ "development.rootId AS rootId", "development.strategyChild1ActualId AS strategyId", @@ -377,10 +380,17 @@ export class ReportController extends Controller { return formattedGroup; }); + const dev = await this.developmentRepository.findOne({ + where: { rootDnaId: rootId }, + select: ["root", "year"] + }) + return new HttpSuccess({ template: "development", reportName: "development", data: { + root: dev && dev.root ? dev.root : "-", + year: dev && dev.year ? Extension.ToThaiNumber((dev.year+543).toString()) : "-", data: mappedDataDev, resultAllStrategy: reformattedData, sumDev1: Extension.ToThaiNumber(sumDev1.toLocaleString()) ?? "-",