update function tab

This commit is contained in:
AdisakKanthawilang 2024-08-07 14:03:40 +07:00
parent 4c0c02cc8b
commit 78fb5b5c0a
3 changed files with 177 additions and 77 deletions

View file

@ -25,6 +25,8 @@ import {
UpdateDevelopment3,
UpdateDevelopment4,
UpdateDevelopment5,
UpdateDevelopment7,
UpdateDevelopment8,
} from "../entities/Development";
import { ActualPeople, CreateActualPeople } from "../entities/ActualPeople";
import { CreatePlannedPeople, PlannedPeople } from "../entities/PlannedPeople";
@ -1200,6 +1202,31 @@ export class DevelopmentController extends Controller {
}),
);
}
//move from tab5
await this.developmentAddresssRepository.remove(development.developmentAddresss, {
data: request,
});
const before = structuredClone(development);
await Promise.all(
requestBody.developmentAddresss.map(async (x) => {
const data = Object.assign(new DevelopmentAddress(), x);
const chkProvince = await this.provinceRepository.findOne({
where: {
id: x.provinceId,
},
});
if (chkProvince == null) return;
data.developmentId = development.id;
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
await this.developmentAddresssRepository.save(data, { data: request });
setLogDataDiff(request, { before, after: development });
}),
);
Object.assign(development, { ...requestBody, developmentAddresss: [] });
//End
return new HttpSuccess(development.id);
}
@ -1216,11 +1243,6 @@ export class DevelopmentController extends Controller {
@Body() requestBody: UpdateDevelopment4,
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
@ -1231,11 +1253,6 @@ export class DevelopmentController extends Controller {
Object.assign(development, requestBody);
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Store Development.",
// });
await this.developmentRepository.save(development, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(development.id);
@ -1254,11 +1271,6 @@ export class DevelopmentController extends Controller {
@Body() requestBody: CreateDevelopmentEvaluation,
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
@ -1272,11 +1284,6 @@ export class DevelopmentController extends Controller {
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentId = development.id;
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Store DevelopmentEvaluation.",
// });
await this.developmentEvaluationRepository.save(data, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(data.id);
@ -1370,49 +1377,64 @@ export class DevelopmentController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลจังหวัดข้อมูลด้านวิชาการ");
}
}
Object.assign(development, { ...requestBody, developmentAddresss: [] });
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Store Development.",
// });
await this.developmentRepository.save(development, { data: request });
// addLogSequence(request, {
// action: "remove",
// status: "success",
// description: "Remove DevelopmentAddresss.",
// });
await this.developmentAddresssRepository.remove(development.developmentAddresss, {
data: request,
});
const before = structuredClone(development);
await Promise.all(
requestBody.developmentAddresss.map(async (x) => {
const data = Object.assign(new DevelopmentAddress(), x);
const chkProvince = await this.provinceRepository.findOne({
where: {
id: x.provinceId,
},
});
if (chkProvince == null) return;
data.developmentId = development.id;
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Store DevelopmentAddresss.",
// });
await this.developmentAddresssRepository.save(data, { data: request });
setLogDataDiff(request, { before, after: development });
}),
);
return new HttpSuccess(development.id);
}
/**
* API / tab7
*
* @summary DEV_00 - / tab7 #
*
* @param {string} id Id
*/
@Put("tab7/{id}")
async UpdateDevelopmentTab7(
@Path() id: string,
@Body() requestBody: UpdateDevelopment7,
@Request() request: RequestWithUser,
) {
const development = await this.developmentRepository.findOne({
where: { id },
relations: { developmentAddresss: true },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
Object.assign(development, { ...requestBody });
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentRepository.save(development, { data: request });
return new HttpSuccess(development.id);
}
/**
* API / tab8
*
* @summary DEV_00 - / tab8 #
*
* @param {string} id Id
*/
@Put("tab8/{id}")
async UpdateDevelopmentTab8(
@Path() id: string,
@Body() requestBody: UpdateDevelopment8,
@Request() request: RequestWithUser,
) {
const development = await this.developmentRepository.findOne({
where: { id },
relations: { developmentAddresss: true },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
Object.assign(development, { ...requestBody });
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentRepository.save(development, { data: request });
return new HttpSuccess(development.id);
}

View file

@ -652,6 +652,38 @@ export class Development extends EntityBase {
@ManyToOne(() => StrategyChild5, (strategyChild5) => strategyChild5.developmentActuals)
@JoinColumn({ name: "strategyChild5ActualId" })
strategyChild5Actual: StrategyChild5;
@Column({
type: "longtext",
nullable: true,
comment: "การติดตามความก้าวหน้า",
default: null,
})
progressTracking: string;
@Column({
type: "longtext",
nullable: true,
comment: "การประเมินผลโครงการ",
default: null,
})
projectEvaluation: string;
@Column({
type: "longtext",
nullable: true,
comment: "ปัญหาอุปสรรค",
default: null,
})
obstacle: string;
@Column({
type: "longtext",
nullable: true,
comment: "ข้อเสนอแนะ",
default: null,
})
suggestion: string;
}
export class CreateDevelopment {
@Column()
@ -695,6 +727,16 @@ export class UpdateDevelopment2_2 {
plannedPeoples: CreatePlannedPeople[];
}
export class UpdateDevelopment3 {
//move from tab5
@Column()
dateStart: Date | null;
@Column()
dateEnd: Date | null;
@Column()
totalDate: number | null;
//end
@Column()
developmentAddresss: CreateDevelopmentAddress[];
@Column()
developmentProjectTypes?: string[];
@Column()
@ -749,6 +791,22 @@ export class UpdateDevelopment3 {
export class UpdateDevelopment4 {
// @Column()
// developmentEvaluations: CreateDevelopmentEvaluation[];
//new
@Column()
progressTracking: string | null;
@Column()
projectEvaluation: string | null;
//end
}
export class UpdateDevelopment5 {
//new
@Column()
obstacle: string | null;
@Column()
suggestion: string | null;
//end
//move from tab4
@Column()
project: string | null;
@Column()
@ -761,16 +819,21 @@ export class UpdateDevelopment4 {
isBudget: boolean;
@Column()
isOutBudget: boolean;
//end
@Column()
budgetPay: Double | null;
@Column()
expect: string | null;
@Column()
topicAcademic: string | null;
@Column()
addressAcademic: string | null;
@Column()
provinceActualId: string | null;
}
export class UpdateDevelopment5 {
@Column()
dateStart: Date | null;
@Column()
dateEnd: Date | null;
@Column()
totalDate: number | null;
@Column()
developmentAddresss: CreateDevelopmentAddress[];
export class UpdateDevelopment7 {
//move from tab5
@Column()
budget: string | null;
@Column()
@ -781,8 +844,10 @@ export class UpdateDevelopment5 {
receive: Double | null;
@Column()
approved: Double | null;
@Column()
budgetPay: Double | null;
//end
}
export class UpdateDevelopment8 {
//move from tab5
@Column()
issues: string | null;
@Column()
@ -793,12 +858,5 @@ export class UpdateDevelopment5 {
riskLevel: string | null;
@Column()
riskManagement: string | null;
@Column()
expect: string | null;
@Column()
topicAcademic: string | null;
@Column()
addressAcademic: string | null;
@Column()
provinceActualId: string | null;
//end
}

View file

@ -0,0 +1,20 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableMigration080720241723013963408 implements MigrationInterface {
name = 'UpdateTableMigration080720241723013963408'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` ADD \`progressTracking\` longtext NULL COMMENT 'การติดตามความก้าวหน้า'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`projectEvaluation\` longtext NULL COMMENT 'การประเมินผลโครงการ'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`obstacle\` longtext NULL COMMENT 'ปัญหาอุปสรรค'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`suggestion\` longtext NULL COMMENT 'ข้อเสนอแนะ'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`suggestion\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`obstacle\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`projectEvaluation\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`progressTracking\``);
}
}