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);
}
Aggregations