diff --git a/src/controllers/EvaluationController.ts b/src/controllers/EvaluationController.ts index 09a09bc..622060e 100644 --- a/src/controllers/EvaluationController.ts +++ b/src/controllers/EvaluationController.ts @@ -2630,22 +2630,13 @@ export class EvaluationController { if (!evaluation) { throw new HttpError(HttpStatusCode.NOT_FOUND, "not found."); } - // ดึง directors เดิมที่มีอยู่ - const existingDirectors = await this.evaluation_directors_directorRepository.find({ - where: { evaluationId: evaluation.id }, - }); - const existingDirectorIds = new Set(existingDirectors.map((d) => d.directorId)); - - // เพิ่ม directors ใหม่ที่ยังไม่มี - const newDirectors = []; - for (const directorId of body.directors) { - // ข้ามถ้ามีอยู่แล้ว - if (existingDirectorIds.has(directorId)) { - continue; - } + if (!evaluation.evaluation_directors_director) { + evaluation.evaluation_directors_director = []; + } + body.directors.forEach(async (directorId) => { const director = await this.directorRepository.findOne({ where: { id: directorId } }); if (director != null) { - newDirectors.push({ + await this.evaluation_directors_directorRepository.save({ directorId: director.id, evaluationId: evaluation.id, createdUserId: request.user.sub, @@ -2655,12 +2646,8 @@ export class EvaluationController { createdAt: new Date(), lastUpdatedAt: new Date(), }); - existingDirectorIds.add(director.id); // เพิ่มเพื่อป้องกันซ้ำใน batch เดียวกัน } - } - if (newDirectors.length > 0) { - await this.evaluation_directors_directorRepository.insert(newDirectors); - } + }); evaluation.lastUpdateUserId = request.user.sub; evaluation.lastUpdateFullName = request.user.name;