use of fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature in project esup-ecandidat by EsupPortail.
the class CandidatureController method getInformationsCandidature.
/**
* @param candidature
* @return une liste de données perso à afficher
*/
public List<SimpleTablePresentation> getInformationsCandidature(final Candidature candidature, final Boolean isCandidatOfCandidature) {
final List<SimpleTablePresentation> liste = new ArrayList<>();
final Formation formation = candidature.getFormation();
final TypeDecisionCandidature typeDecision = getLastTypeDecisionCandidature(candidature);
liste.add(new SimpleTablePresentation("candidature." + Candidature_.formation.getName() + "." + Formation_.libForm.getName(), applicationContext.getMessage("candidature." + Candidature_.formation.getName() + "." + Formation_.libForm.getName(), null, UI.getCurrent().getLocale()), formation.getLibForm()));
final SimpleTablePresentation stpStatutDossier = new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_LIB_STATUT, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_LIB_STATUT, null, UI.getCurrent().getLocale()), i18nController.getI18nTraduction(candidature.getTypeStatut().getI18nLibTypStatut()));
stpStatutDossier.setShortValue(candidature.getTypeStatut().getCodTypStatut());
liste.add(stpStatutDossier);
/* gestionnaire-->On affiche le type de traitement */
if (!isCandidatOfCandidature) {
String libTypTraitement = i18nController.getI18nTraduction(candidature.getTypeTraitement().getI18nLibTypTrait());
if (candidature.getTemValidTypTraitCand()) {
libTypTraitement = libTypTraitement + " (" + applicationContext.getMessage("valide", null, UI.getCurrent().getLocale()) + ")";
} else {
libTypTraitement = libTypTraitement + " (" + applicationContext.getMessage("non.valide", null, UI.getCurrent().getLocale()) + ")";
}
liste.add((new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_LIB_TYPE_TRAITEMENT, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_LIB_TYPE_TRAITEMENT, null, UI.getCurrent().getLocale()), libTypTraitement)));
}
String libTypDecision = getLibLastTypeDecisionCandidature(typeDecision, isCandidatOfCandidature);
String commentaire = null;
String codeTypeDecision = NomenclatureUtils.TYP_AVIS_ATTENTE;
/* La decision n'est pas null et le candidat est candidiat avec un avis validé */
if (typeDecision != null && (!isCandidatOfCandidature || (isCandidatOfCandidature && typeDecision.getTemValidTypeDecCand()))) {
if (typeDecision.getTemValidTypeDecCand()) {
if (!isCandidatOfCandidature) {
libTypDecision = libTypDecision + " (" + applicationContext.getMessage("valide.date", new Object[] { typeDecision.getDatValidTypeDecCand() != null ? formatterDate.format(typeDecision.getDatValidTypeDecCand()) : "" }, UI.getCurrent().getLocale()) + ")";
}
if (candidature.getTemAcceptCand() != null && candidature.getTemAcceptCand()) {
libTypDecision = libTypDecision + " : " + applicationContext.getMessage("candidature.confirm.label", null, UI.getCurrent().getLocale());
} else if (candidature.getTemAcceptCand() != null && !candidature.getTemAcceptCand()) {
libTypDecision = libTypDecision + " : " + applicationContext.getMessage("candidature.desist.label", null, UI.getCurrent().getLocale());
}
} else {
libTypDecision = libTypDecision + " (" + applicationContext.getMessage("non.valide", null, UI.getCurrent().getLocale()) + ")";
}
if (typeDecision.getTypeDecision().getTypeAvis().equals(tableRefController.getTypeAvisPreselect())) {
libTypDecision = libTypDecision + "<br>" + ctrCandCandidatureController.getComplementPreselectMail(typeDecision);
}
codeTypeDecision = typeDecision.getTypeDecision().getTypeAvis().getCodTypAvis();
if (!isCandidatOfCandidature || typeDecision.getTypeDecision().getTemAffCommentTypDec()) {
commentaire = typeDecision.getCommentTypeDecCand();
}
}
final SimpleTablePresentation stpDecision = new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_LIB_LAST_DECISION, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_LIB_LAST_DECISION, null, UI.getCurrent().getLocale()), libTypDecision);
stpDecision.setShortValue(codeTypeDecision);
liste.add(stpDecision);
/* Ajout de l'info de confirmation pour les gestionnaires */
if (!isCandidatOfCandidature) {
if (candidature.getTemAcceptCand() != null && candidature.getDatAcceptCand() != null && candidature.getUserAcceptCand() != null) {
final Object[] params = new Object[] { formatterDateTime.format(candidature.getDatAcceptCand()), candidature.getUserAcceptCand() };
String code = "candidature." + ConstanteUtils.CANDIDATURE_LIB_DESIST;
if (candidature.getTemAcceptCand()) {
code = "candidature." + ConstanteUtils.CANDIDATURE_LIB_CONFIRM;
}
liste.add((new SimpleTablePresentation(code, applicationContext.getMessage(code, null, UI.getCurrent().getLocale()), applicationContext.getMessage(code + ".val", params, UI.getCurrent().getLocale()))));
}
}
/* On ajoute le commentaire lié à l'avis à la suite */
if (commentaire != null && !commentaire.equals("")) {
liste.add(new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_COMMENTAIRE, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_COMMENTAIRE, null, UI.getCurrent().getLocale()), commentaire));
}
/* gestionnaire-->On affiche le numéro OPI */
if (!isCandidatOfCandidature) {
String opi = applicationContext.getMessage("candidature.no.opi", null, UI.getCurrent().getLocale());
if (candidature.getOpi() != null && candidature.getOpi().getDatPassageOpi() != null) {
if (candidature.getOpi().getCodOpi() != null) {
opi = candidature.getOpi().getCodOpi();
} else {
opi = parametreController.getPrefixeOPI() + candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
}
opi = applicationContext.getMessage("candidature.valOpi", new Object[] { opi, formatterDateTime.format(candidature.getOpi().getDatPassageOpi()) }, UI.getCurrent().getLocale());
}
liste.add(new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_OPI, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_OPI, null, UI.getCurrent().getLocale()), opi));
/* Exoneration */
if (candidature.getSiScolCatExoExt() != null) {
liste.add(new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_EXO, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_EXO, null, UI.getCurrent().getLocale()), candidature.getSiScolCatExoExt().getDisplayLibelle()));
}
/* Complément Exoneration */
if (candidature.getCompExoExtCand() != null) {
liste.add(new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_COMP_EXO, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_COMP_EXO, null, UI.getCurrent().getLocale()), candidature.getCompExoExtCand()));
}
} else {
if (candidature.getOpi() != null && candidature.getOpi().getDatPassageOpi() != null && candidature.getOpi().getCodOpi() != null) {
liste.add(new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_ID_INS, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_ID_INS, null, UI.getCurrent().getLocale()), candidature.getOpi().getCodOpi()));
}
}
/* Si montant on l'affiche */
if (candidature.getMntChargeCand() != null) {
liste.add(new SimpleTablePresentation("candidature." + ConstanteUtils.CANDIDATURE_MNT, applicationContext.getMessage("candidature." + ConstanteUtils.CANDIDATURE_MNT, null, UI.getCurrent().getLocale()), MethodUtils.parseBigDecimalAsString(candidature.getMntChargeCand()) + "€"));
}
return liste;
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature in project esup-ecandidat by EsupPortail.
the class CandidatureCtrCandController method saveTypeDecisionCandidature.
/**
* Enregistre un type de decision pour une candidature
* @param candidature
* @param typeDecision
* @return le TypeDecision appliqué
*/
public TypeDecisionCandidature saveTypeDecisionCandidature(final Candidature candidature, final TypeDecision typeDecision, final Boolean valid, final String user, final String codAction) {
final TypeDecisionCandidature typeDecisionCandidature = new TypeDecisionCandidature(candidature, typeDecision);
typeDecisionCandidature.setTemValidTypeDecCand(valid);
typeDecisionCandidature.setUserCreTypeDecCand(user);
typeDecisionCandidature.setTemAppelTypeDecCand(false);
if (valid) {
typeDecisionCandidature.setDatValidTypeDecCand(LocalDateTime.now());
typeDecisionCandidature.setUserValidTypeDecCand(user);
}
return typeDecisionCandidatureRepository.save(typeDecisionCandidature);
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature in project esup-ecandidat by EsupPortail.
the class CandidatureGestionController method calculRangReel.
/**
* Recalcul le rang reel des avis en LC
* @param liste
* @return la liste des TypeDecisionCandidature
*/
public List<TypeDecisionCandidature> calculRangReel(final List<TypeDecisionCandidature> liste) {
final List<TypeDecisionCandidature> listeTypDecRangReel = new ArrayList<>();
int i = 1;
for (final TypeDecisionCandidature td : liste) {
if (td.getListCompRangReelTypDecCand() == null || !td.getListCompRangReelTypDecCand().equals(i)) {
td.setListCompRangReelTypDecCand(i);
final TypeDecisionCandidature tdSave = typeDecisionCandidatureRepository.save(td);
listeTypDecRangReel.add(tdSave);
Candidature candidature = td.getCandidature();
candidature.setUserModCand(ConstanteUtils.AUTO_LISTE_COMP);
candidature.setDatModCand(LocalDateTime.now());
candidature = candidatureRepository.save(candidature);
logger.debug("Recalcul du rang pour " + td);
}
i++;
}
return listeTypDecRangReel;
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature in project esup-ecandidat by EsupPortail.
the class CandidatureGestionController method candidatFirstCandidatureListComp.
/**
* Si un candidat rejette une candidature, le premier de la liste comp est pris
* @param formation
*/
public void candidatFirstCandidatureListComp(Formation formation) {
formation = formationRepository.findOne(formation.getIdForm());
final Campagne camp = campagneController.getCampagneActive();
if (formation == null || !formation.getTemListCompForm() || formation.getTypeDecisionFavListComp() == null || camp == null) {
return;
}
final List<TypeDecisionCandidature> listTypDecLc = findTypDecLc(formation, camp);
final Optional<TypeDecisionCandidature> optTypDec = listTypDecLc.stream().findFirst();
if (optTypDec.isPresent()) {
final TypeDecisionCandidature td = optTypDec.get();
Candidature candidature = td.getCandidature();
logger.debug("Traitement liste comp. : " + candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin());
ctrCandCandidatureController.saveTypeDecisionCandidature(candidature, formation.getTypeDecisionFavListComp(), true, ConstanteUtils.AUTO_LISTE_COMP, ConstanteUtils.TYP_DEC_CAND_ACTION_LC);
// on la recharge
candidature = candidatureController.loadCandidature(candidature.getIdCand());
/* On affecte une nouvelle date de confirmation si besoin */
final LocalDate newDateConfirm = candidatureController.getDateConfirmCandidat(formation.getDatConfirmListCompForm(), formation.getDelaiConfirmListCompForm(), null, candidatureController.getLastTypeDecisionCandidature(candidature));
if (newDateConfirm != null) {
candidature.setDatNewConfirmCand(newDateConfirm);
}
candidature.setUserModCand(ConstanteUtils.AUTO_LISTE_COMP);
candidature.setDatModCand(LocalDateTime.now());
candidature.setTemAcceptCand(null);
candidature = candidatureRepository.save(candidature);
/* On recupere le dernier avis */
candidature.setLastTypeDecision(candidatureController.getLastTypeDecisionCandidature(candidature));
PdfAttachement attachement = null;
final InputStream is = candidatureController.downloadLettre(candidature, ConstanteUtils.TYP_LETTRE_MAIL, candidature.getCandidat().getLangue().getCodLangue(), false);
if (is != null) {
try {
attachement = new PdfAttachement(is, candidatureController.getNomFichierLettre(candidature, ConstanteUtils.TYP_LETTRE_MAIL, candidature.getCandidat().getLangue().getCodLangue()));
} catch (final Exception e) {
attachement = null;
}
}
mailController.sendMail(candidature.getCandidat().getCompteMinima().getMailPersoCptMin(), formation.getTypeDecisionFavListComp().getMail(), null, candidature, candidature.getCandidat().getLangue().getCodLangue(), attachement);
/* envoi du mail à la commission */
if (candidature.getFormation().getCommission().getTemAlertListePrincComm()) {
mailController.sendMailByCod(candidature.getFormation().getCommission().getMailAlertComm(), NomenclatureUtils.MAIL_COMMISSION_ALERT_LISTE_PRINC, null, candidature, null);
}
/* On retire l'element ayant eu un avis favorable */
listTypDecLc.remove(td);
/* On recalcul les rang */
if (parametreController.isCalculRangReelLc()) {
calculRangReel(listTypDecLc);
}
}
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature in project esup-ecandidat by EsupPortail.
the class CandidatureGestionController method calculRangLcAllFormation.
/**
* @param batchHisto
*/
public void calculRangLcAllFormation(final BatchHisto batchHisto) {
final Campagne camp = campagneController.getCampagneActive();
if (camp == null) {
return;
}
final List<Formation> listForm = formationRepository.findByTesFormAndTemListCompForm(true, true);
batchController.addDescription(batchHisto, "Lancement batch de recalcul des rangs LC pour " + listForm.size() + " formations");
final int[] cpt = { 0 };
listForm.forEach(formation -> {
final List<TypeDecisionCandidature> listeTdc = findTypDecLc(formation, camp);
final int size = listeTdc.size();
cpt[0] = cpt[0] + size;
batchController.addDescription(batchHisto, "Batch calcul rang : formation '" + formation.getCodForm() + "', " + size + " décisions à recalculer");
calculRangReel(listeTdc);
});
batchController.addDescription(batchHisto, "Fin batch de recalcul des rangs LC, recalcul terminé pour " + cpt[0] + " décisions");
}
Aggregations