hrms-api-org/src/entities/ProfileLeaveHistory.ts
2024-03-12 17:33:22 +07:00

376 lines
7.2 KiB
TypeScript

import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileLeave } from "./ProfileLeave";
@Entity("profileLeaveHistory")
export class ProfileLeaveHistory extends EntityBase {
@Column({
comment: "สถานะการใช้งาน",
default: false,
})
isActive: boolean;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// restCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// restDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลาพักผ่อน (วัน)",
// default: null,
// })
// sickCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลาป่วย (วัน)",
// default: null,
// })
// sickDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// otherDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// personalCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลากิจส่วนตัว (วัน)",
// default: null,
// })
// personalDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// studyCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// absentCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล (วัน)",
// default: null,
// })
// absentDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// agencyCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลาไปปฏิบัติงานในองค์การระหว่างประเทศ (วัน)",
// default: null,
// })
// agencyDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// coupleCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลาติดตามคู่สมรส (วัน)",
// default: null,
// })
// coupleDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// lateCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// lateDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// maternityCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลาคลอดบุตร (วัน)",
// default: null,
// })
// maternityDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// militaryCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// militaryDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// ordainCount: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "ลาอุปสมบทหรือการลาประกอบพิธีฮัจย์ฯ (วัน)",
// default: null,
// })
// ordainDay: number;
// @Column({
// nullable: true,
// type: "double",
// comment: "",
// default: null,
// })
// otherCount: number;
@Column({
nullable: true,
type: "datetime",
comment: "วัน เดือน ปี ที่เริ่มลา",
default: null,
})
dateStartLeave: Date;
@Column({
nullable: true,
type: "datetime",
comment: "วัน เดือน ปี ที่สิ้นสุดลา",
default: null,
})
dateEndLeave: Date;
@Column({
nullable: true,
type: "double",
comment: "ลาครั้งที่",
default: null,
})
numLeave: number;
@Column({
nullable: true,
type: "double",
comment: "ลามาแล้ว",
default: null,
})
sumLeave: number;
@Column({
nullable: true,
type: "double",
comment: "รวมเป็น",
default: null,
})
totalLeave: number;
@Column({
nullable: true,
comment: "สถานะ",
type: "text",
default: null,
})
status: string;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง TypeLeave",
default: null,
})
typeLeaveId: string;
@Column({
nullable: true,
comment: "เหตุผล",
type: "text",
default: null,
})
reason: string;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง ProfileLeave",
default: null,
})
profileLeaveId: string;
@ManyToOne(() => ProfileLeave, (profileLeave) => profileLeave.profileLeaves)
@JoinColumn({ name: "profileLeaveId" })
histories: ProfileLeave;
}
export class CreateProfileLeaveHistory {
@Column()
isActive: boolean;
// @Column()
// restCount: number | null;
// @Column()
// restDay: number | null;
// @Column()
// sickCount: number | null;
// @Column()
// sickDay: number | null;
// @Column()
// otherDay: number | null;
// @Column()
// personalCount: number | null;
// @Column()
// personalDay: number | null;
// @Column()
// studyCount: number | null;
// @Column()
// absentCount: number | null;
// @Column()
// absentDay: number | null;
// @Column()
// agencyCount: number | null;
// @Column()
// agencyDay: number | null;
// @Column()
// coupleCount: number | null;
// @Column()
// coupleDay: number | null;
// @Column()
// lateCount: number | null;
// @Column()
// lateDay: number | null;
// @Column()
// maternityCount: number | null;
// @Column()
// maternityDay: number | null;
// @Column()
// militaryCount: number | null;
// @Column()
// militaryDay: number | null;
// @Column()
// ordainCount: number | null;
// @Column()
// ordainDay: number | null;
// @Column()
// otherCount: number | null;
@Column()
dateStartLeave: Date | null;
@Column()
dateEndLeave: Date | null;
@Column()
numLeave: number | null;
@Column()
sumLeave: number | null;
@Column()
totalLeave: number | null;
@Column()
status: string | null;
@Column("uuid")
typeLeaveId: string | null;
@Column()
reason: string | null;
@Column("uuid")
profileLeaveId: string | null;
}
export type UpdateProfileLeaveHistory = Partial<CreateProfileLeaveHistory>;