Merge branch 'develop' of github.com:Frappet/hrms-api-org into develop

This commit is contained in:
mamoss 2025-04-02 13:14:10 +07:00
commit 1af0cd483d
4 changed files with 193 additions and 16 deletions

View file

@ -1718,25 +1718,25 @@ export class ProfileEmployeeController extends Controller {
if (orgRoot) {
nodeCondition = "profileSalary.orgRoot = :orgRoot";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild1Id IS NULL";
if (isAll == false) nodeAll = " AND profileSalary.orgChild1 IS NULL";
} else if (node === 1 && nodeId) {
orgChild1 = await this.child1Repository.findOne({where: { id: nodeId }});
if (orgChild1) {
nodeCondition = "profileSalary.orgChild1 = :orgChild1";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild2Id IS NULL";
if (isAll == false) nodeAll = " AND profileSalary.orgChild2 IS NULL";
} else if (node === 2 && nodeId) {
orgChild2 = await this.child2Repository.findOne({where: { id: nodeId }});
if (orgChild2) {
nodeCondition = "profileSalary.orgChild2 = :orgChild2";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild3Id IS NULL";
if (isAll == false) nodeAll = " AND profileSalary.orgChild3 IS NULL";
} else if (node === 3 && nodeId) {
orgChild3 = await this.child3Repository.findOne({where: { id: nodeId }});
if (orgChild3) {
nodeCondition = "profileSalary.orgChild3 = :orgChild3";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild4Id IS NULL";
if (isAll == false) nodeAll = " AND profileSalary.orgChild4 IS NULL";
} else if (node === 4 && nodeId) {
orgChild4 = await this.child4Repository.findOne({where: { id: nodeId }});
if (orgChild4) {
@ -1750,27 +1750,32 @@ export class ProfileEmployeeController extends Controller {
if (orgRootPms) {
pmsCondition = "profileSalary.orgRoot = :orgRoot";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild1 IS NULL";
} else if (_data.child1) {
orgChild1Pms = await this.child1Repository.findOne({where: { id: _data.child1 }});
if (orgChild1Pms) {
pmsCondition = "profileSalary.orgChild1 = :orgChild1";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild2 IS NULL";
} else if (_data.child2) {
orgChild2Pms = await this.child2Repository.findOne({where: { id: _data.child2 }});
if (orgChild2Pms) {
pmsCondition = "profileSalary.orgChild2 = :orgChild2";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild3 IS NULL";
} else if (_data.child3) {
orgChild3Pms = await this.child3Repository.findOne({where: { id: _data.child3 }});
if (orgChild3Pms) {
pmsCondition = "profileSalary.orgChild3 = :orgChild3";
}
if (isAll == false) nodeAll = " AND profileSalary.orgChild4 IS NULL";
} else if (_data.child4) {
orgChild4Pms = await this.child4Repository.findOne({where: { id: _data.child4 }});
if (orgChild4Pms) {
pmsCondition = "profileSalary.orgChild4 = :orgChild4";
}
}
pmsCondition = pmsCondition + nodeAll;
// const findRevision = await this.orgRevisionRepo.findOne({
// where: { orgRevisionIsCurrent: true },
// });
@ -1800,6 +1805,7 @@ export class ProfileEmployeeController extends Controller {
.orWhere("profileEmployee.isRetirement = :isRetirement", { isRetirement: true });
})
)
.andWhere("profileEmployee.leaveCommandId Is NOT NULL")
.andWhere("profileSalary.order = (SELECT MAX(ps.order) FROM profileSalary ps WHERE ps.profileEmployeeId = profileEmployee.id)")
// .andWhere(
@ -1885,19 +1891,19 @@ export class ProfileEmployeeController extends Controller {
},
)
.andWhere(pmsCondition, {
orgRoot: orgRootPms ? orgRootPms.orgRootName : undefined,
orgChild1: orgChild1Pms ? orgChild1Pms.orgChild1Name : undefined,
orgChild2: orgChild2Pms ? orgChild2Pms.orgChild2Name : undefined,
orgChild3: orgChild3Pms ? orgChild3Pms.orgChild3Name : undefined,
orgChild4: orgChild4Pms ? orgChild4Pms.orgChild4Name : undefined,
orgRootPms: orgRootPms ? orgRootPms.orgRootName : "",
orgChild1Pms: orgChild1Pms ? orgChild1Pms.orgChild1Name : "",
orgChild2Pms: orgChild2Pms ? orgChild2Pms.orgChild2Name : "",
orgChild3Pms: orgChild3Pms ? orgChild3Pms.orgChild3Name : "",
orgChild4Pms: orgChild4Pms ? orgChild4Pms.orgChild4Name : "",
})
.andWhere(nodeCondition, {
orgRoot: orgRoot ? orgRoot.orgRootName : undefined,
orgChild1: orgChild1 ? orgChild1.orgChild1Name : undefined,
orgChild2: orgChild2 ? orgChild2.orgChild2Name : undefined,
orgChild3: orgChild3 ? orgChild3.orgChild3Name : undefined,
orgChild4: orgChild4 ? orgChild4.orgChild4Name : undefined,
orgRoot: orgRoot ? orgRoot.orgRootName : "",
orgChild1: orgChild1 ? orgChild1.orgChild1Name : "",
orgChild2: orgChild2 ? orgChild2.orgChild2Name : "",
orgChild3: orgChild3 ? orgChild3.orgChild3Name : "",
orgChild4: orgChild4 ? orgChild4.orgChild4Name : "",
})
// .andWhere(`current_holders.orgRevisionId LIKE :orgRevisionId`, {
// orgRevisionId: findRevision.id,

View file

@ -209,7 +209,7 @@ export class ProfileSalary extends EntityBase {
comment: "refId",
default: null,
})
refId: number;
refId: string;
@Column({
comment: "วันที่",

View file

@ -222,7 +222,7 @@ export class ProfileSalaryTemp extends EntityBase {
comment: "refId",
default: null,
})
refId: number;
refId: string;
@Column({
comment: "วันที่",

View file

@ -0,0 +1,171 @@
import { ViewColumn, ViewEntity } from "typeorm";
@ViewEntity({
expression: `SELECT
posMaster.id,
posMaster.posMasterNoPrefix,
posMaster.posMasterNo,
posMaster.posMasterNoSuffix,
posMaster.orgRootId,
posMaster.orgChild1Id,
posMaster.orgChild2Id,
posMaster.orgChild3Id,
posMaster.orgChild4Id,
posMaster.current_holderId,
profile.id as profileId,
profile.prefix,
profile.firstName,
profile.lastName,
profile.citizenId,
profile.position,
profile.amount,
profile.dateRetire,
profile.birthDate,
orgRoot.id as rootId,
orgRoot.orgRootShortName,
orgChild1.id as child1Id,
orgChild1.orgChild1Name,
orgChild2.id as child2Id,
orgChild2.orgChild2Name,
orgChild3.id as child3Id,
orgChild3.orgChild3Name,
orgChild4.id as child4Id,
orgChild4.orgChild4Name,
position.id as positionId,
position.positionIsSelected,
position.posExecutiveId,
position.isSpecial,
posExecutive.id as posExecutiveId,
posExecutive.posExecutiveName,
profileDiscipline.id as profileDisciplineId,
profileDiscipline.date as disCriplineDate,
profileLeave.id as profileLeaveId,
profileAssessment.id as profileAssessmentId,
profileAssessment.pointSum,
posLevel.id as posLevelId,
posLevel.posLevelName,
posType.id as posTypeId,
posType.posTypeName
FROM
posMaster
LEFT JOIN
profile ON posMaster.current_holderId = profile.id
LEFT JOIN
orgRoot ON posMaster.orgRootId = orgRoot.id
LEFT JOIN
orgChild1 ON posMaster.orgChild1Id = orgChild1.id
LEFT JOIN
orgChild2 ON posMaster.orgChild2Id = orgChild2.id
LEFT JOIN
orgChild3 ON posMaster.orgChild3Id = orgChild3.id
LEFT JOIN
orgChild4 ON posMaster.orgChild4Id = orgChild4.id
LEFT JOIN
position ON posMaster.id = position.posMasterId
LEFT JOIN
posExecutive ON position.posExecutiveId = posExecutive.id
LEFT JOIN
profileDiscipline ON profileDiscipline.profileId = profile.id
LEFT JOIN
profileLeave ON profileLeave.profileId = profile.id
LEFT JOIN
profileAssessment ON profileAssessment.profileId = profile.id
LEFT JOIN
posLevel ON profile.posLevelId = posLevel.id
LEFT JOIN
posType ON profile.posTypeId = posType.id
WHERE
posMaster.current_holderId IS NOT NULL
ORDER BY
profile.citizenId ASC
`,
})
export class viewPosMaster {
@ViewColumn()
id: string;
@ViewColumn()
posMasterNoPrefix: string;
@ViewColumn()
posMasterNo: number;
@ViewColumn()
posMasterNoSuffix: string;
@ViewColumn()
orgRootId: string;
@ViewColumn()
orgChild1Id: string;
@ViewColumn()
orgChild2Id: string;
@ViewColumn()
orgChild3Id: string;
@ViewColumn()
orgChild4Id: string;
@ViewColumn()
current_holderId: string;
@ViewColumn()
profileId: string;
@ViewColumn()
prefix: string;
@ViewColumn()
firstName: string;
@ViewColumn()
lastName: string;
@ViewColumn()
citizenId: number;
@ViewColumn()
position: string;
@ViewColumn()
amount: number;
@ViewColumn()
dateRetire: Date;
@ViewColumn()
birthDate: Date;
@ViewColumn()
rootId: string;
@ViewColumn()
orgRootShortName: string;
@ViewColumn()
child1Id: string;
@ViewColumn()
orgChild1Name: string;
@ViewColumn()
child2Id: string;
@ViewColumn()
orgChild2Name: string;
@ViewColumn()
child3Id: string;
@ViewColumn()
orgChild3Name: string;
@ViewColumn()
child4Id: string;
@ViewColumn()
orgChild4Name: string;
@ViewColumn()
positionId: string;
@ViewColumn()
positionIsSelected: boolean;
@ViewColumn()
posExecutiveId: string;
@ViewColumn()
isSpecial: boolean;
@ViewColumn()
posExcutiveId: string;
@ViewColumn()
profileDisciplineId: string;
@ViewColumn()
disCriplineDate: Date;
@ViewColumn()
profileLeaveId: string;
@ViewColumn()
profileAssessmentId: string;
@ViewColumn()
pointSum: string;
@ViewColumn()
posLevelId: string;
@ViewColumn()
posLevelName: string;
@ViewColumn()
posTypeId: string;
@ViewColumn()
posTypeName: string;
}