hrms-api-org/src/entities/view/viewEmployeePosMaster.ts

223 lines
5.8 KiB
TypeScript
Raw Normal View History

2025-04-17 10:20:56 +07:00
import { ViewColumn, ViewEntity } from "typeorm";
@ViewEntity({
expression: `SELECT
employeePosMaster.id,
employeePosMaster.posMasterNoPrefix,
employeePosMaster.posMasterNo,
employeePosMaster.posMasterNoSuffix,
employeePosMaster.orgRevisionId,
employeePosMaster.orgRootId,
employeePosMaster.orgChild1Id,
employeePosMaster.orgChild2Id,
employeePosMaster.orgChild3Id,
employeePosMaster.orgChild4Id,
employeePosMaster.current_holderId,
profileEmployee.id as profileId,
profileEmployee.prefix,
profileEmployee.firstName,
profileEmployee.lastName,
profileEmployee.citizenId,
profileEmployee.position,
profileEmployee.amount,
profileEmployee.dateRetire,
profileEmployee.birthDate,
profileEmployee.salaryLevel,
profileEmployee.group,
orgRoot.id as rootId,
orgRoot.orgRootShortName,
orgRoot.orgRootOrder,
orgRoot.orgRootName,
orgChild1.id as child1Id,
orgChild1.orgChild1ShortName,
orgChild1.orgChild1Order,
orgChild1.orgChild1Name,
orgChild2.id as child2Id,
orgChild2.orgChild2ShortName,
orgChild2.orgChild2Order,
orgChild2.orgChild2Name,
orgChild3.id as child3Id,
orgChild3.orgChild3ShortName,
orgChild3.orgChild3Order,
orgChild3.orgChild3Name,
orgChild4.id as child4Id,
orgChild4.orgChild4ShortName,
orgChild4.orgChild4Order,
orgChild4.orgChild4Name,
position.id as positionId,
position.positionIsSelected,
position.posExecutiveId as positionPosExecutiveId,
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,
employeePosLevel.id as posLevelId,
employeePosLevel.posLevelName,
employeePosType.id as posTypeId,
employeePosType.posTypeName,
employeePosType.posTypeShortName
FROM
employeePosMaster
LEFT JOIN
profileEmployee ON employeePosMaster.current_holderId = profileEmployee.id
LEFT JOIN
orgRoot ON employeePosMaster.orgRootId = orgRoot.id
LEFT JOIN
orgChild1 ON employeePosMaster.orgChild1Id = orgChild1.id
LEFT JOIN
orgChild2 ON employeePosMaster.orgChild2Id = orgChild2.id
LEFT JOIN
orgChild3 ON employeePosMaster.orgChild3Id = orgChild3.id
LEFT JOIN
orgChild4 ON employeePosMaster.orgChild4Id = orgChild4.id
LEFT JOIN
position ON employeePosMaster.id = position.posMasterId
LEFT JOIN
posExecutive ON position.posExecutiveId = posExecutive.id
2025-05-01 13:14:38 +07:00
LEFT JOIN (
SELECT *
FROM profileDisciplineEmployee pd1
WHERE pd1.date = (
SELECT MAX(pd2.date)
FROM profileDisciplineEmployee pd2
WHERE pd2.profileId = pd1.profileId
)
) AS profileDiscipline ON profileDiscipline.profileId = profileEmployee.id
2025-04-17 10:20:56 +07:00
LEFT JOIN
profileLeave ON profileLeave.profileId = profileEmployee.id
LEFT JOIN
profileAssessment ON profileAssessment.profileId = profileEmployee.id
LEFT JOIN
employeePosLevel ON profileEmployee.posLevelId = employeePosLevel.id
LEFT JOIN
employeePosType ON profileEmployee.posTypeId = employeePosType.id
WHERE
employeePosMaster.current_holderId IS NOT NULL
ORDER BY
profileEmployee.citizenId ASC
`,
})
export class viewEmployeePosMaster {
@ViewColumn()
id: string;
@ViewColumn()
posMasterNoPrefix: string;
@ViewColumn()
posMasterNo: number;
@ViewColumn()
posMasterNoSuffix: string;
@ViewColumn()
orgRevisionId: 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()
orgRootOrder: string;
@ViewColumn()
orgRootName: string;
@ViewColumn()
child1Id: string;
@ViewColumn()
orgChild1ShortName: string;
@ViewColumn()
orgChild1Order: string;
@ViewColumn()
orgChild1Name: string;
@ViewColumn()
child2Id: string;
@ViewColumn()
orgChild2ShortName: string;
@ViewColumn()
orgChild2Order: string;
@ViewColumn()
orgChild2Name: string;
@ViewColumn()
child3Id: string;
@ViewColumn()
orgChild3ShortName: string;
@ViewColumn()
orgChild3Order: string;
@ViewColumn()
orgChild3Name: string;
@ViewColumn()
child4Id: string;
@ViewColumn()
orgChild4ShortName: string;
@ViewColumn()
orgChild4Order: string;
@ViewColumn()
orgChild4Name: string;
@ViewColumn()
positionId: string;
@ViewColumn()
positionIsSelected: boolean;
@ViewColumn()
positionPosExecutiveId: string;
@ViewColumn()
isSpecial: boolean;
@ViewColumn()
posExecutiveId: string;
@ViewColumn()
posExecutiveName: string;
@ViewColumn()
profileDisciplineId: string;
@ViewColumn()
disCriplineDate: Date;
@ViewColumn()
profileLeaveId: string;
@ViewColumn()
profileAssessmentId: string;
@ViewColumn()
pointSum: number;
@ViewColumn()
posLevelId: string;
@ViewColumn()
posLevelName: string;
@ViewColumn()
posTypeId: string;
@ViewColumn()
posTypeName: string;
@ViewColumn()
salaryLevel: number;
@ViewColumn()
group: number;
@ViewColumn()
posTypeShortName: string;
}