Search in sources :

Example 1 with CandidatInfoPersoWindow

use of fr.univlorraine.ecandidat.views.windows.CandidatInfoPersoWindow 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)

Aggregations

Adresse (fr.univlorraine.ecandidat.entities.ecandidat.Adresse)1 Candidat (fr.univlorraine.ecandidat.entities.ecandidat.Candidat)1 WSAdresse (fr.univlorraine.ecandidat.entities.siscol.WSAdresse)1 SiScolException (fr.univlorraine.ecandidat.services.siscol.SiScolException)1 CustomException (fr.univlorraine.ecandidat.utils.CustomException)1 CandidatInfoPersoWindow (fr.univlorraine.ecandidat.views.windows.CandidatInfoPersoWindow)1