From 22f7e01ea8f189ebd2082bb9a84f07877a6789e0 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Fri, 17 May 2024 14:17:01 +0700 Subject: [PATCH] no message --- src/controllers/KpiReasonController.ts | 205 ++++++++++-------- .../KpiUserEvaluationController.ts | 9 +- 2 files changed, 127 insertions(+), 87 deletions(-) diff --git a/src/controllers/KpiReasonController.ts b/src/controllers/KpiReasonController.ts index 92882b6..9e9974d 100644 --- a/src/controllers/KpiReasonController.ts +++ b/src/controllers/KpiReasonController.ts @@ -78,25 +78,36 @@ export class kpiReasonController extends Controller { relations: ["kpiUserEvaluation"], }); - if (!kpiUserEvaluation) { - throw new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", - ); - } let kpiUserEvaluationReason = Object.assign(new KpiUserEvaluationReasonPlan(), requestBody); kpiUserEvaluationReason.type = type.trim().toUpperCase(); if (type.trim().toUpperCase() == "PROBLEM") { const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.findOne({ where: { id: id }, + relations: ["kpiUserPlanned", "kpiUserPlanned.kpiUserEvaluation"], }); - if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; - kpiUserEvaluationReason.status = - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - ? "DONE" - : "DRAFT"; + if (_kpiUserEvaluationReason != null) { + kpiUserEvaluationReason = _kpiUserEvaluationReason; + Object.assign(kpiUserEvaluationReason, requestBody); + kpiUserEvaluationReason.status = + kpiUserEvaluationReason.kpiUserPlanned.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluationReason.kpiUserPlanned.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } else { + kpiUserEvaluationReason.status = + kpiUserEvaluation == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } } else { + if (!kpiUserEvaluation) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", + ); + } kpiUserEvaluationReason.status = kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" @@ -176,7 +187,7 @@ export class kpiReasonController extends Controller { kpiReason.kpiUserPlanned.kpiUserEvaluation.evaluatorId == "" ? "DONE" : "EVALUATOR"; - kpiReason.reasonCommanderHigh = requestBody.reason; + kpiReason.reason = requestBody.reason; kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateFullName = request.user.name; await this.kpiUserEvaluationReasonPlan.save(kpiReason); @@ -254,30 +265,36 @@ export class kpiReasonController extends Controller { where: { id: id }, relations: ["kpiUserEvaluation"], }); - if (!kpiUserEvaluation) { - throw new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", - ); - } let kpiUserEvaluationReason = Object.assign(new KpiUserEvaluationReasonRole(), requestBody); kpiUserEvaluationReason.type = type.trim().toUpperCase(); - // kpiUserEvaluationReason.status = - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - // ? "DONE" - // : "EVALUATOR"; if (type.trim().toUpperCase() == "PROBLEM") { const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.findOne({ where: { id: id }, + relations: ["kpiUserRole", "kpiUserRole.kpiUserEvaluation"], }); - if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; - kpiUserEvaluationReason.status = - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - ? "DONE" - : "DRAFT"; + if (_kpiUserEvaluationReason != null) { + kpiUserEvaluationReason = _kpiUserEvaluationReason; + Object.assign(kpiUserEvaluationReason, requestBody); + kpiUserEvaluationReason.status = + kpiUserEvaluationReason.kpiUserRole.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluationReason.kpiUserRole.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } else { + kpiUserEvaluationReason.status = + kpiUserEvaluation == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } } else { + if (!kpiUserEvaluation) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", + ); + } kpiUserEvaluationReason.status = kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" @@ -358,7 +375,7 @@ export class kpiReasonController extends Controller { kpiReason.kpiUserRole.kpiUserEvaluation.evaluatorId == "" ? "DONE" : "EVALUATOR"; - kpiReason.reasonCommanderHigh = requestBody.reason; + kpiReason.reason = requestBody.reason; kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateFullName = request.user.name; await this.kpiUserEvaluationReasonRole.save(kpiReason); @@ -436,33 +453,39 @@ export class kpiReasonController extends Controller { where: { id: id }, relations: ["kpiUserEvaluation"], }); - if (!kpiUserEvaluation) { - throw new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", - ); - } let kpiUserEvaluationReason = Object.assign( new KpiUserEvaluationReasonSpecial(), requestBody, ); kpiUserEvaluationReason.type = type.trim().toUpperCase(); - // kpiUserEvaluationReason.status = - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - // ? "DONE" - // : "EVALUATOR"; if (type.trim().toUpperCase() == "PROBLEM") { const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.findOne({ where: { id: id }, + relations: ["kpiUserSpecial", "kpiUserSpecial.kpiUserEvaluation"], }); - if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; - kpiUserEvaluationReason.status = - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - ? "DONE" - : "DRAFT"; + if (_kpiUserEvaluationReason != null) { + kpiUserEvaluationReason = _kpiUserEvaluationReason; + Object.assign(kpiUserEvaluationReason, requestBody); + kpiUserEvaluationReason.status = + kpiUserEvaluationReason.kpiUserSpecial.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluationReason.kpiUserSpecial.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } else { + kpiUserEvaluationReason.status = + kpiUserEvaluation == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } } else { + if (!kpiUserEvaluation) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", + ); + } kpiUserEvaluationReason.status = kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" @@ -542,7 +565,7 @@ export class kpiReasonController extends Controller { kpiReason.kpiUserSpecial.kpiUserEvaluation.evaluatorId == "" ? "DONE" : "EVALUATOR"; - kpiReason.reasonCommanderHigh = requestBody.reason; + kpiReason.reason = requestBody.reason; kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateFullName = request.user.name; await this.kpiUserEvaluationReasonSpecial.save(kpiReason); @@ -620,33 +643,39 @@ export class kpiReasonController extends Controller { where: { id: id }, relations: ["kpiUserEvaluation"], }); - if (!kpiUserEvaluation) { - throw new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", - ); - } let kpiUserEvaluationReason = Object.assign( new KpiUserEvaluationReasonDevelopment(), requestBody, ); kpiUserEvaluationReason.type = type.trim().toUpperCase(); - // kpiUserEvaluationReason.status = - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - // ? "DONE" - // : "EVALUATOR"; if (type.trim().toUpperCase() == "PROBLEM") { const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.findOne({ where: { id: id }, + relations: ["kpiUserDevelopment", "kpiUserDevelopment.kpiUserEvaluation"], }); - if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; - kpiUserEvaluationReason.status = - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - ? "DONE" - : "DRAFT"; + if (_kpiUserEvaluationReason != null) { + kpiUserEvaluationReason = _kpiUserEvaluationReason; + Object.assign(kpiUserEvaluationReason, requestBody); + kpiUserEvaluationReason.status = + kpiUserEvaluationReason.kpiUserDevelopment.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluationReason.kpiUserDevelopment.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } else { + kpiUserEvaluationReason.status = + kpiUserEvaluation == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } } else { + if (!kpiUserEvaluation) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", + ); + } kpiUserEvaluationReason.status = kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" @@ -726,7 +755,7 @@ export class kpiReasonController extends Controller { kpiReason.kpiUserDevelopment.kpiUserEvaluation.evaluatorId == "" ? "DONE" : "EVALUATOR"; - kpiReason.reasonCommanderHigh = requestBody.reason; + kpiReason.reason = requestBody.reason; kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateFullName = request.user.name; await this.kpiUserEvaluationReasonDevelopment.save(kpiReason); @@ -808,33 +837,39 @@ export class kpiReasonController extends Controller { where: { id: id }, relations: ["kpiUserEvaluation"], }); - if (!kpiUserEvaluation) { - throw new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", - ); - } let kpiUserEvaluationReason = Object.assign( new KpiUserEvaluationReasonCapacity(), requestBody, ); kpiUserEvaluationReason.type = type.trim().toUpperCase(); - // kpiUserEvaluationReason.status = - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - // kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - // ? "DONE" - // : "EVALUATOR"; if (type.trim().toUpperCase() == "PROBLEM") { const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.findOne({ where: { id: id }, + relations: ["kpiUserCapacity", "kpiUserCapacity.kpiUserEvaluation"], }); - if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; - kpiUserEvaluationReason.status = - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || - kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" - ? "DONE" - : "DRAFT"; + if (_kpiUserEvaluationReason != null) { + kpiUserEvaluationReason = _kpiUserEvaluationReason; + Object.assign(kpiUserEvaluationReason, requestBody); + kpiUserEvaluationReason.status = + kpiUserEvaluationReason.kpiUserCapacity.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluationReason.kpiUserCapacity.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } else { + kpiUserEvaluationReason.status = + kpiUserEvaluation == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || + kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" + ? "DONE" + : "DRAFT"; + } } else { + if (!kpiUserEvaluation) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้", + ); + } kpiUserEvaluationReason.status = kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" @@ -914,7 +949,7 @@ export class kpiReasonController extends Controller { kpiReason.kpiUserCapacity.kpiUserEvaluation.evaluatorId == "" ? "DONE" : "EVALUATOR"; - kpiReason.reasonCommanderHigh = requestBody.reason; + kpiReason.reason = requestBody.reason; kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateFullName = request.user.name; await this.kpiUserEvaluationReasonCapacity.save(kpiReason); diff --git a/src/controllers/KpiUserEvaluationController.ts b/src/controllers/KpiUserEvaluationController.ts index 75dff2d..dceecbf 100644 --- a/src/controllers/KpiUserEvaluationController.ts +++ b/src/controllers/KpiUserEvaluationController.ts @@ -64,6 +64,7 @@ export class KpiUserEvaluationController extends Controller { status?: string | null; results?: string | null; reqedit?: string | null; + evaluating?: boolean | null; }, ) { let profileId: any = null; @@ -91,8 +92,12 @@ export class KpiUserEvaluationController extends Controller { requestBody.status != null && requestBody.status != undefined ? requestBody.status.trim().toUpperCase() == "NEW" ? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "NEW_EVALUATOR" WHEN commanderId = "${profileId}" THEN "NEW_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "NEW_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END` - : requestBody.status.trim().toUpperCase() == "EVALUATING" - ? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "EVALUATING_EVALUATOR" WHEN commanderId = "${profileId}" THEN "EVALUATING_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "EVALUATING_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END` + : requestBody.status.trim().toUpperCase() == "EVALUATING_EVALUATOR" + ? requestBody.evaluating == null || requestBody.evaluating == undefined + ? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "EVALUATING_EVALUATOR" WHEN commanderId = "${profileId}" THEN "EVALUATING_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "EVALUATING_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END` + : requestBody.evaluating == true + ? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "EVALUATING_EVALUATOR" ELSE "${requestBody.status.trim().toUpperCase()}" END` + : `evaluationStatus LIKE CASE WHEN commanderId = "${profileId}" THEN "EVALUATING_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "EVALUATING_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END` : "evaluationStatus LIKE :status" : "1=1", {