183 lines
4.5 KiB
TypeScript
183 lines
4.5 KiB
TypeScript
import { Entity, Column, JoinColumn, ManyToOne, OneToMany } from "typeorm";
|
|
import { EntityBase } from "./base/Base";
|
|
import { CommandType } from "./CommandType";
|
|
import { CommandSend } from "./CommandSend";
|
|
import { CommandSalary } from "./CommandSalary";
|
|
import { CommandRecive } from "./CommandRecive";
|
|
import { ProfileSalary } from "./ProfileSalary";
|
|
import { ProfileSalaryHistory } from "./ProfileSalaryHistory";
|
|
import { CommandSign } from "./CommandSign";
|
|
import { ProfileSalaryTemp } from "./ProfileSalaryTemp";
|
|
|
|
@Entity("command")
|
|
export class Command extends EntityBase {
|
|
// NEW = ใหม่
|
|
// DRAFT = แบบร่าง
|
|
// PENDING = รอผู้มีอำนาจ
|
|
// WAITING = รอออกคำสั่ง
|
|
// REPORTED = ออกคำสั่งเสร็จสิ้น
|
|
// CANCEL = ยกเลิก
|
|
@Column({
|
|
nullable: true,
|
|
comment: "สถานะ",
|
|
length: 20,
|
|
default: null,
|
|
})
|
|
status: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คำสั่งเรื่อง",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
issue: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "เลขที่คำสั่ง",
|
|
length: 255,
|
|
default: null,
|
|
})
|
|
commandNo: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ปี",
|
|
default: null,
|
|
})
|
|
commandYear: number;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
type: "datetime",
|
|
comment: "วันที่ลงนาม",
|
|
default: null,
|
|
})
|
|
commandAffectDate: Date;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
type: "datetime",
|
|
comment: "วันที่คำสั่งมีผล",
|
|
default: null,
|
|
})
|
|
commandExcecuteDate: Date;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "เนื้อหาคำสั่งส่วนต้น",
|
|
type: "text",
|
|
default: null,
|
|
})
|
|
detailHeader: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "เนื้อหาคำสั่งส่วนกลาง",
|
|
type: "text",
|
|
default: null,
|
|
})
|
|
detailBody: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "เนื้อหาคำสั่งส่วนท้าย",
|
|
type: "text",
|
|
default: null,
|
|
})
|
|
detailFooter: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "ตำแหน่ง",
|
|
type: "text",
|
|
default: null,
|
|
})
|
|
positionDetail: string;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
comment: "คำสั่งกรุงเทพมหานคร",
|
|
length: 20,
|
|
default: null,
|
|
})
|
|
isBangkok: string;
|
|
|
|
@Column({
|
|
comment: "สถานะบัญชีแนบท้าย",
|
|
default: true,
|
|
})
|
|
isAttachment: boolean;
|
|
|
|
@Column({
|
|
comment: "อัปโหลดบัญชีแนบท้าย",
|
|
default: true,
|
|
})
|
|
isUploadAttachment: boolean;
|
|
|
|
@Column({
|
|
comment: "ออกคำสั่งแบบ Digital Signature",
|
|
default: null,
|
|
})
|
|
isSignature: boolean;
|
|
|
|
@Column({
|
|
comment: "ยืนยันทำแบบร่าง",
|
|
default: false,
|
|
})
|
|
isDraft: boolean;
|
|
|
|
@Column({
|
|
comment: "ผู้มีอำนาจลงนาม",
|
|
default: false,
|
|
})
|
|
isSign: boolean;
|
|
|
|
@Column({
|
|
length: 40,
|
|
comment: "คีย์นอก(FK)ของตาราง commandType",
|
|
})
|
|
commandTypeId: string;
|
|
|
|
@ManyToOne(() => CommandType, (commandType) => commandType.commands)
|
|
@JoinColumn({ name: "commandTypeId" })
|
|
commandType: CommandType;
|
|
|
|
@Column({
|
|
nullable: true,
|
|
length: 40,
|
|
comment: "คีย์นอก(FK)ของตาราง commandSalary",
|
|
default: null,
|
|
})
|
|
commandSalaryId: string;
|
|
|
|
@ManyToOne(() => CommandSalary, (commandSalary) => commandSalary.commands)
|
|
@JoinColumn({ name: "commandSalaryId" })
|
|
commandSalary: CommandSalary;
|
|
|
|
@OneToMany(() => CommandSend, (commandSend) => commandSend.command)
|
|
commandSends: CommandSend[];
|
|
|
|
@OneToMany(() => CommandSign, (commandSign) => commandSign.command)
|
|
commandSigns: CommandSign[];
|
|
|
|
@OneToMany(() => CommandRecive, (commandRecive) => commandRecive.command)
|
|
commandRecives: CommandRecive[];
|
|
|
|
@OneToMany(() => ProfileSalary, (profileSalary) => profileSalary.command)
|
|
profileSalarys: ProfileSalary[];
|
|
|
|
@OneToMany(() => ProfileSalaryTemp, (profileSalaryTemp) => profileSalaryTemp.command)
|
|
profileSalaryTemps: ProfileSalaryTemp[];
|
|
|
|
@OneToMany(() => ProfileSalaryHistory, (profileSalaryHistory) => profileSalaryHistory.command)
|
|
profileSalaryHistorys: ProfileSalaryHistory[];
|
|
}
|
|
|
|
export class CreateCommand {
|
|
@Column()
|
|
name: string;
|
|
}
|
|
|
|
// export type UpdateCommand = Partial<CreateCommand>;
|