import { Controller, Get, Post, Put, Delete, Route, Security, Tags, Body, Path, Request, Query, } from "tsoa"; import { AppDataSource } from "../database/data-source"; import { Brackets, Not } from "typeorm"; import HttpSuccess from "../interfaces/http-success"; import HttpError from "../interfaces/http-error"; import HttpStatusCode from "../interfaces/http-status"; import { KpiPeriod } from "../entities/kpiPeriod"; import { KpiUserEvaluation } from "../entities/kpiUserEvaluation"; import { off } from "process"; import Extension from "../interfaces/extension"; import { KpiRole } from "../entities/kpiRole"; @Route("api/v1/kpi/report") @Tags("Report") @Security("bearerAuth") export class ReportController extends Controller { private kpiPeriodRepository = AppDataSource.getRepository(KpiPeriod); private kpiUserEvaluationRepository = AppDataSource.getRepository(KpiUserEvaluation); private kpiRoleRepository = AppDataSource.getRepository(KpiRole); @Post("announcement") async GetReportAnnouncement( @Body() requestBody: { type: string; root?: string | null; periodId?: string | null; filters?: string | null; keyword?: string | null; }, ) { let templateName: any; let reportName: any; let formattedData: any; if (requestBody.type == "KPI1") { templateName = "KPI1"; reportName = "KPI1"; } if (requestBody.type == "KPI2") { templateName = "KPI2"; reportName = "KPI2"; } if (requestBody.type == "KPI3") { templateName = "KPI3"; reportName = "KPI3"; } if (requestBody.type == "KPI4") { templateName = "KPI4"; reportName = "KPI4"; //use_filter } if (requestBody.type == "KPI5") { templateName = "KPI5"; reportName = "KPI5"; //use_filter } if (requestBody.type == "KPI6") { templateName = "KPI6"; reportName = "KPI6"; //use_filter } if (requestBody.type == "KPI7") { templateName = "KPI7"; reportName = "KPI7"; } if (requestBody.type == "KPI8") { templateName = "KPI8"; reportName = "KPI8"; //use_filter } if (requestBody.type == "KPI9") { templateName = "KPI8"; reportName = "KPI8"; } // if (requestBody.root && requestBody.periodId) { // const getEvaluations = await this.kpiUserEvaluationRepository.find({ // where: { kpiPeriodId: requestBody.periodId }, // }); // const getRoot = await this.kpiRoleRepository.findOne({ // where: { rootId: requestBody.root }, // }); // const officer = getEvaluations.map((evaluation) => ({ // fullName: getEvaluations // ? `${evaluation.prefix} ${evaluation.firstName} ${evaluation.lastName}` // : "", // position: getEvaluations ? evaluation.position : "", // posLevel: getEvaluations ? evaluation.posLevelName : "", // result: "ดีเด่น", // })); // const formattedData = { // periodId: requestBody.periodId, // authorizedFullName: "นาย สมหมาย นครชัยศรี", // authorizedPosition: "ผู้อำนวยการต้น", // announceYear: Extension.ToThaiNumber(getPeriod.year.toString()), // oc: getRoot ? getRoot.root : "", // organizationName: "กรุงเทพมหานคร", // announceDate: "๑๒ สิงหาคม ๒๕๖๔", // roundNo: "๑ (๒๕๖๔) ", // officer: officer, // }; // } // if (requestBody.filters && requestBody.keyword) { // } return new HttpSuccess({ template: templateName, reportName: reportName, data: formattedData, }); } }