diff --git a/src/controllers/WorkflowController.ts b/src/controllers/WorkflowController.ts index 921c4184..702de5bc 100644 --- a/src/controllers/WorkflowController.ts +++ b/src/controllers/WorkflowController.ts @@ -21,6 +21,7 @@ import { PosMasterAct } from "../entities/PosMasterAct"; import { viewDirectorActing } from "../entities/view/viewDirectorActing"; import { viewDirector } from "../entities/view/viewDirector"; import { ProfileEmployee } from "../entities/ProfileEmployee"; +import { EmployeePosMaster } from "../entities/EmployeePosMaster"; @Route("api/v1/org/workflow") @Tags("Workflow") @@ -38,6 +39,7 @@ export class WorkflowController extends Controller { private metaStateRepo = AppDataSource.getRepository(MetaState); private metaStateOperatorRepo = AppDataSource.getRepository(MetaStateOperator); private posMasterRepo = AppDataSource.getRepository(PosMaster); + private posMasterEmpRepo = AppDataSource.getRepository(EmployeePosMaster); private posMasterActRepo = AppDataSource.getRepository(PosMasterAct); private assignRepo = AppDataSource.getRepository(Assign); @@ -806,25 +808,46 @@ export class WorkflowController extends Controller { page: number; pageSize: number; keycloakId?: string | null; + type?: string | null; }, ) { - let posMasterUser: PosMaster = new PosMaster(); + let posMasterUser = null; if (body.keycloakId) { - posMasterUser = (await this.posMasterRepo.findOne({ - where: { - orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, - current_holder: { keycloak: body.keycloakId }, - }, - relations: ["current_holder", "current_holder.posType", "current_holder.posLevel"], - })) as PosMaster; + if (body.type == "employee") { + posMasterUser = await this.posMasterEmpRepo.findOne({ + where: { + orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, + current_holder: { keycloak: body.keycloakId }, + }, + relations: ["current_holder", "current_holder.posType", "current_holder.posLevel"], + }); + } else { + posMasterUser = await this.posMasterRepo.findOne({ + where: { + orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, + current_holder: { keycloak: body.keycloakId }, + }, + relations: ["current_holder", "current_holder.posType", "current_holder.posLevel"], + }); + } } else { - posMasterUser = (await this.posMasterRepo.findOne({ - where: { - orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, - current_holder: { keycloak: request.user.sub }, - }, - relations: ["current_holder", "current_holder.posType", "current_holder.posLevel"], - })) as PosMaster; + if (body.type == "employee") { + posMasterUser = await this.posMasterEmpRepo.findOne({ + where: { + orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, + current_holder: { keycloak: request.user.sub }, + }, + relations: ["current_holder", "current_holder.posType", "current_holder.posLevel"], + }); + } else { + posMasterUser = await this.posMasterRepo.findOne({ + where: { + orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, + current_holder: { keycloak: request.user.sub }, + }, + relations: ["current_holder", "current_holder.posType", "current_holder.posLevel"], + }); + } } if (!posMasterUser || !posMasterUser.orgRootId)