package pt.utl.ist.scripts.runOnce.candidacy; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sourceforge.fenixedu.domain.candidacyProcess.CandidacyProcess; import net.sourceforge.fenixedu.domain.candidacyProcess.IndividualCandidacyProcess; import net.sourceforge.fenixedu.domain.candidacyProcess.degreeChange.DegreeChangeCandidacyProcess; import net.sourceforge.fenixedu.domain.candidacyProcess.degreeTransfer.DegreeTransferCandidacyProcess; import net.sourceforge.fenixedu.domain.candidacyProcess.graduatedPerson.DegreeCandidacyForGraduatedPersonProcess; import net.sourceforge.fenixedu.domain.candidacyProcess.secondCycle.SecondCycleCandidacyProcess; import org.joda.time.DateTime; import pt.utl.ist.scripts.commons.AtomicScript; public class GetEmailsFromIncompleteCandidacies extends AtomicScript { private static final Map, String> pathForCandidacy = new HashMap, String>(); static { pathForCandidacy.put(SecondCycleCandidacyProcess.class, "http://fenix.ist.utl.pt/candidaturas/mestrado/acesso?hash="); pathForCandidacy.put(DegreeChangeCandidacyProcess.class, "http://fenix.ist.utl.pt/candidaturas/lic/mudanca_curso/acesso?hash="); pathForCandidacy.put(DegreeTransferCandidacyProcess.class, "http://fenix.ist.utl.pt/candidaturas/lic/transferencia/acesso?hash="); pathForCandidacy.put(DegreeCandidacyForGraduatedPersonProcess.class, "http://fenix.ist.utl.pt/candidaturas/lic/cursos_medios_superiores/acesso?hash="); } @Override protected void run() throws Exception { List emailList = new ArrayList(); // fillFaultApplicationsEmails(CandidacyProcess.getCandidacyProcessByDate(SecondCycleCandidacyProcess.class, // new DateTime( // 2009, 8, 15, 0, 0, 0, 0)), emailList); fillFaultApplicationsEmails(CandidacyProcess.getCandidacyProcessByDate(DegreeChangeCandidacyProcess.class, new DateTime( 2009, 8, 15, 0, 0, 0, 0)), emailList); fillFaultApplicationsEmails(CandidacyProcess.getCandidacyProcessByDate(DegreeTransferCandidacyProcess.class, new DateTime(2009, 8, 15, 0, 0, 0, 0)), emailList); // fillFaultApplicationsEmails(CandidacyProcess.getCandidacyProcessByDate(DegreeCandidacyForGraduatedPersonProcess.class, // new DateTime(2009, 8, 15, 0, 0, 0, 0)), emailList); System.out.println("Emails a enviar: "); for (String email : emailList) { System.out.print(email + ","); } } private void fillFaultApplicationsEmails(CandidacyProcess candidacyProcess, List emailList) { for (IndividualCandidacyProcess individualProcess : candidacyProcess.getChildProcesses()) { // if (!individualProcess.isCandidacyCancelled() && // !individualProcess.getAllRequiredFilesUploaded()) { if (!individualProcess.isCandidacyCancelled()) { if (individualProcess.getCandidacyHashCode() == null) { // System.out.println("É NULL: " + // individualProcess.getPersonalDetails().getName()); continue; } System.out.println(String.format( "Candidato com o nº de processo: %s, Nome: %s, Acesso: %s tem documentos em falta", individualProcess.getProcessCode(), individualProcess.getPersonalDetails().getName(), getCandidacyAccess(individualProcess))); emailList.add(individualProcess.getCandidacyHashCode().getEmail()); } } } private String getCandidacyAccess(IndividualCandidacyProcess individualCandidacyProcess) { return pathForCandidacy.get(individualCandidacyProcess.getCandidacyProcess().getClass()) + individualCandidacyProcess.getCandidacyHashCode().getValue(); } public static void main(String[] args) { process(new GetEmailsFromIncompleteCandidacies()); } }