feat: สร้าง entities การลา

This commit is contained in:
Net 2024-03-21 11:28:24 +07:00 committed by Methapon2001
parent a421f8d0f6
commit 04eb3e2564
2 changed files with 62 additions and 265 deletions

41
src/entities/LeaveType.ts Normal file
View file

@ -0,0 +1,41 @@
import { Entity, Column, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { ProfileLeave } from "./ProfileLeave";
@Entity("leaveType")
export class LeaveType extends EntityBase {
@Column({
nullable: true,
comment: "ประเภทการลา",
length: 255,
default: null,
})
name: string;
@Column({
nullable: true,
comment: "รหัสประเภอการลา",
length: 255,
default: null,
})
code: number;
@Column({
nullable: true,
comment: "ลาได้สูงสุด(วัน)",
default: true,
})
limit: number;
@OneToMany(() => ProfileLeave, (v) => v.leaveType)
profileLeave: ProfileLeave;
}
export class CreateBloodGroup {
name: string | null;
code: number | null;
limit: number | null;
}
export type UpdateBloodGroup = Partial<CreateBloodGroup>;

View file

@ -2,6 +2,7 @@ import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileLeaveHistory } from "./ProfileLeaveHistory";
import { LeaveType } from "./LeaveType";
@Entity("profileLeave")
export class ProfileLeave extends EntityBase {
@ -13,227 +14,37 @@ export class ProfileLeave extends EntityBase {
})
profileId: string;
@Column({
comment: "สถานะการใช้งาน",
default: false,
})
isActive: boolean;
@Column({
nullable: true,
type: "double",
comment: "",
length: 40,
comment: "คีย์นอก(FK)ของตาราง LeaveType",
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;
leaveTypeId: string;
@Column({
nullable: true,
type: "datetime",
comment: "วัน เดือน ปี ที่เริ่มลา",
comment: "วัน เดือน ปี ที่ลา",
default: null,
})
dateStartLeave: Date;
@Column({
nullable: true,
type: "datetime",
comment: "วัน เดือน ปี ที่สิ้นสุดลา",
default: null,
})
dateEndLeave: Date;
dateLeave: Date;
@Column({
nullable: true,
type: "double",
comment: "ลาครั้งที่",
comment: "จำนวนวันลา",
default: null,
})
numLeave: number;
leaveDays: number;
@Column({
nullable: true,
type: "double",
comment: "ลามาล้ว",
comment: "ลามาเเล้ว",
default: null,
})
sumLeave: number;
leverCount: number;
@Column({
nullable: true,
@ -251,14 +62,6 @@ export class ProfileLeave extends EntityBase {
})
status: string;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง TypeLeave",
default: null,
})
typeLeaveId: string;
@Column({
nullable: true,
comment: "เหตุผล",
@ -270,6 +73,10 @@ export class ProfileLeave extends EntityBase {
@OneToMany(() => ProfileLeaveHistory, (profileLeaveHistory) => profileLeaveHistory.histories)
profileLeaves: ProfileLeaveHistory[];
@ManyToOne(() => LeaveType, (leaveType) => leaveType.profileLeave)
@JoinColumn({ name: "leaveTypeId" })
leaveType: LeaveType;
@ManyToOne(() => Profile, (profile) => profile.profileLeaves)
@JoinColumn({ name: "profileId" })
profile: Profile;
@ -277,71 +84,20 @@ export class ProfileLeave extends EntityBase {
export class CreateProfileLeave {
profileId: string | null;
isActive: boolean;
restCount: number | null;
restDay: number | null;
sickCount: number | null;
sickDay: number | null;
otherDay: number | null;
personalCount: number | null;
personalDay: number | null;
studyCount: number | null;
absentCount: number | null;
absentDay: number | null;
agencyCount: number | null;
agencyDay: number | null;
coupleCount: number | null;
coupleDay: number | null;
lateCount: number | null;
lateDay: number | null;
maternityCount: number | null;
maternityDay: number | null;
militaryCount: number | null;
militaryDay: number | null;
ordainCount: number | null;
ordainDay: number | null;
otherCount: number | null;
dateStartLeave: Date | null;
dateEndLeave: Date | null;
numLeave: number | null;
sumLeave: number | null;
leaveTypeId: string | null;
dateLeave: Date | null;
leaveDays: number | null;
leverCount: number | null;
totalLeave: number | null;
status: string | null;
typeLeaveId: string | null;
reason: string | null;
}
export type UpdateProfileLeave = {
isActive?: boolean;
restCount?: number | null;
restDay?: number | null;
sickCount?: number | null;
sickDay?: number | null;
otherDay?: number | null;
personalCount?: number | null;
personalDay?: number | null;
studyCount?: number | null;
absentCount?: number | null;
absentDay?: number | null;
agencyCount?: number | null;
agencyDay?: number | null;
coupleCount?: number | null;
coupleDay?: number | null;
lateCount?: number | null;
lateDay?: number | null;
maternityCount?: number | null;
maternityDay?: number | null;
militaryCount?: number | null;
militaryDay?: number | null;
ordainCount?: number | null;
ordainDay?: number | null;
otherCount?: number | null;
dateStartLeave?: Date | null;
dateEndLeave?: Date | null;
numLeave?: number | null;
sumLeave?: number | null;
dateLeave?: Date | null;
leaveDays?: number | null;
leverCount?: number | null;
totalLeave?: number | null;
status?: string | null;
typeLeaveId?: string | null;
reason?: string | null;
};