import { Entity, Column, ManyToOne, JoinColumn, OneToOne, OneToMany } from "typeorm"; import { EntityBase } from "./base/Base"; import { SalaryOrg } from "./SalaryOrg"; @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({ 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, }) posLevel: string; @Column({ nullable: true, comment: "ตำแหน่งทางการบริหาร", length: 255, default: null, }) posExecutive: string; @Column({ nullable: true, type: "double", comment: "เงินเดือนฐาน", default: null, }) amount: number; @Column({ nullable: true, type: "double", comment: "เงินพิเศษ", default: null, }) amountSpecial: number; @Column({ nullable: true, type: "double", comment: "จำนวนเงินที่ใช้เลื่อน", default: null, }) amountUse: number | null; @Column({ nullable: true, type: "double", comment: "เงินเดือนหลังเลื่อน", default: null, }) positionSalaryAmount: 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: "", length: 40, }) rootId: string; @Column({ nullable: true, comment: "", length: 255, default: null, }) root: string; @Column({ nullable: true, comment: "", length: 40, }) child1Id: string; @Column({ nullable: true, comment: "", length: 255, default: null, }) child1: string; @Column({ nullable: true, comment: "", length: 40, }) child2Id: string; @Column({ nullable: true, comment: "", length: 255, default: null, }) child2: string; @Column({ nullable: true, comment: "", length: 40, }) child3Id: string; @Column({ nullable: true, comment: "", length: 255, default: null, }) child3: string; @Column({ nullable: true, comment: "", 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, }) punish: string; @Column({ nullable: true, comment: "พักราชการ", default: null, }) retired: string; @Column({ nullable: true, comment: "ขาดราชการ", default: null, }) retired2: string; @ManyToOne(() => SalaryOrg, (salaryOrg) => salaryOrg.salaryProfiles) @JoinColumn({ name: "salaryOrgId" }) salaryOrg: SalaryOrg; } export class CreateSalaryProfile { @Column("uuid") id: string; @Column() type: string; @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; @Column() posLevel: string; @Column() posExecutive: string | null; @Column() amount: number; @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: boolean; @Column() duration: boolean; @Column() punish: boolean; @Column() retired: boolean; @Column() retired2: boolean; }