tenantContext->getCurrentTenantId(); $evaluationId = $event->evaluationId; // Charger l'évaluation (encore accessible même en DELETED) $evaluation = $this->evaluationRepository->findById($evaluationId, $tenantId); if ($evaluation === null) { return; } // Supprimer les stats de l'évaluation $this->evaluationStatisticsRepository->delete($evaluationId); // Si les notes étaient publiées, recalculer les moyennes des élèves affectés if ($evaluation->gradesPublishedAt === null) { return; } $period = $this->periodFinder->findForDate($evaluation->evaluationDate, $tenantId); if ($period === null) { return; } $grades = $this->gradeRepository->findByEvaluation($evaluationId, $tenantId); $studentIds = []; foreach ($grades as $g) { $studentIds[(string) $g->studentId] = $g->studentId; } // Recalculer : l'évaluation DELETED sera exclue par findWithPublishedGrades... foreach ($studentIds as $studentId) { $this->service->recalculerMoyenneEleve( $studentId, $evaluation->subjectId, $evaluation->classId, $period, $tenantId, ); } } }