diff --git a/src/controllers/KpiUserEvaluationController.ts b/src/controllers/KpiUserEvaluationController.ts index 58d5739..34789d2 100644 --- a/src/controllers/KpiUserEvaluationController.ts +++ b/src/controllers/KpiUserEvaluationController.ts @@ -578,4 +578,43 @@ export class KpiUserEvaluationController extends Controller { return new HttpSuccess(); } + + /** + * API แก้ไขสถานะผลการประเมิน + * + * @summary แก้ไขสถานะผลการประเมิน + * + * + */ + @Post("admin/result-status") + async ResultStatus( + @Request() request: { user: Record }, + @Body() + requestBody: { + status: string; + id: string[]; + }, + ) { + const list = await this.kpiUserEvalutionRepository.find({ + where: { id: In(requestBody.id) }, + }); + if (!list || list.length === 0) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } + + const hasAllData = requestBody.id.every((id) => list.some((item) => item.id === id)); + + if (!hasAllData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "พบบางไอดีผู้ประเมินที่ไม่มีข้อมูล"); + } + + list.forEach(async (item) => { + item.evaluationResults = requestBody.status.trim().toUpperCase(); + item.lastUpdateUserId = request.user.sub; + item.lastUpdateFullName = request.user.name; + await this.kpiUserEvalutionRepository.save(item); + }); + + return new HttpSuccess(); + } }