Search in sources :

Example 1 with Candidat

use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.

the class UserController method connectOther.

/**
 * Connect un membre de commission ou centre cand
 * @param  username
 *                      le username
 * @return          le user connecte
 */
private SecurityUser connectOther(final String username) {
    if (loadBalancingController.isLoadBalancingCandidatMode()) {
        return null;
    }
    List<GrantedAuthority> authoritiesListe = new ArrayList<>();
    final List<DroitProfilInd> listeDroitProfilInd = new ArrayList<>();
    final Individu ind = individuController.getIndividu(username);
    final PreferenceInd pref = (ind != null ? ind.getPreferenceInd() : null);
    if (ind != null) {
        // On recherche les profils autorisé (ctrCand ou commission pour
        // l'utilisateur suivant son login --> On ajoute à la liste
        listeDroitProfilInd.addAll(droitProfilController.searchDroitByLogin(username));
        /* Création de la liste d'autorities */
        SecurityCentreCandidature ctrCand = null;
        SecurityCommission commission = null;
        /* On place la commission favorite si elle existe en tete */
        if (pref != null && pref.getIdCommPref() != null) {
            final Optional<DroitProfilInd> optComm = listeDroitProfilInd.stream().filter(droit -> droit.getCommissionMembre() != null && droit.getCommissionMembre().getCommission() != null && pref.getIdCommPref().equals(droit.getCommissionMembre().getCommission().getIdComm())).findFirst();
            if (optComm.isPresent()) {
                Collections.swap(listeDroitProfilInd, 0, listeDroitProfilInd.indexOf(optComm.get()));
            }
        }
        /* On place le centre de candidature favorit si il existe en tete */
        if (pref != null && pref.getIdCtrCandPref() != null) {
            final Optional<DroitProfilInd> optCtrCand = listeDroitProfilInd.stream().filter(droit -> droit.getGestionnaire() != null && droit.getGestionnaire().getCentreCandidature() != null && pref.getIdCtrCandPref().equals(droit.getGestionnaire().getCentreCandidature().getIdCtrCand())).findFirst();
            if (optCtrCand.isPresent()) {
                Collections.swap(listeDroitProfilInd, 0, listeDroitProfilInd.indexOf(optCtrCand.get()));
            }
        }
        /* On parcourt la liste */
        for (final DroitProfilInd droitProfilInd : listeDroitProfilInd) {
            String codeRole = null;
            if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCandidat()) {
                codeRole = ConstanteUtils.ROLE_GESTION_CANDIDAT;
            } else if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCandidatLS()) {
                codeRole = ConstanteUtils.ROLE_GESTION_CANDIDAT_LS;
            } else if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCtrCand()) {
                codeRole = ConstanteUtils.ROLE_CENTRE_CANDIDATURE;
                final Gestionnaire gestionnaire = droitProfilInd.getGestionnaire();
                if (ctrCand == null && gestionnaire != null && gestionnaire.getCentreCandidature() != null && gestionnaire.getCentreCandidature().getTesCtrCand()) {
                    final List<Integer> listComm = new ArrayList<>();
                    gestionnaire.getCommissions().forEach(e -> listComm.add(e.getIdComm()));
                    ctrCand = new SecurityCentreCandidature(droitProfilInd.getGestionnaire().getCentreCandidature(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), individuController.getCodCgeForGestionnaire(gestionnaire, username), false, gestionnaire.getTemAllCommGest(), listComm);
                }
            } else if (droitProfilInd.getDroitProfil().isDroitProfilCommission()) {
                codeRole = ConstanteUtils.ROLE_COMMISSION;
                final CommissionMembre membre = droitProfilInd.getCommissionMembre();
                if (commission == null && membre != null && membre.getCommission() != null && membre.getCommission().getTesComm() && membre.getCommission().getCentreCandidature().getTesCtrCand()) {
                    commission = new SecurityCommission(droitProfilInd.getCommissionMembre().getCommission(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), false);
                }
            }
            if (codeRole != null) {
                final SimpleGrantedAuthority sga = new SimpleGrantedAuthority(codeRole);
                if (!authoritiesListe.contains(sga)) {
                    authoritiesListe.add(sga);
                }
            }
        }
        // gestion des gestionnaires de candidat
        authoritiesListe = traiteDroitGestionnaireCandidat(authoritiesListe, ctrCand, commission);
        // on verifie qu'il y a bien des droits!
        if (authoritiesListe.size() > 0) {
            return new SecurityUserGestionnaire(username, getDisplayNameFromLdap(username), authoritiesListe, ctrCand, commission, pref);
        }
    }
    return null;
}
Also used : UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) UserDetailsService(org.springframework.security.core.userdetails.UserDetailsService) UI(com.vaadin.ui.UI) HttpSessionSecurityContextRepository(org.springframework.security.web.context.HttpSessionSecurityContextRepository) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) MethodInvocation(org.aopalliance.intercept.MethodInvocation) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire) CustomException(fr.univlorraine.ecandidat.utils.CustomException) SecurityCommission(fr.univlorraine.ecandidat.services.security.SecurityCommission) CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) Page(com.vaadin.server.Page) PreferenceInd(fr.univlorraine.ecandidat.entities.ecandidat.PreferenceInd) SecurityContextHolder(org.springframework.security.core.context.SecurityContextHolder) PasswordHashService(fr.univlorraine.ecandidat.services.security.PasswordHashService) ConfigAttribute(org.springframework.security.access.ConfigAttribute) Droit(fr.univlorraine.ecandidat.services.security.SecurityFonc.Droit) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Predicate(java.util.function.Predicate) SecurityCtrCandFonc(fr.univlorraine.ecandidat.services.security.SecurityCtrCandFonc) Collection(java.util.Collection) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) Resource(javax.annotation.Resource) MethodSecurityInterceptor(org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor) SecurityUser(fr.univlorraine.ecandidat.services.security.SecurityUser) GrantedAuthority(org.springframework.security.core.GrantedAuthority) List(java.util.List) Type(com.vaadin.ui.Notification.Type) DroitProfilFonc(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilFonc) SecurityContext(org.springframework.security.core.context.SecurityContext) Optional(java.util.Optional) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) UsernamePasswordAuthenticationToken(org.springframework.security.authentication.UsernamePasswordAuthenticationToken) Authentication(org.springframework.security.core.Authentication) View(com.vaadin.navigator.View) MainUI(fr.univlorraine.ecandidat.MainUI) MethodInvocationUtils(org.springframework.security.util.MethodInvocationUtils) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) ArrayList(java.util.ArrayList) Value(org.springframework.beans.factory.annotation.Value) PeopleLdap(fr.univlorraine.ecandidat.services.ldap.PeopleLdap) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Notification(com.vaadin.ui.Notification) UserDetails(org.springframework.security.core.userdetails.UserDetails) SwitchUserFilter(org.springframework.security.web.authentication.switchuser.SwitchUserFilter) SecurityAuthenticationProvider(fr.univlorraine.ecandidat.services.security.SecurityAuthenticationProvider) AccessDeniedException(org.springframework.security.access.AccessDeniedException) ApplicationContext(org.springframework.context.ApplicationContext) SecurityUserCandidat(fr.univlorraine.ecandidat.services.security.SecurityUserCandidat) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) InsufficientAuthenticationException(org.springframework.security.authentication.InsufficientAuthenticationException) Component(org.springframework.stereotype.Component) SecurityCommissionFonc(fr.univlorraine.ecandidat.services.security.SecurityCommissionFonc) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) Collections(java.util.Collections) Assert(org.springframework.util.Assert) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) GrantedAuthority(org.springframework.security.core.GrantedAuthority) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) ArrayList(java.util.ArrayList) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) SecurityCommission(fr.univlorraine.ecandidat.services.security.SecurityCommission) PreferenceInd(fr.univlorraine.ecandidat.entities.ecandidat.PreferenceInd) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire)

Example 2 with Candidat

use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.

the class CandidatController method editCandidat.

/**
 * Edition d'un candidat
 * @param cptMin
 */
public void editCandidat(final CompteMinima cptMin, final InfoPersoListener listener) {
    /* Verrou --> normalement le lock est géré en amont mais on vérifie qd même */
    final String lockError = getLockError(cptMin, ConstanteUtils.LOCK_INFOS_PERSO);
    if (lockError != null) {
        Notification.show(lockError, Type.ERROR_MESSAGE);
        return;
    }
    Candidat candidat = cptMin.getCandidat();
    if (candidat == null) {
        candidat = new Candidat(cptMin, cacheController.getLangueDefault());
    }
    final CandidatInfoPersoWindow window = new CandidatInfoPersoWindow(candidat);
    window.addCandidatWindowListener((cand, individuApogee, needToDeleteDataApogee) -> {
        if (isLockedForImportApo(cand.getCompteMinima())) {
            return;
        }
        Boolean langueChanged = false;
        if (userController.isCandidat()) {
            langueChanged = i18nController.changeLangue(cand.getLangue());
        }
        if (individuApogee != null && individuApogee.getAdresse() != null) {
            final Adresse adresse = getAdresseByApogeeData(individuApogee.getAdresse());
            final Adresse lastAdresse = cand.getAdresse();
            if (lastAdresse != null) {
                adresse.setIdAdr(lastAdresse.getIdAdr());
            }
            cand.setAdresse(adresse);
        } else if (needToDeleteDataApogee) {
            cand.setAdresse(null);
        }
        /* Calcul de l'INE et clé */
        final String ine = MethodUtils.getIne(cand.getIneAndKey());
        final String cle = MethodUtils.getCleIne(cand.getIneAndKey());
        /* On passe tout en capitale */
        cand.setNomPatCandidat(MethodUtils.cleanForApogee(cand.getNomPatCandidat()));
        cand.setNomUsuCandidat(MethodUtils.cleanForApogee(cand.getNomUsuCandidat()));
        cand.setPrenomCandidat(MethodUtils.cleanForApogee(cand.getPrenomCandidat()));
        cand.setAutrePrenCandidat(MethodUtils.cleanForApogee(cand.getAutrePrenCandidat()));
        cand.setIneCandidat(MethodUtils.cleanForApogee(ine));
        cand.setCleIneCandidat(MethodUtils.cleanForApogee(cle));
        cand.setLibVilleNaissCandidat(MethodUtils.cleanForApogee(cand.getLibVilleNaissCandidat()));
        final Candidat candidatSave = saveCandidat(cand, individuApogee, null);
        candidatSave.setCandidatBacOuEqu(candidatParcoursController.getBacByApogeeData((individuApogee != null) ? individuApogee.getBac() : null, candidatSave, needToDeleteDataApogee));
        if (parametreController.getIsGetCursusInterne()) {
            candidatSave.setCandidatCursusInternes(candidatParcoursController.getCursusInterne((individuApogee != null) ? individuApogee.getListCursusInterne() : null, candidatSave, needToDeleteDataApogee));
        }
        /* Synchro des pieces */
        if (individuApogee != null) {
            /* Individu Apogée non null on synchronise tout */
            try {
                candidatPieceController.synchronizePJCandidat(candidatSave);
            } catch (final Exception e) {
            }
        } else if (needToDeleteDataApogee) {
            /* On supprime les pièces */
            candidatPieceController.deletePJCandidat(candidatSave);
        }
        listener.infoPersoModified(candidatSave, langueChanged);
    });
    UI.getCurrent().addWindow(window);
}
Also used : Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) WSAdresse(fr.univlorraine.ecandidat.entities.siscol.WSAdresse) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) CandidatInfoPersoWindow(fr.univlorraine.ecandidat.views.windows.CandidatInfoPersoWindow) CustomException(fr.univlorraine.ecandidat.utils.CustomException) SiScolException(fr.univlorraine.ecandidat.services.siscol.SiScolException)

Example 3 with Candidat

use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.

the class CandidatController method editAdresse.

/**
 * Edite l'adresse d'un candidat
 * @param cptMin
 * @param listener
 */
public void editAdresse(final CompteMinima cptMin, final AdresseListener listener) {
    /* Verrou --> normalement le lock est géré en amont mais on vérifie qd même */
    final String lockError = getLockError(cptMin, ConstanteUtils.LOCK_ADRESSE);
    if (lockError != null) {
        Notification.show(lockError, Type.ERROR_MESSAGE);
        return;
    }
    final Candidat candidat = cptMin.getCandidat();
    Adresse adresse = candidat.getAdresse();
    if (adresse == null) {
        adresse = new Adresse();
    }
    final CandidatAdresseWindow window = new CandidatAdresseWindow(adresse);
    window.addAdresseWindowListener(e -> {
        listener.adresseModified(saveAdresse(candidat, e));
    });
    UI.getCurrent().addWindow(window);
}
Also used : Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) WSAdresse(fr.univlorraine.ecandidat.entities.siscol.WSAdresse) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) CandidatAdresseWindow(fr.univlorraine.ecandidat.views.windows.CandidatAdresseWindow)

Example 4 with Candidat

use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.

the class CandidatController method isINEPresent.

/**
 * Verifie que l'INE saisi n'est pas déjà existant
 * @param  ineValue
 * @param  candidat
 * @return          true si présent, false sinon
 */
public Boolean isINEPresent(final String ineValue, final String cleIneValue, final Candidat candidat) {
    if (ineValue == null || ineValue.equals("")) {
        return false;
    } else {
        final Campagne campagneEnCours = campagneController.getCampagneActive();
        if (campagneEnCours == null) {
            return false;
        }
        final List<Candidat> liste = candidatRepository.findByIneCandidatIgnoreCaseAndCleIneCandidatIgnoreCaseAndCompteMinimaCampagneCodCamp(ineValue, cleIneValue, campagneEnCours.getCodCamp());
        if (liste.size() > 0) {
            if (candidat.getIdCandidat() == null) {
                Notification.show(applicationContext.getMessage("infoperso.ine.allready.present", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
                return true;
            }
            final Optional<Candidat> candOpt = liste.stream().filter(e -> !e.getIdCandidat().equals(candidat.getIdCandidat())).findAny();
            if (candOpt.isPresent()) {
                Notification.show(applicationContext.getMessage("infoperso.ine.allready.present", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
                return true;
            }
        }
    }
    return false;
}
Also used : Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) LoggerFactory(org.slf4j.LoggerFactory) UI(com.vaadin.ui.UI) CompteMinimaRepository(fr.univlorraine.ecandidat.repositories.CompteMinimaRepository) CustomException(fr.univlorraine.ecandidat.utils.CustomException) CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) CompteMinima_(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima_) BatchHisto(fr.univlorraine.ecandidat.entities.ecandidat.BatchHisto) PasswordHashService(fr.univlorraine.ecandidat.services.security.PasswordHashService) WSAdresse(fr.univlorraine.ecandidat.entities.siscol.WSAdresse) Campagne(fr.univlorraine.ecandidat.entities.ecandidat.Campagne) SimpleTablePresentation(fr.univlorraine.ecandidat.utils.bean.presentation.SimpleTablePresentation) InfoPersoListener(fr.univlorraine.ecandidat.utils.ListenerUtils.InfoPersoListener) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Civilite(fr.univlorraine.ecandidat.entities.ecandidat.Civilite) Resource(javax.annotation.Resource) PageRequest(org.springframework.data.domain.PageRequest) SiScolException(fr.univlorraine.ecandidat.services.siscol.SiScolException) WSIndividu(fr.univlorraine.ecandidat.entities.siscol.WSIndividu) Base64(java.util.Base64) List(java.util.List) Type(com.vaadin.ui.Notification.Type) Adresse_(fr.univlorraine.ecandidat.entities.ecandidat.Adresse_) SiScolDepartement(fr.univlorraine.ecandidat.entities.ecandidat.SiScolDepartement) LocalDate(java.time.LocalDate) HistoNumDossier(fr.univlorraine.ecandidat.entities.ecandidat.HistoNumDossier) Optional(java.util.Optional) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) AdresseListener(fr.univlorraine.ecandidat.utils.ListenerUtils.AdresseListener) PjCand(fr.univlorraine.ecandidat.entities.ecandidat.PjCand) CptMinMailBean(fr.univlorraine.ecandidat.utils.bean.mail.CptMinMailBean) MainUI(fr.univlorraine.ecandidat.MainUI) SiScolGenericService(fr.univlorraine.ecandidat.services.siscol.SiScolGenericService) CandidatInfoPersoWindow(fr.univlorraine.ecandidat.views.windows.CandidatInfoPersoWindow) LocalDateTime(java.time.LocalDateTime) CandidatAdminWindow(fr.univlorraine.ecandidat.views.windows.CandidatAdminWindow) ArrayList(java.util.ArrayList) CandidatRepository(fr.univlorraine.ecandidat.repositories.CandidatRepository) SiScolPays(fr.univlorraine.ecandidat.entities.ecandidat.SiScolPays) CandidatAdminDeleteWindow(fr.univlorraine.ecandidat.views.windows.CandidatAdminDeleteWindow) CandidatAdresseWindow(fr.univlorraine.ecandidat.views.windows.CandidatAdresseWindow) PeopleLdap(fr.univlorraine.ecandidat.services.ldap.PeopleLdap) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Notification(com.vaadin.ui.Notification) CandidatAdminListener(fr.univlorraine.ecandidat.utils.ListenerUtils.CandidatAdminListener) Candidat_(fr.univlorraine.ecandidat.entities.ecandidat.Candidat_) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) Logger(org.slf4j.Logger) HistoNumDossierRepository(fr.univlorraine.ecandidat.repositories.HistoNumDossierRepository) CandidatCompteMinimaWindow(fr.univlorraine.ecandidat.views.windows.CandidatCompteMinimaWindow) SiScolCommune(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCommune) ApplicationContext(org.springframework.context.ApplicationContext) Component(org.springframework.stereotype.Component) DateTimeFormatter(java.time.format.DateTimeFormatter) Unit(com.vaadin.server.Sizeable.Unit) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) ConfirmWindow(fr.univlorraine.ecandidat.views.windows.ConfirmWindow) Transactional(org.springframework.transaction.annotation.Transactional) Campagne(fr.univlorraine.ecandidat.entities.ecandidat.Campagne)

Example 5 with Candidat

use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.

the class CandidatureCtrCandController method generateExport.

/**
 * Exporte les candidatures
 * @param  liste
 * @param  allOptions
 * @param  optionChecked
 * @return               le fichier
 */
private OnDemandFile generateExport(final String code, final String libelle, final List<Candidature> liste, final LinkedHashSet<ExportListCandidatureOption> allOptions, final Set<ExportListCandidatureOption> optionChecked, final Boolean temFooter) {
    if (liste == null || liste.size() == 0) {
        return null;
    }
    final Map<String, Object> beans = new HashMap<>();
    /* Traitement des dates */
    liste.forEach(candidature -> {
        candidature.setDatCreCandStr(candidature.getDatCreCand().format(formatterDateTime));
        candidature.getCandidat().setAdresseCandidatExport(generateAdresse(candidature.getCandidat().getAdresse()));
        candidature.getCandidat().setDatNaissanceCandidatStr(MethodUtils.formatDate(candidature.getCandidat().getDatNaissCandidat(), formatterDate));
        if (candidature.getLastTypeDecision() != null) {
            candidature.getLastTypeDecision().setDatValidTypeDecCandStr(MethodUtils.formatDate(candidature.getLastTypeDecision().getDatValidTypeDecCand(), formatterDate));
            candidature.getLastTypeDecision().setPreselectStr(getComplementPreselectMail(candidature.getLastTypeDecision()));
            candidature.getLastTypeDecision().setPreselectDateTypeDecCandStr(MethodUtils.formatDate(candidature.getLastTypeDecision().getPreselectDateTypeDecCand(), formatterDate));
        }
        candidature.setDatModTypStatutCandStr(MethodUtils.formatDate(candidature.getDatModTypStatutCand(), formatterDateTime));
        candidature.setDatReceptDossierCandStr(MethodUtils.formatDate(candidature.getDatReceptDossierCand(), formatterDate));
        candidature.setDatTransDossierCandStr(MethodUtils.formatDate(candidature.getDatTransDossierCand(), formatterDateTime));
        candidature.setDatCompletDossierCandStr(MethodUtils.formatDate(candidature.getDatCompletDossierCand(), formatterDate));
        candidature.setDatAnnulCandStr(MethodUtils.formatDate(candidature.getDatAnnulCand(), formatterDateTime));
        candidature.setDatNewConfirmCandStr(MethodUtils.formatDate(candidature.getDatNewConfirmCand(), formatterDate));
        candidature.setDatNewRetourCandStr(MethodUtils.formatDate(candidature.getDatNewRetourCand(), formatterDate));
        candidature.setDatIncompletDossierCandStr(MethodUtils.formatDate(candidature.getDatIncompletDossierCand(), formatterDate));
        candidature.setDatModPjForm(getDatModPjForm(candidature));
        /* Tags */
        candidature.setTagsStr(formatLongCellSize(candidature.getTags().stream().map(e -> e.getLibTag()).collect(Collectors.joining(" / "))));
        /* Bloc note */
        if (parametreController.getIsExportBlocNote()) {
            candidature.setBlocNoteStr(formatLongCellSize(getPostIt(candidature).stream().map(e -> e.getMessagePostIt()).collect(Collectors.joining(" / "))));
        } else {
            allOptions.add(new ExportListCandidatureOption("postItHide", applicationContext.getMessage("export.option.postit", null, UI.getCurrent().getLocale())));
        }
        /* Exoneration */
        if (candidature.getSiScolCatExoExt() != null) {
            candidature.setCatExoStr(candidature.getSiScolCatExoExt().getDisplayLibelle());
        }
        candidature.setMntChargeStr(MethodUtils.parseBigDecimalAsString(candidature.getMntChargeCand()));
        /* Opi */
        if (candidature.getOpi() != null) {
            candidature.setDatPassageOpiStr(MethodUtils.formatDate(candidature.getOpi().getDatPassageOpi(), formatterDateTime));
            candidature.setCodOpiStr(candidature.getOpi().getCodOpi());
        }
        /* Definition du dernier etablissement frequenté */
        final Candidat candidat = candidature.getCandidat();
        String lastEtab = "";
        String lastDiplome = "";
        String lastLibelleDiplome = "";
        Integer annee = 0;
        for (final CandidatCursusInterne cursus : candidat.getCandidatCursusInternes()) {
            if (cursus.getAnneeUnivCursusInterne() > annee) {
                annee = cursus.getAnneeUnivCursusInterne();
                lastEtab = applicationContext.getMessage("universite.title", null, UI.getCurrent().getLocale());
                lastDiplome = cursus.getLibCursusInterne();
            }
        }
        for (final CandidatCursusPostBac cursus : candidat.getCandidatCursusPostBacs()) {
            if (cursus.getAnneeUnivCursus() > annee && cursus.getSiScolEtablissement() != null) {
                annee = cursus.getAnneeUnivCursus();
                lastEtab = cursus.getSiScolEtablissement().getLibEtb();
                lastDiplome = cursus.getSiScolDipAutCur().getLibDac();
                lastLibelleDiplome = cursus.getLibCursus();
            }
        }
        candidat.setLastEtab(lastEtab);
        candidat.setLastDiplome(lastDiplome);
        candidat.setLastLibDiplome(lastLibelleDiplome);
    });
    if (code != null) {
        beans.put("code", code);
    }
    beans.put("candidatures", liste);
    allOptions.stream().forEach(exportOption -> {
        addExportOption(exportOption, optionChecked, beans);
    });
    if (temFooter) {
        beans.put("footer", applicationContext.getMessage("export.footer", new Object[] { libelle, liste.size(), formatterDateTime.format(LocalDateTime.now()) }, UI.getCurrent().getLocale()));
    } else {
        beans.put("footer", "");
    }
    final String libFile = applicationContext.getMessage("export.nom.fichier", new Object[] { libelle, DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss").format(LocalDateTime.now()) }, UI.getCurrent().getLocale());
    return exportController.generateXlsxExport(beans, "candidatures_template", libFile, Arrays.asList(0));
}
Also used : Arrays(java.util.Arrays) TypeStatut(fr.univlorraine.ecandidat.entities.ecandidat.TypeStatut) LoggerFactory(org.slf4j.LoggerFactory) UI(com.vaadin.ui.UI) ExportListCandidatureOption(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureOption) PdfAttachement(fr.univlorraine.ecandidat.utils.PdfAttachement) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) Map(java.util.Map) PostItRepository(fr.univlorraine.ecandidat.repositories.PostItRepository) Campagne(fr.univlorraine.ecandidat.entities.ecandidat.Campagne) CtrCandActionCandidatureWindow(fr.univlorraine.ecandidat.views.windows.CtrCandActionCandidatureWindow) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Resource(javax.annotation.Resource) CandidatCursusPostBac(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusPostBac) Set(java.util.Set) TypeDecisionCandidature(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature) Collectors(java.util.stream.Collectors) List(java.util.List) Type(com.vaadin.ui.Notification.Type) OnDemandFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFile) LocalDate(java.time.LocalDate) Optional(java.util.Optional) ExportListCandidatureAdresse(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureAdresse) DeleteAvisWindowListener(fr.univlorraine.ecandidat.views.windows.CtrCandShowHistoWindow.DeleteAvisWindowListener) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) PjCand(fr.univlorraine.ecandidat.entities.ecandidat.PjCand) OpiRepository(fr.univlorraine.ecandidat.repositories.OpiRepository) TypeDecision(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecision) AvisMailBean(fr.univlorraine.ecandidat.utils.bean.mail.AvisMailBean) MainUI(fr.univlorraine.ecandidat.MainUI) LocalDateTime(java.time.LocalDateTime) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) PostIt(fr.univlorraine.ecandidat.entities.ecandidat.PostIt) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Notification(com.vaadin.ui.Notification) FormulaireCand(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand) CtrCandShowHistoWindow(fr.univlorraine.ecandidat.views.windows.CtrCandShowHistoWindow) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) LinkedHashSet(java.util.LinkedHashSet) TypeDecisionCandidatureRepository(fr.univlorraine.ecandidat.repositories.TypeDecisionCandidatureRepository) CandidatureMasseListener(fr.univlorraine.ecandidat.utils.ListenerUtils.CandidatureMasseListener) Logger(org.slf4j.Logger) TypeTraitement(fr.univlorraine.ecandidat.entities.ecandidat.TypeTraitement) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) Tag(fr.univlorraine.ecandidat.entities.ecandidat.Tag) ChangeCandidatureWindowListener(fr.univlorraine.ecandidat.views.windows.CtrCandActionCandidatureWindow.ChangeCandidatureWindowListener) ApplicationContext(org.springframework.context.ApplicationContext) DroitFonctionnalite(fr.univlorraine.ecandidat.entities.ecandidat.DroitFonctionnalite) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) CandidatCursusInterne(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusInterne) Component(org.springframework.stereotype.Component) CandidatureListener(fr.univlorraine.ecandidat.utils.ListenerUtils.CandidatureListener) DateTimeFormatter(java.time.format.DateTimeFormatter) CandidatureRepository(fr.univlorraine.ecandidat.repositories.CandidatureRepository) CtrCandPostItReadWindow(fr.univlorraine.ecandidat.views.windows.CtrCandPostItReadWindow) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) Formation(fr.univlorraine.ecandidat.entities.ecandidat.Formation) InputStream(java.io.InputStream) Assert(org.springframework.util.Assert) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) ExportListCandidatureOption(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureOption) CandidatCursusInterne(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusInterne) HashMap(java.util.HashMap) CandidatCursusPostBac(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusPostBac)

Aggregations

Candidat (fr.univlorraine.ecandidat.entities.ecandidat.Candidat)17 CompteMinima (fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima)8 ArrayList (java.util.ArrayList)7 Adresse (fr.univlorraine.ecandidat.entities.ecandidat.Adresse)6 SiScolException (fr.univlorraine.ecandidat.services.siscol.SiScolException)6 WSAdresse (fr.univlorraine.ecandidat.entities.siscol.WSAdresse)5 ConstanteUtils (fr.univlorraine.ecandidat.utils.ConstanteUtils)5 MethodUtils (fr.univlorraine.ecandidat.utils.MethodUtils)5 List (java.util.List)5 Optional (java.util.Optional)5 Resource (javax.annotation.Resource)5 Component (org.springframework.stereotype.Component)5 Notification (com.vaadin.ui.Notification)4 Type (com.vaadin.ui.Notification.Type)4 UI (com.vaadin.ui.UI)4 Commission (fr.univlorraine.ecandidat.entities.ecandidat.Commission)4 Formation (fr.univlorraine.ecandidat.entities.ecandidat.Formation)4 ConfirmWindow (fr.univlorraine.ecandidat.views.windows.ConfirmWindow)4 InputStream (java.io.InputStream)4 DateTimeFormatter (java.time.format.DateTimeFormatter)4