diff --git a/src/controllers/EvaluationController.ts b/src/controllers/EvaluationController.ts index 5312d3e..d4015e9 100644 --- a/src/controllers/EvaluationController.ts +++ b/src/controllers/EvaluationController.ts @@ -33,6 +33,7 @@ import permission from "../interfaces/permission"; import { RequestWithUser } from "../middlewares/user"; import { setLogDataDiff } from "../interfaces/utils"; import Extension from "../interfaces/extension"; +import { Portfolio } from "../entities/Portfolio"; @Route("api/v1/evaluation") @Tags("evaluation") @@ -50,6 +51,7 @@ export class EvaluationController { private salaryRepository = AppDataSource.getRepository(Salary); private trainingRepository = AppDataSource.getRepository(Training); private assessmentRepository = AppDataSource.getRepository(Assessment); + private portfolioRepository = AppDataSource.getRepository(Portfolio); private directorRepository = AppDataSource.getRepository(Director); private meetingRepository = AppDataSource.getRepository(Meeting); @@ -640,20 +642,21 @@ export class EvaluationController { }); //Portfolio - // if (requestBody.portfolios != null) - // requestBody.portfolios.forEach(async (pfo) => { - // const portfolio = new Portfolio(); - // portfolio.createdUserId = request.user.sub; - // portfolio.createdFullName = request.user.name; - // portfolio.createdAt = new Date(); - // portfolio.lastUpdateUserId = request.user.sub; - // portfolio.lastUpdateFullName = request.user.name; - // portfolio.lastUpdatedAt = new Date(); - // portfolio.name = pfo.name ?? _null; - // portfolio.detail = pfo.detail ?? _null; - // await this.assessmentRepository.save(assessment, { data: request }); - // setLogDataDiff(request, { before, after: assessment }); - // }); + if (requestBody.portfolios != null) + requestBody.portfolios.forEach(async (pfo) => { + const portfolio = new Portfolio(); + portfolio.createdUserId = request.user.sub; + portfolio.createdFullName = request.user.name; + portfolio.createdAt = new Date(); + portfolio.lastUpdateUserId = request.user.sub; + portfolio.lastUpdateFullName = request.user.name; + portfolio.lastUpdatedAt = new Date(); + portfolio.name = pfo.name ?? _null; + portfolio.detail = pfo.detail ?? _null; + portfolio.evaluation = evaluation; + await this.portfolioRepository.save(portfolio, { data: request }); + setLogDataDiff(request, { before, after: portfolio }); + }); //EvaluationLogs const evaluationLogs = new EvaluationLogs(); @@ -948,6 +951,7 @@ export class EvaluationController { .leftJoin("evaluation.salaries", "salaries") .leftJoin("evaluation.training", "training") .leftJoin("evaluation.assessment", "assessment") + .leftJoin("evaluation.portfolios", "portfolios") .where("evaluation.id = :id", { id }) .select([ "evaluation.isEducationalQft", @@ -1048,10 +1052,13 @@ export class EvaluationController { "assessment.point2", "assessment.pointSumTotal", "assessment.pointSum", + + "portfolios.name", + "portfolios.detail", ]) .orderBy("salaries.commandDateAffect", "DESC") .getOne(); - + console.log(evaluation); if (!evaluation) { return "ไม่พบข้อมูล"; } @@ -1159,10 +1166,10 @@ export class EvaluationController { pointSumTotal: assessment.pointSumTotal, pointSum: assessment.pointSum, })), - // portfolios: evaluation.portfolio.map((portfolio) => ({ - // name: portfolio.name, - // detail: portfolio.detail, - // })), + portfolios: evaluation.portfolios.map((portfolio) => ({ + name: portfolio.name, + detail: portfolio.detail, + })), // years: years }; diff --git a/src/entities/Evaluation.ts b/src/entities/Evaluation.ts index 5c5ab84..a4b5201 100644 --- a/src/entities/Evaluation.ts +++ b/src/entities/Evaluation.ts @@ -269,6 +269,9 @@ export class Evaluation extends EntityBase { @OneToMany(() => Assessment, (assessment) => assessment.evaluation) assessment: Assessment[]; + @OneToMany(() => Portfolio, (portfolio) => portfolio.evaluation) + portfolios: Portfolio[]; + @ManyToMany(() => Director, (director) => director.evaluations) @JoinTable() directors: Director[]; @@ -277,9 +280,7 @@ export class Evaluation extends EntityBase { @JoinTable() meetings: Meeting[]; - @ManyToMany(() => Portfolio, (portfolio) => portfolio.evaluations) - @JoinTable() - portfolios: Portfolio[]; + } export class CreateEvaluation { diff --git a/src/entities/Portfolio.ts b/src/entities/Portfolio.ts index 3814e57..9865ddf 100644 --- a/src/entities/Portfolio.ts +++ b/src/entities/Portfolio.ts @@ -28,7 +28,7 @@ export class Portfolio extends EntityBase { @ManyToOne(() => Evaluation, (Evaluation) => Evaluation.portfolios) @JoinColumn({ name: "evaluationId" }) - evaluations: Evaluation; + evaluation: Evaluation; } export type UpdatePortfolio = Partial;