checkpoint

This commit is contained in:
AdisakKanthawilang 2024-03-12 17:33:22 +07:00
parent ae49719734
commit ce740ff327
3 changed files with 759 additions and 0 deletions

View file

@ -11,6 +11,7 @@ import { ProfileTraining } from "./ProfileTraining";
import { ProfileInsignia } from "./ProfileInsignia";
import { ProfileHonor } from "./ProfileHonor";
import { ProfileAssessment } from "./ProfileAssessment";
import { ProfileLeave } from "./ProfileLeave";
@Entity("profile")
export class Profile extends EntityBase {
@ -161,6 +162,9 @@ export class Profile extends EntityBase {
@OneToMany(() => ProfileAssessment, (profileAssessment) => profileAssessment.profile)
profileAssessments: ProfileAssessment[];
@OneToMany(() => ProfileLeave, (profileLeave) => profileLeave.profile)
profileLeaves: ProfileLeave[];
@ManyToOne(() => PosLevel, (posLevel) => posLevel.posLevels)
@JoinColumn({ name: "posLevelId" })
posLevel: PosLevel;

View file

@ -0,0 +1,379 @@
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileLeaveHistory } from "./ProfileLeaveHistory";
@Entity("profileLeave")
export class ProfileLeave extends EntityBase {
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Profile",
default: null,
})
profileId: string;
@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;
@OneToMany(() => ProfileLeaveHistory, (profileLeaveHistory) => profileLeaveHistory.histories)
profileLeaves: ProfileLeaveHistory[];
@ManyToOne(() => Profile, (profile) => profile.profileLeaves)
@JoinColumn({ name: "profileId" })
profile: Profile;
}
export class CreateProfileLeave {
@Column("uuid")
profileId: string | null;
@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;
}
export type UpdateProfileLeave = Partial<CreateProfileLeave>;

View file

@ -0,0 +1,376 @@
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>;