diff --git a/src/controllers/ProfileDevelopmentController.ts b/src/controllers/ProfileDevelopmentController.ts index d102f423..b9017db8 100644 --- a/src/controllers/ProfileDevelopmentController.ts +++ b/src/controllers/ProfileDevelopmentController.ts @@ -27,6 +27,7 @@ import { import permission from "../interfaces/permission"; import { DevelopmentProject } from "../entities/DevelopmentProject"; import { In, Brackets } from "typeorm"; +import { DevelopmentRequest } from "../entities/DevelopmentRequest"; @Route("api/v1/org/profile/development") @Tags("ProfileDevelopment") @Security("bearerAuth") @@ -35,6 +36,7 @@ export class ProfileDevelopmentController extends Controller { private developmentRepository = AppDataSource.getRepository(ProfileDevelopment); private developmentHistoryRepository = AppDataSource.getRepository(ProfileDevelopmentHistory); private developmentProjectRepository = AppDataSource.getRepository(DevelopmentProject); + private developmentRequestRepository = AppDataSource.getRepository(DevelopmentRequest); @Get("user") public async getDevelopmentUser(@Request() request: { user: Record }) { @@ -121,6 +123,75 @@ export class ProfileDevelopmentController extends Controller { return new HttpSuccess(record); } + @Get("registry/{type}/{developmentId}") + public async developmentDetail( + @Path() developmentId: string, + @Path() type: string, + @Request() req: RequestWithUser + ) { + const data = await this.developmentRequestRepository.findOne({ + where: { id: developmentId }, + relations: ["developmentProjects"], + }); + if (!data) + throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบรายการพัฒนารายบุคคลดังกล่าว"); + + if (type.trim().toLocaleUpperCase() == "OFFICER") { + let _workflow = await new permission().Workflow(req, developmentId, "SYS_REGISTRY_OFFICER"); + if (_workflow == false) + await new permission().PermissionOrgUserGet( + req, + "SYS_REGISTRY_OFFICER", + data.profileId, + ); + } else if (type.trim().toLocaleUpperCase() == "EMPLOYEE") { + let _workflow = await new permission().Workflow(req, developmentId, "SYS_REGISTRY_EMP"); + if (_workflow == false) + await new permission().PermissionOrgUserGet( + req, + "SYS_REGISTRY_EMP", + data.profileEmployeeId, + ); + } else if (type.trim().toLocaleUpperCase() == "TEMP") { + let _workflow = await new permission().Workflow(req, developmentId, "SYS_REGISTRY_TEMP"); + if (_workflow == false) + await new permission().PermissionOrgUserGet( + req, + "SYS_REGISTRY_TEMP", + data.profileEmployeeId, + ); + } else if (type.trim().toLocaleUpperCase() == "USER") { + } else { + throw new HttpError(HttpStatus.NOT_FOUND, "ไม่สามารถเข้าถึงข้อมูลนี้ได้"); + } + + const _mapData = { + id: data.id, + evaluationId: null, + target: data.developmentTarget, + summary: null, + point: null, + name: data.name, + achievement10: "มีผลการพัฒนาและมีการดำเนินการตามเป้าหมายการนำไปพัฒนางาน1", + achievement5: "มีผลการพัฒนาแต่ยังไม่ได้ดำเนินการตามเป้าหมายการนำไปพัฒนางาน", + achievement0: "ไม่ได้ดำเนินการพัฒนา", + isDevelopment70: data.isDevelopment70, + isDevelopment20: data.isDevelopment20, + isDevelopment10: data.isDevelopment10, + reasonDevelopment70: data.reasonDevelopment70, + reasonDevelopment20: data.reasonDevelopment20, + reasonDevelopment10: data.reasonDevelopment10, + selectType: null, + selectTypeYear: null, + selectTypeId: null + } + const _data = { + ..._mapData, + developmentProjects: data.developmentProjects.map((x) => x.name), + }; + return new HttpSuccess(_data); + } + @Post() public async newDevelopment( @Request() req: RequestWithUser,