package pt.utl.ist.scripts.runOnce; import net.sourceforge.fenixedu.domain.Enrolment; import net.sourceforge.fenixedu.domain.ExecutionSemester; import net.sourceforge.fenixedu.domain.ExecutionYear; import net.sourceforge.fenixedu.domain.curriculum.EnrollmentCondition; import net.sourceforge.fenixedu.domain.student.Registration; import net.sourceforge.fenixedu.domain.student.RegistrationAgreement; import pt.utl.ist.scripts.commons.AtomicScript; public class FindImpossibleEnrolments extends AtomicScript { @Override protected void run() throws Exception { int impossibleCount = 0; int erasmus = 0; final ExecutionYear executionYear = ExecutionYear.readCurrentExecutionYear(); for (final ExecutionSemester executionSemester : executionYear.getExecutionPeriodsSet()) { for (final Enrolment enrolment : executionSemester.getEnrolmentsSet()) { if (enrolment.isImpossible()) { impossibleCount++; final Registration registration = enrolment.getRegistration(); final RegistrationAgreement registrationAgreement = registration.getRegistrationAgreement(); final String description = registrationAgreement.getDescription(); System.out.println(description); if (registrationAgreement == RegistrationAgreement.ERASMUS) { erasmus++; enrolment.setEnrolmentCondition(EnrollmentCondition.VALIDATED); } } } } System.out.println("Impossible count: " + impossibleCount); System.out.println("Erasmus count: " + erasmus); System.out.println("Done."); } public static void main(String[] args) { processWriteTransaction(new FindImpossibleEnrolments()); System.exit(0); } }