diff --git a/src/controllers/ProfileGovernmentController.ts b/src/controllers/ProfileGovernmentController.ts index 33d31e0a..f3352330 100644 --- a/src/controllers/ProfileGovernmentController.ts +++ b/src/controllers/ProfileGovernmentController.ts @@ -10,6 +10,7 @@ import { Position } from "../entities/Position"; import { PosMaster } from "../entities/PosMaster"; import { calculateAge, calculateRetireDate } from "../interfaces/utils"; import permission from "../interfaces/permission"; +import { OrgRevision } from "../entities/OrgRevision"; @Route("api/v1/org/profile/government") @Tags("ProfileGovernment") @Security("bearerAuth") @@ -18,7 +19,7 @@ export class ProfileGovernmentHistoryController extends Controller { private govRepo = AppDataSource.getRepository(ProfileGovernment); private positionRepo = AppDataSource.getRepository(Position); private posMasterRepo = AppDataSource.getRepository(PosMaster); - + private orgRevisionRepository = AppDataSource.getRepository(OrgRevision); /** * * @summary ข้อมูลราชการ @@ -26,6 +27,13 @@ export class ProfileGovernmentHistoryController extends Controller { */ @Get("user") public async getGovHistoryUser(@Request() request: { user: Record }) { + const orgRevision = await this.orgRevisionRepository.findOne({ + select: ["id"], + where: { + orgRevisionIsDraft: false, + orgRevisionIsCurrent: true, + }, + }); const profile = await this.profileRepo.findOneBy({ keycloak: request.user.sub }); if (!profile) { throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว"); @@ -39,10 +47,11 @@ export class ProfileGovernmentHistoryController extends Controller { }); const posMaster = await this.posMasterRepo.findOne({ where: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profile.id, }, order: { createdAt: "DESC" }, @@ -58,10 +67,11 @@ export class ProfileGovernmentHistoryController extends Controller { where: { positionIsSelected: true, posMaster: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profile.id, }, }, @@ -129,6 +139,13 @@ export class ProfileGovernmentHistoryController extends Controller { @Example({}) public async getGovHistory(@Path() profileId: string, @Request() req: RequestWithUser) { await new permission().PermissionOrgUserGet(req, "SYS_REGISTRY_OFFICER", profileId); + const orgRevision = await this.orgRevisionRepository.findOne({ + select: ["id"], + where: { + orgRevisionIsDraft: false, + orgRevisionIsCurrent: true, + }, + }); const record = await this.profileRepo.findOne({ where: { id: profileId }, relations: { @@ -138,10 +155,11 @@ export class ProfileGovernmentHistoryController extends Controller { }); const posMaster = await this.posMasterRepo.findOne({ where: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profileId, }, order: { createdAt: "DESC" }, @@ -157,10 +175,11 @@ export class ProfileGovernmentHistoryController extends Controller { where: { positionIsSelected: true, posMaster: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profileId, }, }, diff --git a/src/controllers/ProfileGovernmentEmployeeController.ts b/src/controllers/ProfileGovernmentEmployeeController.ts index 0d9e7ba6..94be34bd 100644 --- a/src/controllers/ProfileGovernmentEmployeeController.ts +++ b/src/controllers/ProfileGovernmentEmployeeController.ts @@ -27,6 +27,7 @@ import { EmployeePosition } from "../entities/EmployeePosition"; import { EmployeePosMaster } from "../entities/EmployeePosMaster"; import { calculateAge, calculateRetireDate } from "../interfaces/utils"; import permission from "../interfaces/permission"; +import { OrgRevision } from "../entities/OrgRevision"; @Route("api/v1/org/profile-employee/government") @Tags("ProfileEmployeeGovernment") @Security("bearerAuth") @@ -35,7 +36,7 @@ export class ProfileGovernmentEmployeeController extends Controller { private govRepo = AppDataSource.getRepository(ProfileGovernment); private positionRepo = AppDataSource.getRepository(EmployeePosition); private posMasterRepo = AppDataSource.getRepository(EmployeePosMaster); - + private orgRevisionRepository = AppDataSource.getRepository(OrgRevision); /** * * @summary ข้อมูลราชการ @@ -43,6 +44,13 @@ export class ProfileGovernmentEmployeeController extends Controller { */ @Get("user") public async getGovHistoryUser(@Request() request: { user: Record }) { + const orgRevision = await this.orgRevisionRepository.findOne({ + select: ["id"], + where: { + orgRevisionIsDraft: false, + orgRevisionIsCurrent: true, + }, + }); const profile = await this.profileEmployeeRepo.findOneBy({ keycloak: request.user.sub }); if (!profile) { throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว"); @@ -56,10 +64,11 @@ export class ProfileGovernmentEmployeeController extends Controller { }); const posMaster = await this.posMasterRepo.findOne({ where: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profile.id, }, order: { createdAt: "DESC" }, @@ -136,6 +145,13 @@ export class ProfileGovernmentEmployeeController extends Controller { @Example({}) public async getGovHistory(@Path() profileEmployeeId: string, @Request() req: RequestWithUser) { await new permission().PermissionOrgUserGet(req, "SYS_REGISTRY_EMP", profileEmployeeId); + const orgRevision = await this.orgRevisionRepository.findOne({ + select: ["id"], + where: { + orgRevisionIsDraft: false, + orgRevisionIsCurrent: true, + }, + }); const record = await this.profileEmployeeRepo.findOne({ where: { id: profileEmployeeId }, relations: { @@ -145,10 +161,11 @@ export class ProfileGovernmentEmployeeController extends Controller { }); const posMaster = await this.posMasterRepo.findOne({ where: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profileEmployeeId, }, order: { createdAt: "DESC" }, @@ -164,10 +181,11 @@ export class ProfileGovernmentEmployeeController extends Controller { where: { positionIsSelected: true, posMaster: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profileEmployeeId, }, }, diff --git a/src/controllers/ProfileGovernmentEmployeeTempController.ts b/src/controllers/ProfileGovernmentEmployeeTempController.ts index ca6bce3e..37621125 100644 --- a/src/controllers/ProfileGovernmentEmployeeTempController.ts +++ b/src/controllers/ProfileGovernmentEmployeeTempController.ts @@ -27,6 +27,7 @@ import { EmployeePosition } from "../entities/EmployeePosition"; import { EmployeePosMaster } from "../entities/EmployeePosMaster"; import { calculateAge, calculateRetireDate } from "../interfaces/utils"; import permission from "../interfaces/permission"; +import { OrgRevision } from "../entities/OrgRevision"; @Route("api/v1/org/profile-temp/government") @Tags("ProfileEmployeeGovernment") @Security("bearerAuth") @@ -35,7 +36,7 @@ export class ProfileGovernmentEmployeeTempController extends Controller { private govRepo = AppDataSource.getRepository(ProfileGovernment); private positionRepo = AppDataSource.getRepository(EmployeePosition); private posMasterRepo = AppDataSource.getRepository(EmployeePosMaster); - + private orgRevisionRepository = AppDataSource.getRepository(OrgRevision); /** * * @summary ข้อมูลราชการ @@ -43,6 +44,13 @@ export class ProfileGovernmentEmployeeTempController extends Controller { */ @Get("user") public async getGovHistoryUser(@Request() request: { user: Record }) { + const orgRevision = await this.orgRevisionRepository.findOne({ + select: ["id"], + where: { + orgRevisionIsDraft: false, + orgRevisionIsCurrent: true, + }, + }); const profile = await this.profileEmployeeRepo.findOneBy({ keycloak: request.user.sub }); if (!profile) { throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว"); @@ -56,10 +64,11 @@ export class ProfileGovernmentEmployeeTempController extends Controller { }); const posMaster = await this.posMasterRepo.findOne({ where: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profile.id, }, order: { createdAt: "DESC" }, @@ -136,6 +145,13 @@ export class ProfileGovernmentEmployeeTempController extends Controller { @Example({}) public async getGovHistory(@Path() profileEmployeeId: string, @Request() req: RequestWithUser) { await new permission().PermissionGet(req, "SYS_REGISTRY_TEMP"); + const orgRevision = await this.orgRevisionRepository.findOne({ + select: ["id"], + where: { + orgRevisionIsDraft: false, + orgRevisionIsCurrent: true, + }, + }); const record = await this.profileEmployeeRepo.findOne({ where: { id: profileEmployeeId }, relations: { @@ -145,10 +161,11 @@ export class ProfileGovernmentEmployeeTempController extends Controller { }); const posMaster = await this.posMasterRepo.findOne({ where: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profileEmployeeId, }, order: { createdAt: "DESC" }, @@ -164,10 +181,11 @@ export class ProfileGovernmentEmployeeTempController extends Controller { where: { positionIsSelected: true, posMaster: { - orgRevision: { - orgRevisionIsCurrent: true, - orgRevisionIsDraft: false, - }, + // orgRevision: { + // orgRevisionIsCurrent: true, + // orgRevisionIsDraft: false, + // }, + orgRevisionId: orgRevision?.id, current_holderId: profileEmployeeId, }, },