From bab5532f70374ddb15f579c86089df75e919fb54 Mon Sep 17 00:00:00 2001 From: Bright Date: Wed, 8 May 2024 16:15:08 +0700 Subject: [PATCH] no message --- src/controllers/KpiUserSpecialController.ts | 56 ++++++++++++++++++--- src/entities/kpiUserSpecial.ts | 8 +++ 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/controllers/KpiUserSpecialController.ts b/src/controllers/KpiUserSpecialController.ts index c7a1691..e613b30 100644 --- a/src/controllers/KpiUserSpecialController.ts +++ b/src/controllers/KpiUserSpecialController.ts @@ -25,6 +25,7 @@ import { } from "../entities/kpiUserSpecial"; import HttpError from "../interfaces/http-error"; import { KpiUserEvaluation } from "../entities/kpiUserEvaluation"; +import { KpiSpecial } from "../entities/kpiSpecial"; import { Not } from "typeorm"; @Route("api/v1/kpi/user/achievement/special") @@ -38,6 +39,7 @@ import { Not } from "typeorm"; export class KpiUserSpecialController extends Controller { private kpiUserSpecialRepository = AppDataSource.getRepository(KpiUserSpecial); private kpiUserEvaluationRepository = AppDataSource.getRepository(KpiUserEvaluation); + private kpiSpecialRepository = AppDataSource.getRepository(KpiSpecial); /** * API เพิ่มงานที่ได้รับมอบหมายพิเศษ @@ -66,18 +68,39 @@ export class KpiUserSpecialController extends Controller { const chk_indicator = await this.kpiUserSpecialRepository.findOne({ where: { kpiUserEvaluationId: requestBody.kpiUserEvaluationId, + including: String(requestBody.including), + includingName: String(requestBody.includingName), + period: requestBody.period, + year: requestBody.year, }, }); if ( - (chk_indicator && chk_indicator.including == requestBody.including) || - (chk_indicator && chk_indicator.includingName == requestBody.includingName) + // (chk_indicator && chk_indicator.including == requestBody.including) || + // (chk_indicator && chk_indicator.includingName == requestBody.includingName) + chk_indicator ) { throw new HttpError( HttpStatusCode.CONFLICT, "ไม่สามารถเพิ่มข้อมูลได้เนื่องจากข้อมูลตัวชี้วัดซ้ำ", ); } - + const chk_kpiSpecial = await this.kpiSpecialRepository.findOne({ + where: { + including: String(requestBody.including), + includingName: String(requestBody.includingName) + }, + }); + if(!chk_kpiSpecial){ + const kpiSpecial = Object.assign(new KpiSpecial(), requestBody); + if (!kpiSpecial) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } + kpiSpecial.createdUserId = request.user.sub; + kpiSpecial.createdFullName = request.user.name; + kpiSpecial.lastUpdateUserId = request.user.sub; + kpiSpecial.lastUpdateFullName = request.user.name; + await this.kpiSpecialRepository.save(kpiSpecial); + } kpiUserSpecial.createdUserId = request.user.sub; kpiUserSpecial.createdFullName = request.user.name; kpiUserSpecial.lastUpdateUserId = request.user.sub; @@ -117,18 +140,39 @@ export class KpiUserSpecialController extends Controller { where: { id: Not(id), kpiUserEvaluationId: requestBody.kpiUserEvaluationId, + including: String(requestBody.including), + includingName: String(requestBody.includingName), + period: requestBody.period, + year: requestBody.year, }, }); if ( - (chk_indicator && chk_indicator.including == requestBody.including) || - (chk_indicator && chk_indicator.includingName == requestBody.includingName) + // (chk_indicator && chk_indicator.including == requestBody.including) || + // (chk_indicator && chk_indicator.includingName == requestBody.includingName) + chk_indicator ) { throw new HttpError( HttpStatusCode.CONFLICT, "ไม่สามารถเพิ่มข้อมูลได้เนื่องจากข้อมูลตัวชี้วัดซ้ำ", ); } - + const chk_kpiSpecial = await this.kpiSpecialRepository.findOne({ + where: { + including: String(requestBody.including), + includingName: String(requestBody.includingName) + }, + }); + if(!chk_kpiSpecial){ + const kpiSpecial = Object.assign(new KpiSpecial(), requestBody); + if (!kpiSpecial) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } + kpiSpecial.createdUserId = request.user.sub; + kpiSpecial.createdFullName = request.user.name; + kpiSpecial.lastUpdateUserId = request.user.sub; + kpiSpecial.lastUpdateFullName = request.user.name; + await this.kpiSpecialRepository.save(kpiSpecial); + } kpiUserSpecial.lastUpdateUserId = request.user.sub; kpiUserSpecial.lastUpdateFullName = request.user.name; kpiUserSpecial.documentInfoEvidence = request.user.documentInfoEvidence; diff --git a/src/entities/kpiUserSpecial.ts b/src/entities/kpiUserSpecial.ts index 148854a..83a7d0e 100644 --- a/src/entities/kpiUserSpecial.ts +++ b/src/entities/kpiUserSpecial.ts @@ -193,6 +193,10 @@ export class CreateKpiUserSpecial { startDate: Date; @Column() endDate: Date; + @Column() + period: string; + @Column() + year: string; } export class UpdateKpiUserSpecial { @@ -228,6 +232,10 @@ export class UpdateKpiUserSpecial { startDate: Date; @Column() endDate: Date; + @Column() + period: string; + @Column() + year: string; } export class KpiUserSpecialDataPoint {