package pt.utl.ist.scripts.runOnce.degreeStructure; import java.util.HashMap; import java.util.Map; import net.sourceforge.fenixedu.domain.CompetenceCourse; import net.sourceforge.fenixedu.domain.Degree; import net.sourceforge.fenixedu.domain.ExecutionYear; import net.sourceforge.fenixedu.domain.degreeStructure.EctsConversionTable; import net.sourceforge.fenixedu.domain.degreeStructure.EctsTableIndex; import net.sourceforge.fenixedu.domain.organizationalStructure.Unit; import net.sourceforge.fenixedu.domain.time.calendarStructure.AcademicInterval; import org.joda.time.LocalDate; import pt.ist.bennu.core.domain.Bennu; import pt.utl.ist.scripts.commons.AtomicScript; public class CreateEctsTableIndexes extends AtomicScript { public static void main(String[] args) { processWriteTransaction(new CreateEctsTableIndexes()); System.exit(0); } @Override protected void run() throws Exception { Map indexes = new HashMap(); ExecutionYear y0607 = ExecutionYear.readExecutionYearByName("2006/2007"); ExecutionYear y0708 = ExecutionYear.readExecutionYearByName("2007/2008"); ExecutionYear y0809 = ExecutionYear.readExecutionYearByName("2008/2009"); ExecutionYear y0910 = ExecutionYear.readExecutionYearByName("2009/2010"); ExecutionYear y1011 = ExecutionYear.readExecutionYearByName("2010/2011"); ExecutionYear[] years = new ExecutionYear[] { y0607, y0708, y0809, y0910, y1011 }; for (ExecutionYear year : years) { EctsTableIndex index = new EctsTableIndex(year.getAcademicInterval()); index.setProcessingDate(new LocalDate(index.getYear().getStart().getYear() + 1, 1, 31).toDateTimeAtStartOfDay()); indexes.put(year.getAcademicInterval(), index); } for (CompetenceCourse cc : Bennu.getInstance().getCompetenceCoursesSet()) { for (EctsConversionTable table : cc.getEctsConversionTablesSet()) { table.setIndex(indexes.get(table.getYear())); } } for (Degree degree : Bennu.getInstance().getDegreesSet()) { for (EctsConversionTable table : degree.getEctsCourseConversionTablesSet()) { table.setIndex(indexes.get(table.getYear())); } for (EctsConversionTable table : degree.getEctsGraduationGradeConversionTablesSet()) { table.setIndex(indexes.get(table.getYear())); } } Unit ist = Bennu.getInstance().getInstitutionUnit(); for (EctsConversionTable table : ist.getEctsCourseConversionTablesSet()) { table.setIndex(indexes.get(table.getYear())); } for (EctsConversionTable table : ist.getEctsGraduationGradeConversionTablesSet()) { table.setIndex(indexes.get(table.getYear())); } } }