Search in sources :

Example 1 with CandidatBacOuEqu

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();
    }
}
Also used : SiScolPays(fr.univlorraine.ecandidat.entities.ecandidat.SiScolPays) SiScolCommune(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCommune) SiScolOptionBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolOptionBac) SiScolMentionNivBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolMentionNivBac) SiScolDepartement(fr.univlorraine.ecandidat.entities.ecandidat.SiScolDepartement) SiScolSpecialiteBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolSpecialiteBac) CandidatBacOuEqu(fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu) SiScolEtablissement(fr.univlorraine.ecandidat.entities.ecandidat.SiScolEtablissement) SiScolBacOuxEqu(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacOuxEqu)

Example 2 with CandidatBacOuEqu

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;
}
Also used : PedagogiqueMetierServiceInterface(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.PedagogiqueMetierServiceInterface) SiScolSpecialiteBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolSpecialiteBac) BigDecimal(java.math.BigDecimal) CentreGestion(fr.univlorraine.ecandidat.entities.siscol.CentreGestion) Map(java.util.Map) DipAutCur(fr.univlorraine.ecandidat.entities.siscol.DipAutCur) VersionApo(fr.univlorraine.ecandidat.entities.siscol.VersionApo) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Resource(javax.annotation.Resource) TableauVoeu3(gouv.education.apogee.commun.client.ws.OpiMetier.TableauVoeu3) ContratPedagogiqueResultatVdiVetDTO2(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.ContratPedagogiqueResultatVdiVetDTO2) SiScolRestException(fr.univlorraine.ecandidat.services.siscol.SiScolRestUtils.SiScolRestException) Pays(fr.univlorraine.ecandidat.entities.siscol.Pays) Serializable(java.io.Serializable) Utilisateur(fr.univlorraine.ecandidat.entities.siscol.Utilisateur) ServiceProvider(fr.univlorraine.apowsutils.ServiceProvider) InfoAdmEtuDTO4(gouv.education.apogee.commun.client.ws.EtudiantMetier.InfoAdmEtuDTO4) SiScolDipAutCur(fr.univlorraine.ecandidat.entities.ecandidat.SiScolDipAutCur) OptionBac(fr.univlorraine.ecandidat.entities.siscol.OptionBac) EntityManagerFactory(javax.persistence.EntityManagerFactory) SiScolDepartement(fr.univlorraine.ecandidat.entities.ecandidat.SiScolDepartement) MentionNivBac(fr.univlorraine.ecandidat.entities.siscol.MentionNivBac) OpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.OpiMetier.OpiMetierServiceInterface) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) SiScolMentionNivBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolMentionNivBac) IndOpi(fr.univlorraine.ecandidat.entities.siscol.IndOpi) SiScolBacOuxEqu(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacOuxEqu) Persistence(javax.persistence.Persistence) BacRegroupeSpeBac(fr.univlorraine.ecandidat.entities.siscol.BacRegroupeSpeBac) WSBac(fr.univlorraine.ecandidat.entities.siscol.WSBac) Departement(fr.univlorraine.ecandidat.entities.siscol.Departement) Fichier(fr.univlorraine.ecandidat.entities.ecandidat.Fichier) WSPjInfo(fr.univlorraine.ecandidat.entities.siscol.WSPjInfo) CoordonneesDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.CoordonneesDTO2) SiScolTypDiplome(fr.univlorraine.ecandidat.entities.ecandidat.SiScolTypDiplome) ArrayList(java.util.ArrayList) SiScolPays(fr.univlorraine.ecandidat.entities.ecandidat.SiScolPays) Mention(fr.univlorraine.ecandidat.entities.siscol.Mention) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) SpecialiteBac(fr.univlorraine.ecandidat.entities.siscol.SpecialiteBac) SiScolCentreGestion(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCentreGestion) Version(fr.univlorraine.ecandidat.entities.ecandidat.Version) EtapeResVdiVetDTO2(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.EtapeResVdiVetDTO2) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) TypResultat(fr.univlorraine.ecandidat.entities.siscol.TypResultat) MAJEtatCivilDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJEtatCivilDTO2) DonneesOpiDTO10(gouv.education.apogee.commun.client.ws.OpiMetier.DonneesOpiDTO10) SiScolBacSpeBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacSpeBac) SiScolCommune(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCommune) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) HttpMethod(org.springframework.http.HttpMethod) MultiValueMap(org.springframework.util.MultiValueMap) PjOpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.PjOpiMetier.PjOpiMetierServiceInterface) EntityManager(javax.persistence.EntityManager) MAJDonneesNaissanceDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesNaissanceDTO2) ParametreController(fr.univlorraine.ecandidat.controllers.ParametreController) VoeuxIns(fr.univlorraine.ecandidat.entities.siscol.VoeuxIns) EtudiantMetierServiceInterface(gouv.education.apogee.commun.client.ws.EtudiantMetier.EtudiantMetierServiceInterface) AnneeUni(fr.univlorraine.ecandidat.entities.siscol.AnneeUni) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) ResultatVetDTO(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.ResultatVetDTO) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) Etablissement(fr.univlorraine.ecandidat.entities.siscol.Etablissement) MailController(fr.univlorraine.ecandidat.controllers.MailController) IndBacDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.IndBacDTO2) CandidatureController(fr.univlorraine.ecandidat.controllers.CandidatureController) LoggerFactory(org.slf4j.LoggerFactory) SiScolUtilisateur(fr.univlorraine.ecandidat.entities.ecandidat.SiScolUtilisateur) MAJOpiVoeuDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiVoeuDTO3) MAJOpiAdresseDTO(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiAdresseDTO) PjOpi(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi) MAJOpiIndDTO6(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiIndDTO6) URI(java.net.URI) TypDiplome(fr.univlorraine.ecandidat.entities.siscol.TypDiplome) RestTemplate(org.springframework.web.client.RestTemplate) WSAdresse(fr.univlorraine.ecandidat.entities.siscol.WSAdresse) HttpHeaders(org.springframework.http.HttpHeaders) CandidatBacOuEqu(fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu) TableauResultatVetDto(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.TableauResultatVetDto) Collectors(java.util.stream.Collectors) WSIndividu(fr.univlorraine.ecandidat.entities.siscol.WSIndividu) TableauEtapeResVdiVetDto2(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.TableauEtapeResVdiVetDto2) WSCursusInterne(fr.univlorraine.ecandidat.entities.siscol.WSCursusInterne) IdentifiantsEtudiantDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.IdentifiantsEtudiantDTO2) List(java.util.List) Query(javax.persistence.Query) HttpEntity(org.springframework.http.HttpEntity) LocalDate(java.time.LocalDate) Optional(java.util.Optional) MAJOpiBacDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiBacDTO2) OpiController(fr.univlorraine.ecandidat.controllers.OpiController) SiScolAnneeUni(fr.univlorraine.ecandidat.entities.ecandidat.SiScolAnneeUni) SiScolComBdi(fr.univlorraine.ecandidat.entities.ecandidat.SiScolComBdi) MAJDonneesPersonnellesDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesPersonnellesDTO3) HashMap(java.util.HashMap) BacOuxEqu(fr.univlorraine.ecandidat.entities.siscol.BacOuxEqu) CatExoExt(fr.univlorraine.ecandidat.entities.siscol.CatExoExt) SiScolBacOptBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacOptBac) Vet(fr.univlorraine.ecandidat.entities.siscol.Vet) CacheController(fr.univlorraine.ecandidat.controllers.CacheController) Diplome(fr.univlorraine.ecandidat.entities.siscol.Diplome) SiScolCatExoExt(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCatExoExt) Commune(fr.univlorraine.ecandidat.entities.siscol.Commune) Logger(org.slf4j.Logger) AdresseDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.AdresseDTO2) SiScolTypResultat(fr.univlorraine.ecandidat.entities.ecandidat.SiScolTypResultat) SiScolOptionBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolOptionBac) BacRegroupeOptBac(fr.univlorraine.ecandidat.entities.siscol.BacRegroupeOptBac) ComBdi(fr.univlorraine.ecandidat.entities.siscol.ComBdi) SiScolMention(fr.univlorraine.ecandidat.entities.ecandidat.SiScolMention) KeyValue(fr.univlorraine.ecandidat.utils.KeyValue) Component(org.springframework.stereotype.Component) DateTimeFormatter(java.time.format.DateTimeFormatter) ResponseEntity(org.springframework.http.ResponseEntity) Formation(fr.univlorraine.ecandidat.entities.ecandidat.Formation) SiScolEtablissement(fr.univlorraine.ecandidat.entities.ecandidat.SiScolEtablissement) InputStream(java.io.InputStream) StringUtils(org.springframework.util.StringUtils) ArrayList(java.util.ArrayList) IndOpi(fr.univlorraine.ecandidat.entities.siscol.IndOpi) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) PjOpi(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi) DonneesOpiDTO10(gouv.education.apogee.commun.client.ws.OpiMetier.DonneesOpiDTO10) MAJOpiVoeuDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiVoeuDTO3) SiScolOptionBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolOptionBac) MAJOpiIndDTO6(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiIndDTO6) OpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.OpiMetier.OpiMetierServiceInterface) PjOpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.PjOpiMetier.PjOpiMetierServiceInterface) SiScolSpecialiteBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolSpecialiteBac) CandidatBacOuEqu(fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu) MAJDonneesNaissanceDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesNaissanceDTO2) MAJDonneesPersonnellesDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesPersonnellesDTO3) VoeuxIns(fr.univlorraine.ecandidat.entities.siscol.VoeuxIns) IndOpi(fr.univlorraine.ecandidat.entities.siscol.IndOpi) SiScolRestException(fr.univlorraine.ecandidat.services.siscol.SiScolRestUtils.SiScolRestException) MAJOpiBacDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiBacDTO2) TableauVoeu3(gouv.education.apogee.commun.client.ws.OpiMetier.TableauVoeu3) MAJEtatCivilDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJEtatCivilDTO2)

Example 3 with CandidatBacOuEqu

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);
    }
}
Also used : CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) ExportDossierCandidat(fr.univlorraine.ecandidat.utils.bean.export.ExportDossierCandidat) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) ExportLettreCandidat(fr.univlorraine.ecandidat.utils.bean.export.ExportLettreCandidat) TypeTraitement(fr.univlorraine.ecandidat.entities.ecandidat.TypeTraitement) Authentication(org.springframework.security.core.Authentication) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) CandidatBacOuEqu(fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu) SiScolBacOuxEqu(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacOuxEqu) Formation(fr.univlorraine.ecandidat.entities.ecandidat.Formation)

Example 4 with CandidatBacOuEqu

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);
}
Also used : CandidatBacWindow(fr.univlorraine.ecandidat.views.windows.CandidatBacWindow) CandidatBacOuEqu(fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu)

Aggregations

CandidatBacOuEqu (fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu)4 SiScolBacOuxEqu (fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacOuxEqu)3 Candidat (fr.univlorraine.ecandidat.entities.ecandidat.Candidat)2 Formation (fr.univlorraine.ecandidat.entities.ecandidat.Formation)2 SiScolCommune (fr.univlorraine.ecandidat.entities.ecandidat.SiScolCommune)2 SiScolDepartement (fr.univlorraine.ecandidat.entities.ecandidat.SiScolDepartement)2 SiScolEtablissement (fr.univlorraine.ecandidat.entities.ecandidat.SiScolEtablissement)2 SiScolMentionNivBac (fr.univlorraine.ecandidat.entities.ecandidat.SiScolMentionNivBac)2 SiScolOptionBac (fr.univlorraine.ecandidat.entities.ecandidat.SiScolOptionBac)2 SiScolPays (fr.univlorraine.ecandidat.entities.ecandidat.SiScolPays)2 SiScolSpecialiteBac (fr.univlorraine.ecandidat.entities.ecandidat.SiScolSpecialiteBac)2 ServiceProvider (fr.univlorraine.apowsutils.ServiceProvider)1 CacheController (fr.univlorraine.ecandidat.controllers.CacheController)1 CandidatureController (fr.univlorraine.ecandidat.controllers.CandidatureController)1 MailController (fr.univlorraine.ecandidat.controllers.MailController)1 OpiController (fr.univlorraine.ecandidat.controllers.OpiController)1 ParametreController (fr.univlorraine.ecandidat.controllers.ParametreController)1 Adresse (fr.univlorraine.ecandidat.entities.ecandidat.Adresse)1 Candidature (fr.univlorraine.ecandidat.entities.ecandidat.Candidature)1 CentreCandidature (fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature)1