hrms-api-salary/src/entities/SalaryProfile.ts

363 lines
6.2 KiB
TypeScript
Raw Normal View History

2024-02-23 17:17:19 +07:00
import { Entity, Column, ManyToOne, JoinColumn, OneToOne, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { SalaryOrg } from "./SalaryOrg";
2024-02-23 17:17:19 +07:00
@Entity("salaryProfile")
export class SalaryProfile extends EntityBase {
@Column({
comment: "",
length: 40,
})
salaryOrgId: 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({
2024-02-27 11:05:20 +07:00
nullable: true,
comment: "เลขที่ตำแหน่ง เป็นตัวเลข",
2024-02-27 11:05:20 +07:00
default: null,
})
posMasterNo: number;
@Column({
nullable: true,
comment: "Suffix หลังเลขที่ตำแหน่ง เช่น ช.",
length: 100,
default: null,
})
posMasterNoSuffix: string;
@Column({
nullable: true,
comment: "ชื่อย่อหน่วยงาน",
length: 100,
default: null,
2024-02-23 17:17:19 +07:00
})
orgShortName: string;
2024-02-23 17:17:19 +07:00
@Column({
nullable: true,
comment: "ตำแหน่ง",
length: 255,
default: null,
})
position: string;
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
2024-02-23 17:17:19 +07:00
comment: "ประเภทตำแหน่ง",
length: 100,
2024-02-27 11:05:20 +07:00
default: null,
2024-02-23 17:17:19 +07:00
})
posType: string;
2024-02-23 17:17:19 +07:00
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
2024-02-23 17:17:19 +07:00
comment: "ระดับตำแหน่ง",
length: 100,
2024-02-27 11:05:20 +07:00
default: null,
})
posLevel: string;
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
comment: "ตำแหน่งทางการบริหาร",
length: 255,
2024-02-27 11:05:20 +07:00
default: null,
2024-02-23 17:17:19 +07:00
})
posExecutive: string;
2024-02-23 17:17:19 +07:00
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
type: "double",
2024-02-23 17:17:19 +07:00
comment: "เงินเดือนฐาน",
2024-02-27 11:05:20 +07:00
default: null,
2024-02-23 17:17:19 +07:00
})
amount: number;
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
type: "double",
comment: "เงินพิเศษ",
2024-02-27 11:05:20 +07:00
default: null,
})
amountSpecial: number;
2024-02-23 17:17:19 +07:00
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
type: "double",
2024-02-23 17:17:19 +07:00
comment: "จำนวนเงินที่ใช้เลื่อน",
2024-02-27 11:05:20 +07:00
default: null,
2024-02-23 17:17:19 +07:00
})
amountUse: number | null;
2024-02-23 17:17:19 +07:00
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
type: "double",
2024-02-23 17:17:19 +07:00
comment: "เงินเดือนหลังเลื่อน",
2024-02-27 11:05:20 +07:00
default: null,
2024-02-23 17:17:19 +07:00
})
positionSalaryAmount: number | null;
2024-02-23 17:17:19 +07:00
@Column({
comment:
"ประเภทการเลื่อน(ขั้น) PENDING->รายชื่อคนครอง NONE->ไม่ได้เลื่อน HAFT->ครึ่งขั้น FULL->1ขั้น FULLHAFT->1.5ขั้น",
length: 20,
2024-02-27 11:05:20 +07:00
default: "PENDING",
2024-02-23 17:17:19 +07:00
})
type: string;
@Column({
comment: "สถานะ",
length: 20,
default: "PENDING",
})
status: string;
@Column({
nullable: true,
comment: "id revision",
length: 40,
})
revisionId: string;
2024-02-23 17:17:19 +07:00
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
2024-02-23 17:17:19 +07:00
comment: "",
length: 40,
})
rootId: string;
@Column({
nullable: true,
comment: "",
length: 255,
default: null,
})
root: string;
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
2024-02-23 17:17:19 +07:00
comment: "",
length: 40,
})
child1Id: string;
@Column({
nullable: true,
comment: "",
length: 255,
default: null,
})
child1: string;
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
2024-02-23 17:17:19 +07:00
comment: "",
length: 40,
})
child2Id: string;
@Column({
nullable: true,
comment: "",
length: 255,
default: null,
})
child2: string;
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
2024-02-23 17:17:19 +07:00
comment: "",
length: 40,
})
child3Id: string;
@Column({
nullable: true,
comment: "",
length: 255,
default: null,
})
child3: string;
@Column({
2024-02-27 11:05:20 +07:00
nullable: true,
2024-02-23 17:17:19 +07:00
comment: "",
length: 40,
})
child4Id: string;
@Column({
nullable: true,
comment: "",
length: 255,
default: null,
})
child4: string;
2024-02-27 12:56:44 +07:00
@Column({
comment: "ผลการประเมิน",
default: false,
})
2024-02-28 16:33:03 +07:00
result: boolean;
2024-02-27 12:56:44 +07:00
@Column({
comment: "ระยะเวลา",
default: false,
})
2024-02-28 16:33:03 +07:00
duration: boolean;
2024-02-27 12:56:44 +07:00
@Column({
comment: "การลงโทษ",
default: false,
})
2024-02-28 16:33:03 +07:00
punish: boolean;
2024-02-27 12:56:44 +07:00
@Column({
comment: "พักราชการ",
default: false,
})
2024-02-28 16:33:03 +07:00
retired: boolean;
2024-02-27 12:56:44 +07:00
@Column({
comment: "ขาดราชการ",
default: false,
})
2024-02-28 16:33:03 +07:00
retired2: boolean;
2024-02-27 12:56:44 +07:00
@ManyToOne(() => SalaryOrg, (salaryOrg) => salaryOrg.salaryProfiles)
@JoinColumn({ name: "salaryOrgId" })
salaryOrg: SalaryOrg;
2024-02-23 17:17:19 +07:00
}
export class CreateSalaryProfile {
@Column("uuid")
id: string;
2024-02-23 17:17:19 +07:00
@Column()
type: string;
2024-02-23 17:17:19 +07:00
@Column()
prefix: string;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
citizenId: string;
@Column()
2024-02-28 16:04:09 +07:00
posMasterNoPrefix: string | null;
@Column()
posMasterNo: number;
@Column()
2024-02-28 16:04:09 +07:00
posMasterNoSuffix: string | null;
@Column()
2024-02-28 16:04:09 +07:00
orgShortName: string | null;
@Column()
position: string;
@Column()
posType: string;
@Column()
posLevel: string;
2024-02-28 13:59:03 +07:00
@Column()
2024-02-28 16:04:09 +07:00
posExecutive: string | null;
2024-02-28 13:59:03 +07:00
@Column()
amount: number;
@Column("uuid")
2024-02-28 16:04:09 +07:00
rootId: string | null;
@Column()
2024-02-28 16:04:09 +07:00
root: string | null;
@Column("uuid")
2024-02-28 16:04:09 +07:00
child1Id: string | null;
@Column()
2024-02-28 16:04:09 +07:00
child1: string | null;
@Column("uuid")
2024-02-28 16:04:09 +07:00
child2Id: string | null;
@Column()
2024-02-28 16:04:09 +07:00
child2: string | null;
2024-02-23 17:17:19 +07:00
@Column("uuid")
2024-02-28 16:04:09 +07:00
child3Id: string | null;
@Column()
2024-02-28 16:04:09 +07:00
child3: string | null;
@Column("uuid")
2024-02-28 16:04:09 +07:00
child4Id: string | null;
@Column()
2024-02-28 16:04:09 +07:00
child4: string | null;
2024-02-28 13:59:03 +07:00
@Column()
2024-02-28 16:33:03 +07:00
result: boolean;
2024-02-28 13:59:03 +07:00
@Column()
2024-02-28 16:33:03 +07:00
duration: boolean;
2024-02-28 13:59:03 +07:00
@Column()
2024-02-28 16:33:03 +07:00
punish: boolean;
2024-02-28 13:59:03 +07:00
@Column()
2024-02-28 16:33:03 +07:00
retired: boolean;
2024-02-28 13:59:03 +07:00
@Column()
2024-02-28 16:33:03 +07:00
retired2: boolean;
}