diff --git a/src/controllers/KpiUserEvaluationController.ts b/src/controllers/KpiUserEvaluationController.ts index 90b245a..7c74d16 100644 --- a/src/controllers/KpiUserEvaluationController.ts +++ b/src/controllers/KpiUserEvaluationController.ts @@ -75,6 +75,13 @@ export class KpiUserEvaluationController extends Controller { .catch((x) => { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลในทะเบียนประวัติ"); }); + + // let role = "EVALUATOR"; + // if (profileId == item.commanderId) { + // role = "COMMANDER"; + // } else if (profileId == item.commanderHighId) { + // role = "COMMANDERHIGH"; + // } const [kpiUserEvaluation, total] = await AppDataSource.getRepository(KpiUserEvaluation) .createQueryBuilder("kpiUserEvaluation") .andWhere(requestBody.kpiPeriodId ? "kpiPeriodId LIKE :kpiPeriodId" : "1=1", { @@ -82,10 +89,17 @@ export class KpiUserEvaluationController extends Controller { }) .andWhere( requestBody.status != null && requestBody.status != undefined - ? "evaluationStatus LIKE :status" + ? 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` + : "evaluationStatus LIKE :status" : "1=1", { - status: requestBody.status, + status: + requestBody.status == null || requestBody.status == undefined + ? null + : requestBody.status.trim().toUpperCase(), }, ) .andWhere( @@ -93,27 +107,35 @@ export class KpiUserEvaluationController extends Controller { ? "evaluationResults LIKE :results" : "1=1", { - results: requestBody.results, + results: + requestBody.results == null || requestBody.results == undefined + ? null + : requestBody.results.trim().toUpperCase(), }, ) .andWhere( requestBody.reqedit != null && requestBody.reqedit != undefined - ? "evaluationReqEdit LIKE :reqedit" + ? requestBody.reqedit.trim().toUpperCase() == "NEW" + ? `evaluationReqEdit LIKE CASE WHEN evaluatorId = "${profileId}" THEN "EVALUATOR" WHEN commanderId = "${profileId}" THEN "COMMANDER" WHEN commanderHighId = "${profileId}" THEN "COMMANDER_HIGH" ELSE "${requestBody.reqedit.trim().toUpperCase()}" END` + : "evaluationReqEdit LIKE :reqedit" : "1=1", { - reqedit: requestBody.reqedit, + reqedit: + requestBody.reqedit == null || requestBody.reqedit == undefined + ? null + : requestBody.reqedit.trim().toUpperCase(), }, ) .andWhere( new Brackets((qb) => { qb.orWhere("kpiUserEvaluation.evaluatorId LIKE :profileId", { - profileId: `%${profileId}%`, + profileId: `${profileId}`, }) .orWhere("kpiUserEvaluation.commanderId LIKE :profileId", { - profileId: `%${profileId}%`, + profileId: `${profileId}`, }) .orWhere("kpiUserEvaluation.commanderHighId LIKE :profileId", { - profileId: `%${profileId}%`, + profileId: `${profileId}`, }); }), )