491 lines
9.2 KiB
TypeScript
491 lines
9.2 KiB
TypeScript
import { Entity, Column, ManyToOne, JoinColumn, OneToOne, OneToMany } from "typeorm";
|
|
import { EntityBase } from "./base/Base";
|
|
import { SalaryOrgEmployee } from "./SalaryOrgEmployee";
|
|
|
|
@Entity("salaryProfileEmployee")
|
|
export class SalaryProfileEmployee extends EntityBase {
|
|
@Column({
|
|
comment: "คีย์นอก(FK)ของตาราง salaryOrg",
|
|
length: 40,
|
|
})
|
|
salaryOrgId: string;
|
|
|
|
@Column({
|
|
type: "double",
|
|
nullable: true,
|
|
comment: "ขั้นเงินเดือน",
|
|
default: null,
|
|
})
|
|
salaryLevel: number | null;
|
|
|
|
@Column({
|
|
type: "double",
|
|
nullable: true,
|
|
comment: "ขั้นเงินเดือน(ใหม่)",
|
|
default: null,
|
|
})
|
|
salaryLevelNew: number;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
length: 40,
|
|
comment: "ไอดีโปรไฟล์",
|
|
default: null,
|
|
})
|
|
profileId: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ยศ",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
rank: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คำนำหน้า",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
prefix: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ชื่อ",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
firstName: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "สกุล",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
lastName: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "เลขบัตรประชาชน",
|
|
length: 100,
|
|
default: null,
|
|
})
|
|
citizenId: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "Prefix นำหน้าเลขที่ตำแหน่ง เป็น Optional (ไม่ใช่อักษรย่อของหน่วยงาน/ส่วนราชการ)",
|
|
length: 100,
|
|
default: null,
|
|
})
|
|
posMasterNoPrefix: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "เลขที่ตำแหน่ง เป็นตัวเลข",
|
|
default: null,
|
|
})
|
|
posMasterNo: number;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "Suffix หลังเลขที่ตำแหน่ง เช่น ช.",
|
|
length: 100,
|
|
default: null,
|
|
})
|
|
posMasterNoSuffix: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ชื่อย่อหน่วยงาน",
|
|
length: 100,
|
|
default: null,
|
|
})
|
|
orgShortName: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ตำแหน่ง",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
position: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ประเภทตำแหน่ง",
|
|
length: 100,
|
|
default: null,
|
|
})
|
|
posType: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ประเภทตำแหน่งย่อ",
|
|
length: 100,
|
|
default: null,
|
|
})
|
|
posTypeShort: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ระดับตำแหน่ง",
|
|
default: null,
|
|
})
|
|
posLevel: number;
|
|
|
|
@Column({
|
|
type: "double",
|
|
nullable: true,
|
|
comment: "กลุ่มบัญชีการจ้าง",
|
|
default: null,
|
|
})
|
|
group: number | null;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "กลุ่มบัญชีการจ้าง(ใหม่)",
|
|
default: null,
|
|
})
|
|
groupNew: number;
|
|
|
|
// @Column({
|
|
// nullable: true,
|
|
// comment: "ตำแหน่งทางการบริหาร",
|
|
// length: 255,
|
|
// default: null,
|
|
// })
|
|
// posExecutive: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
type: "double",
|
|
comment: "เงินเดือนฐาน",
|
|
default: null,
|
|
})
|
|
amount: number | null;
|
|
|
|
@Column({
|
|
type: "double",
|
|
comment: "เงินพิเศษ",
|
|
default: 0,
|
|
})
|
|
amountSpecial: number;
|
|
|
|
@Column({
|
|
type: "double",
|
|
comment: "จำนวนเงินที่ใช้เลื่อน",
|
|
default: 0,
|
|
})
|
|
amountUse: number;
|
|
|
|
@Column({
|
|
type: "double",
|
|
comment: "เงินเดือนหลังเลื่อน",
|
|
default: 0,
|
|
})
|
|
positionSalaryAmount: number;
|
|
|
|
@Column({
|
|
type: "double",
|
|
comment: "เปอร์เซ็นเงินพิเศษ",
|
|
default: 0,
|
|
})
|
|
positionSalaryAmountPer: number;
|
|
|
|
@Column({
|
|
type: "double",
|
|
comment: "เงินเดือนหลังเลื่อน(รายวัน)",
|
|
default: 0,
|
|
})
|
|
positionSalaryDayAmount: number | null;
|
|
|
|
@Column({
|
|
comment:
|
|
"ประเภทการเลื่อน(ขั้น) PENDING->รายชื่อคนครอง NONE->ไม่ได้เลื่อน HAFT->ครึ่งขั้น FULL->1ขั้น FULLHAFT->1.5ขั้น",
|
|
length: 20,
|
|
default: "PENDING",
|
|
})
|
|
type: string;
|
|
|
|
@Column({
|
|
comment: "สถานะ",
|
|
length: 20,
|
|
default: "PENDING",
|
|
})
|
|
status: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "id revision",
|
|
length: 40,
|
|
})
|
|
revisionId: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คีย์นอก(FK)ของตาราง orgRoot",
|
|
length: 40,
|
|
})
|
|
rootId: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ชื่อของหน่วยงาน",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
root: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คีย์นอก(FK)ของตาราง orgChild1",
|
|
length: 40,
|
|
})
|
|
child1Id: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ชื่อส่วนราชการ",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
child1: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คีย์นอก(FK)ของตาราง orgChild2",
|
|
length: 40,
|
|
})
|
|
child2Id: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ชื่อส่วนราชการ",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
child2: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คีย์นอก(FK)ของตาราง orgChild3",
|
|
length: 40,
|
|
})
|
|
child3Id: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ชื่อส่วนราชการ",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
child3: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คีย์นอก(FK)ของตาราง orgChild4",
|
|
length: 40,
|
|
})
|
|
child4Id: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ชื่อส่วนราชการ",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
child4: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ผลการประเมินผลการปฏิบัติราชการ",
|
|
default: null,
|
|
})
|
|
result: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ระยะเวลาการปฏิบัติราชการในรอบครึ่งปี",
|
|
default: null,
|
|
})
|
|
duration: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "การลงโทษทางวินัย",
|
|
default: null,
|
|
})
|
|
isPunish: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "พักราชการ",
|
|
default: null,
|
|
})
|
|
isSuspension: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ขาดราชการ",
|
|
default: null,
|
|
})
|
|
isAbsent: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "วันลา",
|
|
default: null,
|
|
})
|
|
isLeave: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "เกษียญ",
|
|
default: false,
|
|
})
|
|
isRetired: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "สำรอง",
|
|
default: false,
|
|
})
|
|
isReserve: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ทะลุขั้น",
|
|
default: false,
|
|
})
|
|
isNext: boolean;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ฉ",
|
|
default: null,
|
|
})
|
|
isSpecial: boolean;
|
|
|
|
@ManyToOne(() => SalaryOrgEmployee, (salaryOrg) => salaryOrg.salaryProfiles)
|
|
@JoinColumn({ name: "salaryOrgId" })
|
|
salaryOrg: SalaryOrgEmployee;
|
|
}
|
|
|
|
export class CreateSalaryProfileEmployee {
|
|
@Column("uuid")
|
|
id: string;
|
|
|
|
@Column()
|
|
type: string;
|
|
|
|
@Column()
|
|
profileId: string;
|
|
|
|
@Column()
|
|
rank?: string | null;
|
|
|
|
@Column()
|
|
prefix: string;
|
|
|
|
@Column()
|
|
firstName: string;
|
|
|
|
@Column()
|
|
lastName: string;
|
|
|
|
@Column()
|
|
citizenId: string;
|
|
|
|
@Column()
|
|
posMasterNoPrefix: string | null;
|
|
|
|
@Column()
|
|
posMasterNo: number;
|
|
|
|
@Column()
|
|
posMasterNoSuffix: string | null;
|
|
|
|
@Column()
|
|
orgShortName: string | null;
|
|
|
|
@Column()
|
|
position: string;
|
|
|
|
@Column()
|
|
posType: string | null;
|
|
|
|
@Column()
|
|
posLevel: number | null;
|
|
|
|
@Column()
|
|
group: number | null;
|
|
|
|
@Column()
|
|
posTypeShort: string | null;
|
|
|
|
@Column()
|
|
salaryLevel: number | null;
|
|
|
|
// @Column()
|
|
// posExecutive: string | null;
|
|
|
|
@Column()
|
|
amount: number | null;
|
|
|
|
@Column("uuid")
|
|
rootId: string | null;
|
|
|
|
@Column()
|
|
root: string | null;
|
|
|
|
@Column("uuid")
|
|
child1Id: string | null;
|
|
|
|
@Column()
|
|
child1: string | null;
|
|
|
|
@Column("uuid")
|
|
child2Id: string | null;
|
|
|
|
@Column()
|
|
child2: string | null;
|
|
|
|
@Column("uuid")
|
|
child3Id: string | null;
|
|
|
|
@Column()
|
|
child3: string | null;
|
|
|
|
@Column("uuid")
|
|
child4Id: string | null;
|
|
|
|
@Column()
|
|
child4: string | null;
|
|
|
|
@Column()
|
|
result: string | null;
|
|
|
|
@Column()
|
|
duration: string | null;
|
|
|
|
@Column()
|
|
isPunish: boolean;
|
|
|
|
@Column()
|
|
isSuspension: boolean;
|
|
|
|
@Column()
|
|
isAbsent: boolean;
|
|
|
|
@Column()
|
|
isLeave: boolean;
|
|
|
|
@Column()
|
|
isRetired: boolean;
|
|
|
|
@Column()
|
|
isSpecial: boolean;
|
|
}
|