This commit is contained in:
AdisakKanthawilang 2024-07-25 17:06:42 +07:00
parent 4b34fc20b8
commit 1c9cb7ea78
11 changed files with 741 additions and 122 deletions

View file

@ -52,6 +52,8 @@ import CallAPI from "../interfaces/call-api";
import { UseInterceptors } from "@nestjs/common";
import { FileInterceptor } from "@nestjs/platform-express";
import * as xlsx from "xlsx";
import { addLogSequence, setLogDataDiff } from "../interfaces/utils";
import { RequestWithUser } from "../middlewares/user";
@Route("api/v1/development/main")
@Tags("Development")
@ -91,7 +93,7 @@ export class DevelopmentController extends Controller {
@Post()
async CreateDevelopment(
@Body() requestBody: CreateDevelopment,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
const chk_name = await this.developmentRepository.find({
where: {
@ -141,8 +143,12 @@ export class DevelopmentController extends Controller {
development.createdFullName = request.user.name;
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store Development.",
});
await this.developmentRepository.save(development, { data: request });
return new HttpSuccess(development.id);
}
@ -157,8 +163,13 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmentTab1(
@Path() id: string,
@Body() requestBody: UpdateDevelopment1,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
@ -182,6 +193,7 @@ export class DevelopmentController extends Controller {
" มีอยู่ในระบบแล้ว",
);
}
const before = structuredClone(development);
Object.assign(development, requestBody);
await new CallAPI()
.PostData(request, "/org/find/all", {
@ -255,7 +267,13 @@ export class DevelopmentController extends Controller {
default:
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรม");
}
await this.developmentRepository.save(development);
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);
}
@ -270,8 +288,13 @@ export class DevelopmentController extends Controller {
async CreateDevelopmenttab2_1(
@Path() id: string,
@Body() requestBody: CreatePlannedGoal,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
@ -284,7 +307,12 @@ export class DevelopmentController extends Controller {
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentPlannedGoalId = development.id;
await this.plannedGoalRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store Development.",
});
await this.plannedGoalRepository.save(data, { data: request });
await Promise.all(
requestBody.positions.map(async (x) => {
@ -305,12 +333,19 @@ export class DevelopmentController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับตำแหน่ง");
}
}
const before = structuredClone(development);
_data.createdUserId = request.user.sub;
_data.createdFullName = request.user.name;
_data.lastUpdateUserId = request.user.sub;
_data.lastUpdateFullName = request.user.name;
_data.plannedGoalId = data.id;
await this.plannedGoalPositionRepository.save(_data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store Development.",
});
await this.plannedGoalPositionRepository.save(_data, { data: request });
setLogDataDiff(request, { before, after: development });
}),
);
return new HttpSuccess(data.id);
@ -327,21 +362,33 @@ export class DevelopmentController extends Controller {
async CreateDevelopmenttab2_2(
@Path() id: string,
@Body() requestBody: CreatePlannedPeople,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
const before = structuredClone(development);
const data = Object.assign(new PlannedPeople(), requestBody);
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentPlannedPeopleId = development.id;
await this.plannedPeopleRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store Development.",
});
await this.plannedPeopleRepository.save(data, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(data.id);
}
@ -356,8 +403,13 @@ export class DevelopmentController extends Controller {
async CreateDevelopmenttab2_3(
@Path() id: string,
@Body() requestBody: CreateActualGoal,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
@ -365,6 +417,11 @@ export class DevelopmentController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
if (requestBody.posTypeActualId != null) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Position Type.",
// });
const checkId = await this.posTypeRepository.findOne({
where: { id: requestBody.posTypeActualId },
});
@ -373,6 +430,11 @@ export class DevelopmentController extends Controller {
}
}
if (requestBody.posLevelActualId != null) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Position Level.",
// });
const checkId = await this.posLevelRepository.findOne({
where: { id: requestBody.posLevelActualId },
});
@ -380,13 +442,20 @@ export class DevelopmentController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับตำแหน่ง");
}
}
const before = structuredClone(development);
const data = Object.assign(new ActualGoal(), requestBody);
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentActualGoalId = development.id;
await this.actualGoalRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store ActualGoal.",
});
await this.actualGoalRepository.save(data, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(data.id);
}
@ -401,21 +470,33 @@ export class DevelopmentController extends Controller {
async CreateDevelopmenttab2_4(
@Path() id: string,
@Body() requestBody: CreateActualPeople,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
const before = structuredClone(development);
const data = Object.assign(new ActualPeople(), requestBody);
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentActualPeopleId = development.id;
await this.actualPeopleRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store ActualPeople.",
});
await this.actualPeopleRepository.save(data, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(data.id);
}
@ -430,8 +511,13 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmenttab2_1(
@Path() id: string,
@Body() requestBody: CreatePlannedGoal,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.plannedGoalRepository.findOne({
where: { id },
relations: {
@ -441,13 +527,25 @@ export class DevelopmentController extends Controller {
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
await this.plannedGoalPositionRepository.remove(development.plannedGoalPositions);
const before = structuredClone(development);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in the field on the PlannedGoalPosition.",
});
await this.plannedGoalPositionRepository.remove(development.plannedGoalPositions, {
data: request,
});
Object.assign(development, { ...requestBody, positions: [] });
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.plannedGoalRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store PlannedGoal.",
});
await this.plannedGoalRepository.save(development, { data: request });
setLogDataDiff(request, { before, after: development });
if (requestBody.positions != null) {
await Promise.all(
requestBody.positions.map(async (x) => {
@ -473,7 +571,16 @@ export class DevelopmentController extends Controller {
_data.lastUpdateUserId = request.user.sub;
_data.lastUpdateFullName = request.user.name;
_data.plannedGoalId = development.id;
await this.plannedGoalPositionRepository.save(_data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store Planned Goal Position.",
});
await this.plannedGoalPositionRepository.save(_data, {
data: {
request: request,
},
});
}),
);
}
@ -491,18 +598,30 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmenttab2_2(
@Path() id: string,
@Body() requestBody: CreatePlannedPeople,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.plannedPeopleRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
const before = structuredClone(development);
Object.assign(development, requestBody);
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.plannedPeopleRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store PlannedPeople.",
});
await this.plannedPeopleRepository.save(development, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(development.id);
}
@ -517,8 +636,13 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmenttab2_3(
@Path() id: string,
@Body() requestBody: CreateActualGoal,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.actualGoalRepository.findOne({
where: { id },
});
@ -526,6 +650,11 @@ export class DevelopmentController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
if (requestBody.posTypeActualId != null) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Position Type.",
// });
const checkId = await this.posTypeRepository.findOne({
where: { id: requestBody.posTypeActualId },
});
@ -534,6 +663,11 @@ export class DevelopmentController extends Controller {
}
}
if (requestBody.posLevelActualId != null) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Position Level.",
// });
const checkId = await this.posLevelRepository.findOne({
where: { id: requestBody.posLevelActualId },
});
@ -541,10 +675,17 @@ export class DevelopmentController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับตำแหน่ง");
}
}
const before = structuredClone(development);
Object.assign(development, requestBody);
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.actualGoalRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store ActualGoal.",
});
await this.actualGoalRepository.save(development, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(development.id);
}
@ -559,18 +700,30 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmenttab2_4(
@Path() id: string,
@Body() requestBody: CreateActualPeople,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.actualPeopleRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
const before = structuredClone(development);
Object.assign(development, requestBody);
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.actualPeopleRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store ActualPeople.",
});
await this.actualPeopleRepository.save(development, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(development.id);
}
@ -582,7 +735,12 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Delete("tab2_1/{id}")
async DeleteDevelopmenttab2_1(@Path() id: string) {
async DeleteDevelopmenttab2_1(@Path() id: string, @Request() request: RequestWithUser) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.plannedGoalRepository.findOne({
where: { id },
});
@ -592,8 +750,18 @@ export class DevelopmentController extends Controller {
const _development = await this.plannedGoalPositionRepository.find({
where: { plannedGoalId: id },
});
await this.plannedGoalPositionRepository.remove(_development);
await this.plannedGoalRepository.remove(development);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in PlannedGoalPosition.",
});
await this.plannedGoalPositionRepository.remove(_development, { data: request });
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in PlannedGoal.",
});
await this.plannedGoalRepository.remove(development, { data: request });
return new HttpSuccess(development.id);
}
@ -605,14 +773,24 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Delete("tab2_2/{id}")
async DeleteDevelopmenttab2_2(@Path() id: string) {
async DeleteDevelopmenttab2_2(@Path() id: string, @Request() request: RequestWithUser) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.plannedPeopleRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้เกี่ยวข้องเป้าหมายตามแผน");
}
await this.plannedPeopleRepository.remove(development);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in PlannedPeople.",
});
await this.plannedPeopleRepository.remove(development, { data: request });
return new HttpSuccess(development.id);
}
@ -624,14 +802,24 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Delete("tab2_3/{id}")
async DeleteDevelopmenttab2_3(@Path() id: string) {
async DeleteDevelopmenttab2_3(@Path() id: string, @Request() request: RequestWithUser) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.actualGoalRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลกลุ่มเป้าหมายตามจริง");
}
await this.actualGoalRepository.remove(development);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in ActualGoal.",
});
await this.actualGoalRepository.remove(development, { data: request });
return new HttpSuccess(development.id);
}
@ -643,14 +831,24 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Delete("tab2_4/{id}")
async DeleteDevelopmenttab2_4(@Path() id: string) {
async DeleteDevelopmenttab2_4(@Path() id: string, @Request() request: RequestWithUser) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.actualPeopleRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้เกี่ยวข้องเป้าหมายตามจริง");
}
await this.actualPeopleRepository.remove(development);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in ActualPeople.",
});
await this.actualPeopleRepository.remove(development, { data: request });
return new HttpSuccess(development.id);
}
@ -665,8 +863,13 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmentTab3(
@Path() id: string,
@Body() requestBody: UpdateDevelopment3,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
relations: {
@ -686,13 +889,35 @@ export class DevelopmentController extends Controller {
});
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentProjectTypeRepository.remove(development.developmentProjectTypes);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in DevelopmentProjectType.",
});
await this.developmentProjectTypeRepository.remove(development.developmentProjectTypes, {
data: request,
});
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in DevelopmentProjectTechniquePlanned.",
});
await this.developmentProjectTechniquePlannedRepository.remove(
development.developmentProjectTechniquePlanneds,
{
data: request,
}
);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove data in DevelopmentProjectTechniqueActual.",
});
await this.developmentProjectTechniqueActualRepository.remove(
development.developmentProjectTechniqueActuals,
{
data: request,
}
);
const _null: any = null;
if (
@ -905,7 +1130,12 @@ export class DevelopmentController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลยุทธศาสตร์เป้าหมายตามจริง");
}
}
await this.developmentRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store Development.",
});
await this.developmentRepository.save(development, { data: request });
if (requestBody.developmentProjectTypes != null) {
await Promise.all(
requestBody.developmentProjectTypes.map(async (x) => {
@ -916,7 +1146,12 @@ export class DevelopmentController extends Controller {
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentId = development.id;
await this.developmentProjectTypeRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentProjectType.",
});
await this.developmentProjectTypeRepository.save(data, { data: request });
}),
);
}
@ -930,7 +1165,12 @@ export class DevelopmentController extends Controller {
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentId = development.id;
await this.developmentProjectTechniquePlannedRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentProjectTechniquePlanned.",
});
await this.developmentProjectTechniquePlannedRepository.save(data, { data: request });
}),
);
}
@ -944,7 +1184,12 @@ export class DevelopmentController extends Controller {
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentId = development.id;
await this.developmentProjectTechniqueActualRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentProjectTechniqueActual.",
});
await this.developmentProjectTechniqueActualRepository.save(data, { data: request });
}),
);
}
@ -962,18 +1207,30 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmentTab4(
@Path() id: string,
@Body() requestBody: UpdateDevelopment4,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
const before = structuredClone(development);
Object.assign(development, requestBody);
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentRepository.save(development);
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);
}
@ -988,21 +1245,33 @@ export class DevelopmentController extends Controller {
async CreateDevelopmenttab4_1(
@Path() id: string,
@Body() requestBody: CreateDevelopmentEvaluation,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development.",
// });
const development = await this.developmentRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้");
}
const before = structuredClone(development);
const data = Object.assign(new DevelopmentEvaluation(), requestBody);
data.createdUserId = request.user.sub;
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
data.developmentId = development.id;
await this.developmentEvaluationRepository.save(data);
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);
}
@ -1014,14 +1283,24 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Delete("tab4_1/{id}")
async DeleteDevelopmenttab4_1(@Path() id: string) {
async DeleteDevelopmenttab4_1(@Path() id: string, @Request() request: RequestWithUser) {
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Get Development Evaluation By ID.",
// });
const development = await this.developmentEvaluationRepository.findOne({
where: { id },
});
if (!development) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้เกี่ยวข้องเป้าหมายตามแผน");
}
await this.developmentEvaluationRepository.remove(development);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove Development Evaluation By ID.",
});
await this.developmentEvaluationRepository.remove(development, { data: request });
return new HttpSuccess(development.id);
}
@ -1036,7 +1315,7 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmenttab4_1(
@Path() id: string,
@Body() requestBody: CreateDevelopmentEvaluation,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
const development = await this.developmentEvaluationRepository.findOne({
where: { id },
@ -1047,7 +1326,7 @@ export class DevelopmentController extends Controller {
Object.assign(development, requestBody);
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentEvaluationRepository.save(development);
await this.developmentEvaluationRepository.save(development, { data: request });
return new HttpSuccess(development.id);
}
@ -1062,7 +1341,7 @@ export class DevelopmentController extends Controller {
async UpdateDevelopmentTab5(
@Path() id: string,
@Body() requestBody: UpdateDevelopment5,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
const development = await this.developmentRepository.findOne({
where: { id },
@ -1083,9 +1362,20 @@ export class DevelopmentController extends Controller {
Object.assign(development, { ...requestBody, developmentAddresss: [] });
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentRepository.save(development);
await this.developmentAddresssRepository.remove(development.developmentAddresss);
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,
});
await Promise.all(
requestBody.developmentAddresss.map(async (x) => {
const data = Object.assign(new DevelopmentAddress(), x);
@ -1100,7 +1390,12 @@ export class DevelopmentController extends Controller {
data.createdFullName = request.user.name;
data.lastUpdateUserId = request.user.sub;
data.lastUpdateFullName = request.user.name;
await this.developmentAddresssRepository.save(data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentAddresss.",
});
await this.developmentAddresssRepository.save(data, { data: request });
}),
);
@ -1163,7 +1458,7 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Delete("{id}")
async DeleteDevelopment(@Path() id: string) {
async DeleteDevelopment(@Path() id: string , @Request () request: RequestWithUser) {
const development = await this.developmentRepository.findOne({
where: { id },
relations: {
@ -1189,22 +1484,93 @@ export class DevelopmentController extends Controller {
const plannedGoalPosition = await this.plannedGoalPositionRepository.find({
where: { plannedGoalId: In(development.developmentPlannedGoals.map((x) => x.id)) },
});
await this.plannedGoalPositionRepository.remove(plannedGoalPosition);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove PlannedGoalPosition.",
});
await this.plannedGoalPositionRepository.remove(plannedGoalPosition, { data: request });
}
await this.actualPeopleRepository.remove(development.developmentActualPeoples);
await this.plannedPeopleRepository.remove(development.developmentPlannedPeoples);
await this.actualGoalRepository.remove(development.developmentActualGoals);
await this.plannedGoalRepository.remove(development.developmentPlannedGoals);
await this.developmentProjectTypeRepository.remove(development.developmentProjectTypes);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove ActualPeople.",
});
await this.actualPeopleRepository.remove(development.developmentActualPeoples, {
data: request,
});
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove PlannedPeople.",
});
await this.plannedPeopleRepository.remove(development.developmentPlannedPeoples, {
data: request,
});
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove ActualGoal.",
});
await this.actualGoalRepository.remove(development.developmentActualGoals, { data: request });
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove PlannedGoal.",
});
await this.plannedGoalRepository.remove(development.developmentPlannedGoals, { data: request });
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove DevelopmentProjectType.",
});
await this.developmentProjectTypeRepository.remove(development.developmentProjectTypes, {
data: request,
});
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove DevelopmentProjectTechniquePlanned.",
});
await this.developmentProjectTechniquePlannedRepository.remove(
development.developmentProjectTechniquePlanneds,
{
data: request,
},
);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove DevelopmentProjectTechniqueActuals.",
});
await this.developmentProjectTechniqueActualRepository.remove(
development.developmentProjectTechniqueActuals,
{
data: request,
},
);
await this.developmentEvaluationRepository.remove(development.developmentEvaluations);
await this.developmentAddresssRepository.remove(development.developmentAddresss);
await this.developmentRepository.remove(development);
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove DevelopmentEvaluation.",
});
await this.developmentEvaluationRepository.remove(development.developmentEvaluations, {
data: request,
});
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove DevelopmentAddresss.",
});
await this.developmentAddresssRepository.remove(development.developmentAddresss, {
data: request,
});
addLogSequence(request, {
action: "remove",
status: "success",
description: "Remove Development.",
});
await this.developmentRepository.remove(development, { data: request });
return new HttpSuccess();
}
@ -1278,10 +1644,7 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Get("finish/{id}")
async FinishDevelopemtById(
@Path() id: string,
@Request() request: { user: Record<string, any> },
) {
async FinishDevelopemtById(@Path() id: string, @Request() request: RequestWithUser) {
const getDevelopment = await this.developmentRepository.findOne({
where: { id: id },
});
@ -1291,7 +1654,12 @@ export class DevelopmentController extends Controller {
getDevelopment.status = "FINISH";
getDevelopment.lastUpdateUserId = request.user.sub;
getDevelopment.lastUpdateFullName = request.user.name;
await this.developmentRepository.save(getDevelopment);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store Development.",
});
await this.developmentRepository.save(getDevelopment, { data: request });
return new HttpSuccess(getDevelopment);
}
@ -1662,10 +2030,7 @@ export class DevelopmentController extends Controller {
* @param {string} id Id
*/
@Get("tab6/done/{id}")
async GetDevelopemtTab6DoneById(
@Path() id: string,
@Request() request: { user: Record<string, any> },
) {
async GetDevelopemtTab6DoneById(@Path() id: string, @Request() request: RequestWithUser) {
const getDevelopment = await this.developmentHistoryRepository.find({
where: { developmentId: id, isDone: false },
relations: ["development"],
@ -1721,7 +2086,12 @@ export class DevelopmentController extends Controller {
_data.lastUpdateUserId = request.user.sub;
_data.lastUpdateFullName = request.user.name;
await this.developmentHistoryRepository.save(_data);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentHistory.",
});
await this.developmentHistoryRepository.save(_data, { data: request });
}),
);
return new HttpSuccess(getDevelopment);
@ -1734,7 +2104,7 @@ export class DevelopmentController extends Controller {
*
*/
@Get("org/root")
async GetOrgDevelopemt(@Request() request: { user: Record<string, any> }) {
async GetOrgDevelopemt() {
const getOrg = await this.developmentRepository
.createQueryBuilder("development")
.select("development.root")
@ -1759,7 +2129,7 @@ export class DevelopmentController extends Controller {
async UploadUserDevelopemtById(
@Path() id: string,
@UploadedFile() file: Express.Multer.File,
@Request() request: { user: Record<string, any> },
@Request() request: RequestWithUser,
) {
const getDevelopment = await this.developmentRepository.findOne({
where: { id: id },
@ -1801,7 +2171,12 @@ export class DevelopmentController extends Controller {
oldProfile.createdFullName = request.user.name;
oldProfile.lastUpdateUserId = request.user.sub;
oldProfile.lastUpdateFullName = request.user.name;
await this.developmentHistoryRepository.save(oldProfile);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentHistory.",
});
await this.developmentHistoryRepository.save(oldProfile, { data: request });
return;
}
if (item["ประเภท"] == undefined) return;
@ -1833,7 +2208,12 @@ export class DevelopmentController extends Controller {
development.createdFullName = request.user.name;
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentHistoryRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentHistory.",
});
await this.developmentHistoryRepository.save(development, { data: request });
})
.catch((x) => {
return;
@ -1866,7 +2246,12 @@ export class DevelopmentController extends Controller {
development.createdFullName = request.user.name;
development.lastUpdateUserId = request.user.sub;
development.lastUpdateFullName = request.user.name;
await this.developmentHistoryRepository.save(development);
addLogSequence(request, {
action: "database",
status: "success",
description: "Store DevelopmentHistory.",
});
await this.developmentHistoryRepository.save(development, { data: request });
})
.catch((x) => {
return;