use of fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu in project esup-ecandidat by EsupPortail.
the class CandidatParcoursController method getBacByApogeeData.
/**
* Renvoie un bac grace aux données apogee
* @param bacApogee
* @param candidat
* @param needToDeleteDataApogee
* @return le bac provenant d'apogee
*/
public CandidatBacOuEqu getBacByApogeeData(final WSBac bacApogee, final Candidat candidat, final Boolean needToDeleteDataApogee) {
if (bacApogee != null) {
if (candidat.getCandidatBacOuEqu() != null) {
candidatBacOuEquRepository.delete(candidat.getCandidatBacOuEqu());
candidat.setCandidatBacOuEqu(null);
}
SiScolPays pays = null;
final SiScolDepartement dpt = tableRefController.getDepartementByCode(bacApogee.getCodDep());
if (dpt != null) {
pays = cacheController.getPaysFrance();
}
Integer anneeObt = null;
try {
anneeObt = Integer.valueOf(bacApogee.getDaaObtBacIba());
} catch (final Exception e) {
}
final SiScolCommune commune = null;
final SiScolEtablissement etab = tableRefController.getEtablissementByCode(bacApogee.getCodEtb());
final SiScolMentionNivBac mention = tableRefController.getMentionNivBacByCode(bacApogee.getCodMnb());
final SiScolBacOuxEqu bacOuEqu = tableRefController.getBacOuEquByCode(bacApogee.getCodBac());
if (bacOuEqu == null) {
return null;
}
/* Spécialités */
final SiScolSpecialiteBac speBacPre = tableRefController.getSpecialiteBacByCode(bacApogee.getCodSpeBacPre());
final SiScolSpecialiteBac spe1Bac = tableRefController.getSpecialiteBacByCode(bacApogee.getCodSpe1Bac());
final SiScolSpecialiteBac spe2Bac = tableRefController.getSpecialiteBacByCode(bacApogee.getCodSpe2Bac());
/* Options */
final SiScolOptionBac opt1Bac = tableRefController.getOptionBacByCode(bacApogee.getCodOpt1Bac());
final SiScolOptionBac opt2Bac = tableRefController.getOptionBacByCode(bacApogee.getCodOpt2Bac());
final SiScolOptionBac opt3Bac = tableRefController.getOptionBacByCode(bacApogee.getCodOpt3Bac());
final SiScolOptionBac opt4Bac = tableRefController.getOptionBacByCode(bacApogee.getCodOpt4Bac());
final CandidatBacOuEqu candidatBacOuEqu = new CandidatBacOuEqu(candidat.getIdCandidat(), anneeObt, bacOuEqu, commune, dpt, etab, mention, pays, candidat, false, speBacPre, spe1Bac, spe2Bac, opt1Bac, opt2Bac, opt3Bac, opt4Bac);
if (MethodUtils.validateBean(candidatBacOuEqu, logger)) {
return candidatBacOuEquRepository.save(candidatBacOuEqu);
}
return null;
} else {
/* if (candidat.getTemUpdatableCandidat() && candidat.getCandidatBacOuEqu()!=null && !candidat.getCandidatBacOuEqu().getTemUpdatableBac()){
* candidat.getCandidatBacOuEqu().setTemUpdatableBac(true);
* return candidatBacOuEquRepository.save(candidat.getCandidatBacOuEqu());
* } */
if (needToDeleteDataApogee && candidat.getCandidatBacOuEqu() != null) {
candidatBacOuEquRepository.delete(candidat.getCandidatBacOuEqu());
candidat.setCandidatBacOuEqu(null);
}
return candidat.getCandidatBacOuEqu();
}
}
use of fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu in project esup-ecandidat by EsupPortail.
the class SiScolApogeeWSServiceImpl method creerOpiViaWS.
/* (non-Javadoc)
*
* @see
* fr.univlorraine.ecandidat.services.siscol.SiScolGenericService#creerOpiViaWS(
* fr.univlorraine.ecandidat.entities.ecandidat.Candidat) */
@Override
public void creerOpiViaWS(final Candidat candidat, final Boolean isBatch) {
/* Erreur à afficher dans les logs */
final String logComp = " - candidat " + candidat.getCompteMinima().getNumDossierOpiCptMin();
/* Instanciation du service */
if (opiService == null) {
try {
opiService = ServiceProvider.getService(OpiMetierServiceInterface.class);
} catch (final Exception e) {
logger.error("Erreur OPI : Probleme d'insertion des voeux dans Apogée" + logComp, e);
// Affichage message dans l'interface
return;
}
}
logger.debug("creerOpiViaWS" + logComp);
// Test que l'année d'obtention du bac est correcte.
final CandidatBacOuEqu bacOuEqu = candidat.getCandidatBacOuEqu();
if (bacOuEqu != null && bacOuEqu.getAnneeObtBac() != null) {
final int anneeObtBac = candidat.getCandidatBacOuEqu().getAnneeObtBac();
final int anneeEnCours = (LocalDate.now()).getYear();
if (anneeObtBac > anneeEnCours) {
mailController.sendErrorToAdminFonctionnel("Erreur OPI, bac non conforme" + logComp, "Erreur OPI : bac non conforme, la date est supérieur à l'année courante" + logComp, logger);
logger.debug("bac non conforme" + logComp);
return;
}
}
// Donnees de l'individu
final String codOpiIntEpo = parametreController.getPrefixeOPI() + candidat.getCompteMinima().getNumDossierOpiCptMin();
// Voeux-->On cherche tout les voeuyx soumis à OPI-->Recherche des OPI du
// candidat
final List<Opi> listeOpi = opiController.getListOpiByCandidat(candidat, isBatch);
final List<MAJOpiVoeuDTO3> listeMAJOpiVoeuDTO = new ArrayList<>();
/* Au moins 1 opi n'est pas passé pour lancer l'opi */
Boolean opiToPass = false;
for (final Opi opi : listeOpi) {
final MAJOpiVoeuDTO3 mAJOpiVoeuDTO = getVoeuByCandidature(opi.getCandidature());
if (opi.getDatPassageOpi() == null) {
opiToPass = true;
}
if (mAJOpiVoeuDTO != null) {
listeMAJOpiVoeuDTO.add(mAJOpiVoeuDTO);
}
}
/* Au moins 1 opi n'est pas passé pour lancer l'opi */
if (!opiToPass) {
logger.debug("aucun OPI a passer" + logComp);
return;
}
/* Creation des objets DTO */
final DonneesOpiDTO10 donneesOPI = new DonneesOpiDTO10();
final MAJOpiIndDTO6 individu = new MAJOpiIndDTO6();
final MAJEtatCivilDTO2 etatCivil = getEtatCivil(candidat);
final MAJDonneesNaissanceDTO2 donneesNaissance = getDonneesNaissance(candidat);
final MAJDonneesPersonnellesDTO3 donneesPersonnelles = new MAJDonneesPersonnellesDTO3();
final MAJOpiBacDTO2 bac = new MAJOpiBacDTO2();
/* Informations de verification */
individu.setCodOpiIntEpo(codOpiIntEpo);
individu.setCodEtuOpi(null);
if (candidat.getCompteMinima() != null && candidat.getCompteMinima().getSupannEtuIdCptMin() != null) {
try {
individu.setCodEtuOpi(Integer.valueOf(candidat.getCompteMinima().getSupannEtuIdCptMin()));
} catch (final Exception e) {
}
}
// donnees personnelles
donneesPersonnelles.setAdrMailOpi(candidat.getCompteMinima().getMailPersoCptMin());
donneesPersonnelles.setNumTelPorOpi(candidat.getTelPortCandidat());
// BAC
if (bacOuEqu != null && bacOuEqu.getSiScolBacOuxEqu() != null) {
bac.setCodBac(bacOuEqu.getSiScolBacOuxEqu().getCodBac());
bac.setCodDep((bacOuEqu.getSiScolDepartement()) != null ? bacOuEqu.getSiScolDepartement().getCodDep() : null);
bac.setCodEtb((bacOuEqu.getSiScolEtablissement()) != null ? bacOuEqu.getSiScolEtablissement().getCodEtb() : null);
bac.setCodTpe((bacOuEqu.getSiScolEtablissement()) != null ? bacOuEqu.getSiScolEtablissement().getCodTpeEtb() : null);
bac.setCodMention((bacOuEqu.getSiScolMentionNivBac()) != null ? bacOuEqu.getSiScolMentionNivBac().getCodMnb() : null);
// calcul de l'année
if (bacOuEqu.getAnneeObtBac() != null) {
logger.debug("bac avec annee" + logComp);
bac.setDaaObtBacOba(bacOuEqu.getAnneeObtBac().toString());
} else {
logger.debug("bac sans annee" + logComp);
bac.setDaaObtBacOba(getDefaultBacAnneeObt());
}
/* Specialités / Options */
bac.setCodSpe1BacTer(Optional.ofNullable(bacOuEqu.getSiScolSpe1BacTer()).map(SiScolSpecialiteBac::getCodSpeBac).orElse(null));
bac.setCodSpe2BacTer(Optional.ofNullable(bacOuEqu.getSiScolSpe2BacTer()).map(SiScolSpecialiteBac::getCodSpeBac).orElse(null));
bac.setCodSpeBacPre(Optional.ofNullable(bacOuEqu.getSiScolSpeBacPre()).map(SiScolSpecialiteBac::getCodSpeBac).orElse(null));
bac.setCodOpt1Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt1Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
bac.setCodOpt2Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt2Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
bac.setCodOpt3Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt3Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
bac.setCodOpt4Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt4Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
} else {
final String codNoBac = parametreController.getSiscolCodeSansBac();
if (codNoBac != null && !codNoBac.equals("")) {
logger.debug("bac par defaut" + logComp);
bac.setCodBac(codNoBac);
bac.setDaaObtBacOba(getDefaultBacAnneeObt());
} else {
logger.debug("aucun bac" + logComp);
}
}
individu.setEtatCivil(etatCivil);
individu.setDonneesNaissance(donneesNaissance);
individu.setDonneesPersonnelles(donneesPersonnelles);
donneesOPI.setIndividu(individu);
donneesOPI.setBac(bac);
/* Donnes d'adresse */
if (parametreController.getIsUtiliseOpiAdr()) {
donneesOPI.setAdresseFixe(getAdresseOPI(candidat.getAdresse(), candidat));
}
/* Les voeux */
int rang = 0;
if (listeMAJOpiVoeuDTO != null) {
final TableauVoeu3 tabDonneesVoeux = new TableauVoeu3();
for (final MAJOpiVoeuDTO3 v : listeMAJOpiVoeuDTO) {
tabDonneesVoeux.getItem().add(v);
rang++;
}
/**
* TODO Voir avec l'amue pour la supression des voeux --> hack : passer un
* tableau avec un voeu vide
*/
if (tabDonneesVoeux.getItem().size() == 0) {
tabDonneesVoeux.getItem().add(new MAJOpiVoeuDTO3());
logger.debug("suppression des voeux" + logComp);
}
/**
* Fin TODO
*/
donneesOPI.setVoeux(tabDonneesVoeux);
}
/* else{ logger.debug("aucun OPI a passer"+logComp); return; } */
logger.debug("listVoeux " + rang + logComp);
boolean actionWSok = false;
try {
logger.debug("lancement ws OPI" + logComp);
opiService.mettreajourDonneesOpiV10(donneesOPI);
logger.debug("fin ws OPI" + logComp);
actionWSok = true;
} catch (final Exception e) {
logger.error("erreur ws OPI" + logComp, e);
return;
}
// Si l'appel au WS s'est bien passé
if (actionWSok) {
// Vérifie si l'OPI est passé
final List<IndOpi> listIndOpi = findNneIndOpiByCodOpiIntEpo(codOpiIntEpo, individu.getCodEtuOpi(), etatCivil, candidat.getDatNaissCandidat());
// dans apogee
if (listIndOpi == null || listIndOpi.size() == 0) {
mailController.sendErrorToAdminFonctionnel("Erreur OPI" + logComp, "Erreur OPI : Probleme d'insertion de l'OPI dans Apogée, pas de données OPI" + logComp, logger);
return;
}
IndOpi indOpi = null;
// Test si plusieurs indopi trouvé
if (listIndOpi.size() > 1) {
// on recherche celui qu'on vient d'inserer
final List<IndOpi> listeFromEcandidat = listIndOpi.stream().filter(e -> e.getCodOpiIntEpo() != null && e.getCodOpiIntEpo().toUpperCase().equals(codOpiIntEpo.toUpperCase())).collect(Collectors.toList());
// si il y en a plusieurs-->erreur
if (listeFromEcandidat.size() > 1) {
mailController.sendErrorToAdminFonctionnel("Erreur OPI" + logComp, "Erreur OPI : Probleme d'insertion de l'OPI dans Apogée, plusieurs données OPI trouvées avec le même CodOpiIntEpo = " + codOpiIntEpo.toUpperCase() + logComp, logger);
return;
} else // candiature
if (listeFromEcandidat.size() == 0) {
mailController.sendErrorToAdminFonctionnel("Erreur OPI" + logComp, "Erreur OPI : Probleme d'insertion de l'OPI dans Apogée, plusieurs données OPI trouvées" + logComp, logger);
return;
} else // si un seul, on a raccroché la candiature sur celui-ci
if (listeFromEcandidat.size() == 1) {
indOpi = listeFromEcandidat.get(0);
}
} else /* On a trouvé un seul OPI, c'est ok, on continue avec celui là */
if (listIndOpi.size() == 1) {
indOpi = listIndOpi.get(0);
}
/* Verification que l'opi est bien trouvé et que son code n'ets pas null */
if (indOpi == null) {
logger.error("Erreur OPI : opi null ou non trouvé " + logComp);
return;
}
/* On vérifie aussi que tout s'est bien passé */
try {
final List<VoeuxIns> listeVoeux = getVoeuxApogee(indOpi);
final List<Opi> listeOpiATraiter = new ArrayList<>();
listeVoeux.forEach(voeu -> {
listeOpi.stream().filter(opi -> opi.getDatPassageOpi() == null && voeu.getId().getCodEtp().equals(opi.getCandidature().getFormation().getCodEtpVetApoForm()) && String.valueOf(voeu.getId().getCodVrsVet()).equals(opi.getCandidature().getFormation().getCodVrsVetApoForm()) && voeu.getId().getCodCge().equals(opi.getCandidature().getFormation().getSiScolCentreGestion().getCodCge())).collect(Collectors.toList()).forEach(opiFiltre -> {
listeOpiATraiter.add(opiFiltre);
});
});
/* Traitement des desistements apres confirmation */
final List<Opi> listeOpiDesistementATraiter = new ArrayList<>();
listeOpi.stream().filter(opi -> opi.getDatPassageOpi() == null && opi.getCandidature().getTemAcceptCand() != null && !opi.getCandidature().getTemAcceptCand()).forEach(opiDesist -> {
final long nbvoeuxDesist = listeVoeux.stream().filter(voeu -> voeu.getId().getCodEtp().equals(opiDesist.getCandidature().getFormation().getCodEtpVetApoForm()) && String.valueOf(voeu.getId().getCodVrsVet()).equals(opiDesist.getCandidature().getFormation().getCodVrsVetApoForm()) && voeu.getId().getCodCge().equals(opiDesist.getCandidature().getFormation().getSiScolCentreGestion().getCodCge())).count();
// sinon on le traite
if (nbvoeuxDesist == 0) {
listeOpiDesistementATraiter.add(opiDesist);
}
});
/* On verifie que le code OPI provient de ecandidat */
final Boolean isCodOpiIntEpoFromEcandidat = codOpiIntEpo.toUpperCase().equals(indOpi.getCodOpiIntEpo().toUpperCase());
/* On traite les OPI */
opiController.traiteListOpiCandidat(candidat, listeOpiATraiter, isCodOpiIntEpoFromEcandidat, indOpi.getCodOpiIntEpo(), logComp);
/* On traite les OPI en desistement */
opiController.traiteListOpiDesistCandidat(candidat, listeOpiDesistementATraiter, logComp);
/* Traitement des PJ */
opiController.traiteListOpiPjCandidat(listeOpiATraiter, indOpi.getCodOpiIntEpo(), indOpi.getCodIndOpi(), logComp, isBatch);
} catch (final SiScolException e) {
logger.error("Erreur OPI : Probleme d'insertion des voeux dans Apogée" + logComp, e);
// Affichage message dans l'interface
return;
}
}
return;
}
use of fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu in project esup-ecandidat by EsupPortail.
the class CandidatureController method candidatToFormation.
/**
* Candidate à une formation
* @param idForm
* @param listener
*/
public void candidatToFormation(final Integer idForm, final OdfListener listener, final Boolean isTest) {
/* On recupere l'authentification */
final Authentication auth = userController.getCurrentAuthentication();
if (userController.isAnonymous(auth)) {
return;
}
if (!userController.isCandidat(auth) && userController.getNoDossierCandidat(auth) == null) {
Notification.show(applicationContext.getMessage("odf.choose.candidat", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
/* Vérification du compte à minima */
final CompteMinima cptMin = candidatController.getCompteMinima();
if (cptMin == null) {
Notification.show(applicationContext.getMessage("cptmin.load.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
final Candidat candidat = cptMin.getCandidat();
/* Vérification du candidat-->info perso */
if (candidat == null) {
Notification.show(applicationContext.getMessage("candidat.load.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
/* Vérification du candidat-->adresse */
if (candidat.getAdresse() == null) {
Notification.show(applicationContext.getMessage("candidat.load.adresse.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
/* Vérification du candidat-->bac */
final CandidatBacOuEqu bacOuEqu = candidat.getCandidatBacOuEqu();
if (bacOuEqu == null) {
Notification.show(applicationContext.getMessage("candidat.load.bac.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
/* Vérification année du bac et INE obligatoire */
final SiScolBacOuxEqu siScolBacOuxEqu = bacOuEqu.getSiScolBacOuxEqu();
if (bacOuEqu.getAnneeObtBac() != null && siScolBacOuxEqu.getTemCtrlIneBac() && siScolBacOuxEqu.getAnnCtrlIneBac() != null && bacOuEqu.getAnneeObtBac().compareTo(Integer.valueOf(siScolBacOuxEqu.getAnnCtrlIneBac())) >= 0 && candidatController.getINEObligatoire(candidat.getSiScolPaysNat()) && (candidat.getIneCandidat() == null || candidat.getCleIneCandidat() == null || candidat.getIneCandidat().equals("") || candidat.getCleIneCandidat().equals(""))) {
Notification.show(applicationContext.getMessage("candidat.load.bac.ine.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
final Formation formation = formationRepository.findOne(idForm);
if (formation == null || !formation.getTesForm()) {
Notification.show(applicationContext.getMessage("candidature.formation.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
if (listener != null) {
listener.updateOdf();
}
return;
}
if (!isTest) {
if (candidat.getCandidatures().stream().filter(candidature -> candidature.getDatAnnulCand() == null && candidature.getFormation().getIdForm().equals(idForm)).findAny().isPresent()) {
Notification.show(applicationContext.getMessage("candidature.formation.allready", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
}
/* On défini les variables */
final String user = userController.getCurrentNoDossierCptMinOrLogin(auth);
TypeTraitement typTraitForm = formation.getTypeTraitement();
if (typTraitForm.equals(tableRefController.getTypeTraitementAccesDirect())) {
typTraitForm = tableRefController.getTypeTraitementEnAttente();
}
if (userController.isGestionnaireCandidat(auth)) {
candidatToFormationGestionnaire(candidat, formation, user, typTraitForm);
} else {
/* Verif que les dates sont bien dans l'interval */
if (!MethodUtils.isDateIncludeInInterval(LocalDate.now(), formation.getDatDebDepotForm(), formation.getDatFinDepotForm())) {
Notification.show(applicationContext.getMessage("candidature.date.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
/* Verif que le nb de candidatures du candidat sur ce centre ne depassent pas le
* nb parametre */
final CentreCandidature ctrCand = formation.getCommission().getCentreCandidature();
Integer nbMax;
Long nbCand;
String message;
if (parametreController.getNbVoeuxMaxIsEtab()) {
nbMax = parametreController.getNbVoeuxMax();
nbCand = candidatureRepository.getNbCandByEtab(candidat.getIdCandidat());
message = applicationContext.getMessage("candidature.etab.error", null, UI.getCurrent().getLocale());
} else {
nbMax = ctrCand.getNbMaxVoeuxCtrCand();
nbCand = candidatureRepository.getNbCandByCtrCand(ctrCand.getIdCtrCand(), candidat.getIdCandidat());
message = applicationContext.getMessage("candidature.ctrCand.error", null, UI.getCurrent().getLocale());
}
if (nbCand >= nbMax) {
Notification.show(message, Type.WARNING_MESSAGE);
return;
}
candidatToFormationCandidat(candidat, formation, user, typTraitForm, isTest);
}
}
use of fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu in project esup-ecandidat by EsupPortail.
the class CandidatParcoursController method editBac.
/**
* Edition du bac
*/
public void editBac(final Candidat candidat, final CandidatBacListener listener) {
/* Verrou --> normalement le lock est géré en amont mais on vérifie qd même */
final String lockError = candidatController.getLockError(candidat.getCompteMinima(), ConstanteUtils.LOCK_BAC);
if (lockError != null) {
Notification.show(lockError, Type.ERROR_MESSAGE);
return;
}
CandidatBacOuEqu bac = candidat.getCandidatBacOuEqu();
Boolean edition = true;
if (bac == null) {
bac = new CandidatBacOuEqu();
bac.setTemUpdatableBac(true);
bac.setIdCandidat(candidat.getIdCandidat());
bac.setCandidat(candidat);
edition = false;
}
final CandidatBacWindow window = new CandidatBacWindow(bac, edition);
window.addBacWindowListener(e -> {
listener.bacModified(e);
});
UI.getCurrent().addWindow(window);
}
Aggregations