2024-04-03 00:55:40 +07:00
|
|
|
import { Entity, Column, ManyToOne, JoinColumn, OneToOne, OneToMany, Double } from "typeorm";
|
2024-04-02 17:53:45 +07:00
|
|
|
import { EntityBase } from "./base/Base";
|
2024-04-03 00:55:40 +07:00
|
|
|
import { Province } from "./Province";
|
|
|
|
|
import { ActualPeople, CreateActualPeople } from "./ActualPeople";
|
|
|
|
|
import { CreatePlannedPeople, PlannedPeople } from "./PlannedPeople";
|
|
|
|
|
import { ActualGoal, CreateActualGoal } from "./ActualGoal";
|
|
|
|
|
import { CreatePlannedGoal, PlannedGoal } from "./PlannedGoal";
|
|
|
|
|
import { DevelopmentHistory } from "./DevelopmentHistory";
|
2024-04-02 17:53:45 +07:00
|
|
|
|
|
|
|
|
@Entity("development")
|
|
|
|
|
export class Development extends EntityBase {
|
2024-04-03 00:55:40 +07:00
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ปีงบประมาณ",
|
|
|
|
|
})
|
|
|
|
|
year: number;
|
|
|
|
|
|
2024-04-02 17:53:45 +07:00
|
|
|
@Column({
|
|
|
|
|
comment: "ชื่อโครงการ/กิจกรรม/หลักสูตร",
|
|
|
|
|
length: 255,
|
|
|
|
|
})
|
2024-04-03 00:55:40 +07:00
|
|
|
projectName: string;
|
2024-04-02 17:53:45 +07:00
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
2024-04-03 00:55:40 +07:00
|
|
|
comment: "หลักการและเหตุผล",
|
|
|
|
|
default: null,
|
2024-04-02 17:53:45 +07:00
|
|
|
})
|
2024-04-03 00:55:40 +07:00
|
|
|
reason: string;
|
2024-04-02 17:53:45 +07:00
|
|
|
|
2024-04-03 00:55:40 +07:00
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "วัตถุประสงค์",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
objective: string;
|
2024-04-02 17:53:45 +07:00
|
|
|
|
2024-04-03 00:55:40 +07:00
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ประเภทตัวชี้วัด",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
metricType: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ตัวชี้วัด",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
indicators: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "เป้าหมาย",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
target: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "วิธีการคำนวณ/เครื่องมือ",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
calculation: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ระยะเวลาวัดผล",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
measuRement: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ผลการดำเนิน",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
results: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ปัญหาอุปสรรค",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
obstacles: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ข้อเสนอเเนะ",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
suggestions: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ประเภทโครงการ",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
project: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
comment: "ผ่านการพิจาณา ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ",
|
|
|
|
|
default: false,
|
|
|
|
|
})
|
|
|
|
|
isPassAllocate: boolean;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
comment:
|
|
|
|
|
"ผ่านการพิจารณา ไม่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
|
|
|
|
|
default: false,
|
|
|
|
|
})
|
|
|
|
|
isPassNoAllocate: boolean;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
comment: "ไม่ผ่านการพิจารณา แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
|
|
|
|
|
default: false,
|
|
|
|
|
})
|
|
|
|
|
isNoPass: boolean;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
comment: "แต่ได้รับการจัดสรรงบประมาณตามข้อบัญญัติ",
|
|
|
|
|
default: false,
|
|
|
|
|
})
|
|
|
|
|
isBudget: boolean;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
comment: "แต่ได้รับการจัดสรรเงินนอกงบประมาณ",
|
|
|
|
|
default: false,
|
|
|
|
|
})
|
|
|
|
|
isOutBudget: boolean;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
type: "datetime",
|
|
|
|
|
comment: "วันที่เริ่มต้น",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
dateStart: Date;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
type: "datetime",
|
|
|
|
|
comment: "วันที่สิ้นสุด",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
dateEnd: Date;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "รวมระยะเวลา (วัน)",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
totalDate: number;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ที่อยู่",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
address: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "จังหวัด",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
provinceId: string;
|
|
|
|
|
|
|
|
|
|
@ManyToOne(() => Province, (province: Province) => province.developments)
|
|
|
|
|
@JoinColumn({ name: "provinceId" })
|
|
|
|
|
province: Province;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ประเภทงบประมาณ",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
budget: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "จํานวนงบประมาณที่ขอรับการจัดสรรฯ",
|
|
|
|
|
default: 0,
|
|
|
|
|
type: "double",
|
|
|
|
|
})
|
|
|
|
|
accept: Double;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "จํานวนงบประมาณที่ได้รับการจัดสรรฯ",
|
|
|
|
|
default: 0,
|
|
|
|
|
type: "double",
|
|
|
|
|
})
|
|
|
|
|
receive: Double;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "จํานวนงบประมาณที่ได้รับอนุมัติ",
|
|
|
|
|
default: 0,
|
|
|
|
|
type: "double",
|
|
|
|
|
})
|
|
|
|
|
approved: Double;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "จํานวนงบประมาณที่จ่ายจริง",
|
|
|
|
|
default: 0,
|
|
|
|
|
type: "double",
|
|
|
|
|
})
|
|
|
|
|
budgetPay: Double;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ประเด็นความเสี่ยง",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
issues: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "โอกาสที่จะเกิด",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
chance: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ผลกระทบจากการเกิด",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
effects: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ระดับความเสี่ยง",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
riskLevel: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "เเนวทางการบริหารความเสี่ยง",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
riskManagement: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "ประโยชน์ที่คาดว่าจะได้รับ",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
expect: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "หัวข้อ/ประเด็นการฝึกอบรม ศึกษาดูงาน",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
topicAcademic: string;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "สถานที่ฝึกอบรม ศึกษาดูงาน",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
addressAcademic: string;
|
|
|
|
|
|
2024-04-03 16:14:00 +07:00
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
type: "datetime",
|
|
|
|
|
comment: "วันเริ่มต้นการศึกษาดูงาน",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
dateStudyStart: Date;
|
|
|
|
|
|
|
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
type: "datetime",
|
|
|
|
|
comment: "วันสิ้นสุดการศึกษาดูงาน",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
dateStudyEnd: Date;
|
|
|
|
|
|
2024-04-03 00:55:40 +07:00
|
|
|
@Column({
|
|
|
|
|
nullable: true,
|
|
|
|
|
comment: "จังหวัด(ข้อมูลวิชาการ)",
|
|
|
|
|
default: null,
|
|
|
|
|
})
|
|
|
|
|
provinceActualId: string;
|
|
|
|
|
|
|
|
|
|
@ManyToOne(() => Province, (province: Province) => province.developmentActuals)
|
|
|
|
|
@JoinColumn({ name: "provinceActualId" })
|
|
|
|
|
provinceActual: Province;
|
|
|
|
|
|
|
|
|
|
@OneToMany(
|
|
|
|
|
() => ActualPeople,
|
|
|
|
|
(actualPeople: ActualPeople) => actualPeople.developmentActualPeople,
|
|
|
|
|
)
|
|
|
|
|
developmentActualPeoples: ActualPeople[];
|
|
|
|
|
|
|
|
|
|
@OneToMany(
|
|
|
|
|
() => PlannedPeople,
|
|
|
|
|
(plannedPeople: PlannedPeople) => plannedPeople.developmentPlannedPeople,
|
|
|
|
|
)
|
|
|
|
|
developmentPlannedPeoples: PlannedPeople[];
|
2024-04-02 17:53:45 +07:00
|
|
|
|
2024-04-03 00:55:40 +07:00
|
|
|
@OneToMany(() => ActualGoal, (actualGoal: ActualGoal) => actualGoal.developmentActualGoal)
|
|
|
|
|
developmentActualGoals: ActualGoal[];
|
|
|
|
|
|
|
|
|
|
@OneToMany(() => PlannedGoal, (plannedGoal: PlannedGoal) => plannedGoal.developmentPlannedGoal)
|
|
|
|
|
developmentPlannedGoals: PlannedGoal[];
|
|
|
|
|
|
|
|
|
|
@OneToMany(
|
|
|
|
|
() => DevelopmentHistory,
|
|
|
|
|
(developmentHistory: DevelopmentHistory) => developmentHistory.development,
|
|
|
|
|
)
|
|
|
|
|
developmentHistorys: DevelopmentHistory[];
|
|
|
|
|
}
|
|
|
|
|
export class CreateDevelopment {
|
2024-04-02 17:53:45 +07:00
|
|
|
@Column()
|
|
|
|
|
year: number;
|
2024-04-03 00:55:40 +07:00
|
|
|
@Column()
|
|
|
|
|
projectName: string;
|
|
|
|
|
@Column()
|
|
|
|
|
reason: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
objective: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
metricType: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
indicators: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
target: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
calculation: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
measuRement: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
results: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
obstacles: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
suggestions: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
project: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
isPassAllocate: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isPassNoAllocate: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isNoPass: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isBudget: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isOutBudget: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
dateStart: Date | null;
|
|
|
|
|
@Column()
|
|
|
|
|
dateEnd: Date | null;
|
|
|
|
|
@Column()
|
|
|
|
|
totalDate: number | null;
|
|
|
|
|
@Column()
|
|
|
|
|
address: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
provinceId: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
budget: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
accept: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
receive: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
approved: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
budgetPay: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
issues: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
chance: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
effects: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
riskLevel: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
riskManagement: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
expect: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
topicAcademic: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
addressAcademic: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
provinceActualId: string | null;
|
|
|
|
|
@Column()
|
2024-04-03 16:33:17 +07:00
|
|
|
dateStudyStart?: Date | null;
|
2024-04-03 16:14:00 +07:00
|
|
|
@Column()
|
2024-04-03 16:33:17 +07:00
|
|
|
dateStudyEnd?: Date | null;
|
2024-04-03 16:14:00 +07:00
|
|
|
@Column()
|
2024-04-03 00:55:40 +07:00
|
|
|
actualPeoples: CreateActualPeople[];
|
|
|
|
|
@Column()
|
|
|
|
|
plannedPeoples: CreatePlannedPeople[];
|
|
|
|
|
@Column()
|
|
|
|
|
actualGoals: CreateActualGoal[];
|
|
|
|
|
@Column()
|
|
|
|
|
plannedGoals: CreatePlannedGoal[];
|
2024-04-02 17:53:45 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class UpdateDevelopment {
|
|
|
|
|
@Column()
|
|
|
|
|
year: number;
|
2024-04-03 00:55:40 +07:00
|
|
|
@Column()
|
|
|
|
|
projectName: string;
|
|
|
|
|
@Column()
|
|
|
|
|
reason: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
objective: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
metricType: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
indicators: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
target: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
calculation: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
measuRement: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
results: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
obstacles: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
suggestions: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
project: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
isPassAllocate: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isPassNoAllocate: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isNoPass: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isBudget: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
isOutBudget: boolean;
|
|
|
|
|
@Column()
|
|
|
|
|
dateStart: Date | null;
|
|
|
|
|
@Column()
|
|
|
|
|
dateEnd: Date | null;
|
|
|
|
|
@Column()
|
|
|
|
|
totalDate: number | null;
|
|
|
|
|
@Column()
|
|
|
|
|
address: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
provinceId: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
budget: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
accept: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
receive: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
approved: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
budgetPay: Double | null;
|
|
|
|
|
@Column()
|
|
|
|
|
issues: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
chance: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
effects: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
riskLevel: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
riskManagement: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
expect: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
topicAcademic: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
addressAcademic: string | null;
|
|
|
|
|
@Column()
|
|
|
|
|
provinceActualId: string | null;
|
|
|
|
|
@Column()
|
2024-04-03 16:33:17 +07:00
|
|
|
dateStudyStart?: Date | null;
|
2024-04-03 16:14:00 +07:00
|
|
|
@Column()
|
2024-04-03 16:33:17 +07:00
|
|
|
dateStudyEnd?: Date | null;
|
2024-04-03 16:14:00 +07:00
|
|
|
@Column()
|
2024-04-03 00:55:40 +07:00
|
|
|
actualPeoples: CreateActualPeople[];
|
|
|
|
|
@Column()
|
|
|
|
|
plannedPeoples: CreatePlannedPeople[];
|
|
|
|
|
@Column()
|
|
|
|
|
actualGoals: CreateActualGoal[];
|
|
|
|
|
@Column()
|
|
|
|
|
plannedGoals: CreatePlannedGoal[];
|
2024-04-02 17:53:45 +07:00
|
|
|
}
|