diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 94422c94..48e50e24 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -183,6 +183,9 @@ export class ReportController extends Controller { @Query() endDateAppoint?: Date, @Query() ageMin?: number, @Query() ageMax?: number, + @Query() isProbation?: boolean, + @Query() isRetire?: boolean, + @Query() retireType?: string, @Query() sortBy: string = "posMasterNo", @Query() sort: "ASC"|"DESC" = "ASC", ) { @@ -222,6 +225,15 @@ export class ReportController extends Controller { } else if (endDateAppoint) { dateAppointCondition = "DATE(registryOfficer.dateAppoint) <= :endDateAppoint"; } + + const IsLeavecondition = ["registryOfficer.isLeave = :isLeave"]; + const parameters: any = { isLeave: isRetire }; + + if (retireType && retireType.trim() !== "") { + IsLeavecondition.push("registryOfficer.leaveType = :retireType"); + parameters.retireType = retireType; + } + const [lists, total] = await AppDataSource.getRepository(viewRegistryOfficer) .createQueryBuilder("registryOfficer") .where(nodeCondition, { @@ -234,6 +246,10 @@ export class ReportController extends Controller { startDateAppoint: startDateAppoint?.toISOString().split("T")[0], endDateAppoint: endDateAppoint?.toISOString().split("T")[0] }) + .andWhere("registryOfficer.isProbation = :isProbation", { + isProbation: isProbation, + }) + .andWhere(IsLeavecondition.join(" AND "), parameters) .andWhere( new Brackets((qb) => { qb.orWhere( @@ -439,6 +455,9 @@ export class ReportController extends Controller { @Query() degree?: string, @Query() startDateAppoint?: Date, @Query() endDateAppoint?: Date, + @Query() isProbation?: boolean, + @Query() isRetire?: boolean, + @Query() retireType?: string, @Query() ageMin?: number, @Query() ageMax?: number, @Query() sortBy: string = "posMasterNo", @@ -480,6 +499,14 @@ export class ReportController extends Controller { } else if (endDateAppoint) { dateAppointCondition = "DATE(registryOfficer.dateAppoint) <= :endDateAppoint"; } + + const IsLeavecondition = ["registryOfficer.isLeave = :isLeave"]; + const parameters: any = { isLeave: isRetire }; + + if (retireType && retireType.trim() !== "") { + IsLeavecondition.push("registryOfficer.leaveType = :retireType"); + parameters.retireType = retireType; + } const [lists, total] = await AppDataSource.getRepository(viewRegistryEmployee) .createQueryBuilder("registryOfficer") .where(nodeCondition, { @@ -492,6 +519,10 @@ export class ReportController extends Controller { startDateAppoint: startDateAppoint?.toISOString().split("T")[0], endDateAppoint: endDateAppoint?.toISOString().split("T")[0] }) + .andWhere("registryOfficer.isProbation = :isProbation", { + isProbation: isProbation, + }) + .andWhere(IsLeavecondition.join(" AND "), parameters) .andWhere( new Brackets((qb) => { qb.orWhere( diff --git a/src/controllers/WorkflowController.ts b/src/controllers/WorkflowController.ts index 6a1d24bf..ec239349 100644 --- a/src/controllers/WorkflowController.ts +++ b/src/controllers/WorkflowController.ts @@ -1169,7 +1169,7 @@ export class WorkflowController extends Controller { orgChild2Id: x.orgChild2Id, orgChild3Id: x.orgChild3Id, orgChild4Id: x.orgChild4Id, - director: true, + isDirector: true, current_holder: Not(IsNull()), })); const posMaster = await this.posMasterRepo.find({