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: "คีย์นอก(FK)ของตาราง salaryOrg", length: 40, }) salaryOrgId: string; @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, }) posLevel: string; @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({ comment: "ประเภทการเลื่อน(ขั้น) PENDING->รายชื่อคนครอง NONE->ไม่ได้เลื่อน HAFT->ครึ่งขั้น FULL->1ขั้น FULLHAFT->1.5ขั้น", length: 20, default: "PENDING", }) type: string; @Column({ comment: "สถานะ", length: 20, default: "PENDING", }) status: string; @Column({ comment: "สถานะออกคำสั่ง33", length: 20, default: "PENDING", }) status33: string; @Column({ comment: "สถานะออกคำสั่ง34", length: 20, default: "PENDING", }) status34: string; @Column({ comment: "สถานะออกคำสั่ง35", length: 20, default: "PENDING", }) status35: string; @Column({ nullable: true, comment: "id revision", length: 40, }) revisionId: string; @Column({ nullable: true, comment: "order orgRoot", length: 40, }) rootOrder: 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: "Order orgChild1", length: 40, }) child1Order: 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: "Order orgChild2", length: 40, }) child2Order: 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: "Order orgChild3", length: 40, }) child3Order: 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: "Order orgChild4", length: 40, }) child4Order: string; @Column({ nullable: true, comment: "คีย์นอก(FK)ของตาราง orgChild4", length: 40, }) child4Id: string; @Column({ nullable: true, comment: "ชื่อส่วนราชการ", length: 255, default: null, }) child4: string; @Column({ nullable: true, default: null, length: 255, comment: "ผลการประเมินผลการปฏิบัติราชการ", //คะแนนประเมิน }) result: string; @Column({ nullable: true, default: null, type: "text", comment: "หมายเหตุ", }) remark: 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(() => SalaryOrg, (salaryOrg) => salaryOrg.salaryProfiles) @JoinColumn({ name: "salaryOrgId" }) salaryOrg: SalaryOrg; } export class CreateSalaryProfile { @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; @Column() posLevel: string; @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; // @Column() // remark: string | null; }