add dateRetireLaw

This commit is contained in:
Bright 2025-02-24 14:08:11 +07:00
parent 6f6b6bba43
commit 7a3085c57f
3 changed files with 45 additions and 8 deletions

View file

@ -187,6 +187,7 @@ export class ReportController extends Controller {
@Query() ageMax?: number,
@Query() isProbation?: boolean,
@Query() isRetire?: boolean,
@Query() isRetireLaw?: boolean,
@Query() retireType?: string,
@Query() sortBy: string = "posMasterNo",
@Query() sort: "ASC" | "DESC" = "ASC",
@ -234,12 +235,17 @@ export class ReportController extends Controller {
const IsLeavecondition = ["registryOfficer.isLeave = :isLeave"];
const parameters: any = { isLeave: isRetire };
if (retireType && retireType.trim() !== "") {
IsLeavecondition.push("registryOfficer.leaveType = :retireType");
parameters.retireType = retireType;
}
let retireLawCondition = "1=1";
if(isRetireLaw) {
retireLawCondition =
"DATE(registryOfficer.dateRetireLaw) >= :startDateRetireLaw AND DATE(registryOfficer.dateRetireLaw) <= :endDateRetireLaw";
}
const [lists, total] = await AppDataSource.getRepository(viewRegistryOfficer)
.createQueryBuilder("registryOfficer")
.where(nodeCondition, {
@ -253,6 +259,10 @@ export class ReportController extends Controller {
startDateAppoint: dateStart?.toISOString().split("T")[0],
endDateAppoint: dateEnd?.toISOString().split("T")[0],
})
.andWhere(retireLawCondition, {
startDateRetireLaw: new Date(new Date().getFullYear() - 1, 9, 1, 0, 0, 0, 0)?.toISOString().split("T")[0],
endDateRetireLaw: new Date(new Date().getFullYear(), 8, 30, 23, 59, 59, 999).toISOString().split("T")[0],
})
.andWhere("registryOfficer.isProbation = :isProbation", {
isProbation: isProbation,
})
@ -345,6 +355,8 @@ export class ReportController extends Controller {
gender: x.gender,
relationship: x.relationship,
dateAppoint: x.dateAppoint,
dateRetire: x.dateRetire,
dateRetireLaw: x.dateRetireLaw,
birthdate: x.birthdate,
degree: x.degree,
age: x.age,
@ -488,6 +500,7 @@ export class ReportController extends Controller {
@Query() dateEnd?: Date,
@Query() isProbation?: boolean,
@Query() isRetire?: boolean,
@Query() isRetireLaw?: boolean,
@Query() retireType?: string,
@Query() ageMin?: number,
@Query() ageMax?: number,
@ -537,11 +550,17 @@ export class ReportController extends Controller {
const IsLeavecondition = ["registryEmployee.isLeave = :isLeave"];
const parameters: any = { isLeave: isRetire };
if (retireType && retireType.trim() !== "") {
IsLeavecondition.push("registryEmployee.leaveType = :retireType");
parameters.retireType = retireType;
}
let retireLawCondition = "1=1";
if(isRetireLaw) {
retireLawCondition =
"DATE(registryEmployee.dateRetireLaw) >= :startDateRetireLaw AND DATE(registryEmployee.dateRetireLaw) <= :endDateRetireLaw";
}
const [lists, total] = await AppDataSource.getRepository(viewRegistryEmployee)
.createQueryBuilder("registryEmployee")
.where(nodeCondition, {
@ -555,6 +574,10 @@ export class ReportController extends Controller {
startDateAppoint: dateStart?.toISOString().split("T")[0],
endDateAppoint: dateEnd?.toISOString().split("T")[0],
})
.andWhere(retireLawCondition, {
startDateRetireLaw: new Date(new Date().getFullYear() - 1, 9, 1, 0, 0, 0, 0)?.toISOString().split("T")[0],
endDateRetireLaw: new Date(new Date().getFullYear(), 8, 30, 23, 59, 59, 999).toISOString().split("T")[0],
})
.andWhere("registryEmployee.isProbation = :isProbation", {
isProbation: isProbation,
})
@ -562,7 +585,7 @@ export class ReportController extends Controller {
.andWhere("registryEmployee.employeeClass = 'PERM'")
.andWhere(
posType != null && posType != ""
? "registryOfficer.posTypeName LIKE :posTypeName"
? "registryEmployee.posTypeName LIKE :posTypeName"
: "1=1",
{
posTypeName: `%${posType}%`,
@ -570,7 +593,7 @@ export class ReportController extends Controller {
)
.andWhere(
posLevel != null && posLevel != ""
? "registryOfficer.posLevelName LIKE :posLevelName"
? "registryEmployee.posLevelName LIKE :posLevelName"
: "1=1",
{
posLevelName: `%${posLevel}%`,
@ -578,7 +601,7 @@ export class ReportController extends Controller {
)
.andWhere(
position != null && position != ""
? "registryOfficer.position LIKE :position"
? "registryEmployee.position LIKE :position"
: "1=1",
{
position: `%${position}%`,
@ -586,7 +609,7 @@ export class ReportController extends Controller {
)
.andWhere(
gender != null && gender != ""
? "registryOfficer.gender LIKE :gender"
? "registryEmployee.gender LIKE :gender"
: "1=1",
{
gender: `%${gender}%`,
@ -594,7 +617,7 @@ export class ReportController extends Controller {
)
.andWhere(
status != null && status != ""
? "registryOfficer.relationship LIKE :relationship"
? "registryEmployee.relationship LIKE :relationship"
: "1=1",
{
relationship: `%${status}%`,
@ -602,7 +625,7 @@ export class ReportController extends Controller {
)
.andWhere(
education != null && education != ""
? "registryOfficer.degree LIKE :degree"
? "registryEmployee.degree LIKE :degree"
: "1=1",
{
degree: `%${education}%`,
@ -639,6 +662,8 @@ export class ReportController extends Controller {
gender: x.gender,
relationship: x.relationship,
dateAppoint: x.dateAppoint,
dateRetire: x.dateRetire,
dateRetireLaw: x.dateRetireLaw,
birthdate: x.birthdate,
degree: x.degree,
age: x.age,

View file

@ -185,6 +185,12 @@ export class viewRegistryEmployee {
@ViewColumn()
dateAppoint: Date;
@ViewColumn()
dateRetire: Date;
@ViewColumn()
dateRetireLaw: Date;
@ViewColumn()
birthdate: Date;

View file

@ -193,6 +193,12 @@ export class viewRegistryOfficer {
@ViewColumn()
dateAppoint: Date;
@ViewColumn()
dateRetire: Date;
@ViewColumn()
dateRetireLaw: Date;
@ViewColumn()
birthdate: Date;