Search in sources :

Example 1 with FormulaireCandidature

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

the class CandidaturePieceController method getFormulaireCandidature.

/**
 * @param  candidature
 * @return             la liste des formulaires d'une candidature
 */
public List<FormulairePresentation> getFormulaireCandidature(final Candidature candidature) {
    final String numDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
    final List<FormulairePresentation> liste = new ArrayList<>();
    final TypeStatutPiece statutAT = tableRefController.getTypeStatutPieceAttente();
    final TypeStatutPiece statutNC = tableRefController.getTypeStatutPieceNonConcerne();
    final TypeStatutPiece statutTR = tableRefController.getTypeStatutPieceTransmis();
    final List<FormulaireCand> listeFormulaireCand = candidature.getFormulaireCands();
    final List<FormulaireCandidature> listeFormulaireCandidature = candidature.getFormulaireCandidatures();
    final List<FormulaireCandidat> listeFormulaireCandidat = candidature.getCandidat().getFormulaireCandidats();
    formulaireController.getFormulaireForCandidature(candidature).forEach(e -> {
        final String libForm = i18nController.getI18nTraduction(e.getI18nLibFormulaire());
        String urlForm = i18nController.getI18nTraduction(e.getI18nUrlFormulaire());
        /* Possibilité d'ajout du numdossier dans l'url sous la forme ${numDossier} */
        if (urlForm != null) {
            urlForm = urlForm.replaceAll(ConstanteUtils.VAR_REGEX_FORM_NUM_DOSSIER, numDossier);
            urlForm = urlForm.replaceAll(ConstanteUtils.VAR_REGEX_FORM_NUM_DOSSIER_OLD, numDossier);
            urlForm = urlForm.replaceAll(ConstanteUtils.VAR_REGEX_FORM_ID_CANDIDATURE, String.valueOf(candidature.getIdCand()));
        }
        String libStatut = null;
        String codStatut = null;
        String reponses = null;
        /* On recherche d'abord les réponses */
        final FormulaireCandidature formulaireCandidature = getFormulaireCandidatureFromList(e, listeFormulaireCandidature);
        final FormulaireCandidat formulaireCandidat = getFormulaireCandidatFromList(e, listeFormulaireCandidat);
        if (formulaireCandidature != null) {
            codStatut = statutTR.getCodTypStatutPiece();
            libStatut = i18nController.getI18nTraduction(statutTR.getI18nLibTypStatutPiece());
            reponses = formulaireCandidature.getReponsesFormulaireCand();
        } else if (formulaireCandidat != null) {
            codStatut = statutTR.getCodTypStatutPiece();
            libStatut = i18nController.getI18nTraduction(statutTR.getI18nLibTypStatutPiece());
            reponses = formulaireCandidat.getReponsesFormulaireCandidat();
        } else {
            /* Si pas de réponse on recherche une ligne dans formulaireCand pour vérifier
				 * qu'il est concerné */
            final FormulaireCand formulaireCand = getFormulaireCandFromList(e, listeFormulaireCand);
            if (formulaireCand != null) {
                codStatut = statutNC.getCodTypStatutPiece();
                libStatut = i18nController.getI18nTraduction(statutNC.getI18nLibTypStatutPiece());
            } else {
                /* Ni de réponse, ni non concerné --> en attente */
                codStatut = statutAT.getCodTypStatutPiece();
                libStatut = i18nController.getI18nTraduction(statutAT.getI18nLibTypStatutPiece());
            }
        }
        liste.add(new FormulairePresentation(e, libForm, urlForm, codStatut, libStatut, e.getTemConditionnelFormulaire(), reponses));
    });
    return liste;
}
Also used : TypeStatutPiece(fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece) FormulaireCand(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand) FormulairePresentation(fr.univlorraine.ecandidat.utils.bean.presentation.FormulairePresentation) ArrayList(java.util.ArrayList) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) FormulaireCandidature(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature)

Example 2 with FormulaireCandidature

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

the class FormulaireController method syncSurvey.

/**
 * Synchronise un formulaire
 * @param idFormulaireLimeSurvey
 */
public void syncSurvey(final Integer idFormulaireLimeSurvey) {
    logger.debug("Synchronisation formulaire " + idFormulaireLimeSurvey);
    final String codLangue = null;
    try {
        final List<SurveyReponse> listSurvey = limeSurveyRest.exportResponse(idFormulaireLimeSurvey, codLangue);
        /* Cas des formulaire rattachés à un canidat : On recherche les réponses du formulaire que l'on dedoublonne par rapport à la date de reponse */
        for (final SurveyReponse reponse : getListeReponseDedoublonneCandidat(listSurvey)) {
            if (reponse.getNumDossier() == null || reponse.getIdCandidature() != null) {
                continue;
            }
            /* Recup des info du candidat */
            final CompteMinima cptMin = candidatController.searchCptMinByNumDossier(reponse.getNumDossier());
            if (cptMin == null || cptMin.getCandidat() == null) {
                continue;
            }
            final Candidat candidat = cptMin.getCandidat();
            final FormulaireCandidatPK pk = new FormulaireCandidatPK(candidat.getIdCandidat(), idFormulaireLimeSurvey);
            LocalDateTime timeReponse;
            try {
                timeReponse = LocalDateTime.parse(reponse.getSubmitdate(), formatterDateTimeWS);
            } catch (final Exception e) {
                timeReponse = LocalDateTime.now();
            }
            /* Consitution de la réponse */
            FormulaireCandidat formulaireCandidat = formulaireCandidatRepository.findOne(pk);
            if (formulaireCandidat == null) {
                formulaireCandidat = new FormulaireCandidat();
                formulaireCandidat.setId(pk);
                formulaireCandidat.setCandidat(candidat);
                formulaireCandidat.setReponsesFormulaireCandidat(getTextReponseSurvey(reponse.getMapReponses()));
                formulaireCandidat.setDatReponseFormulaireCandidat(timeReponse);
                logger.debug("Enr. reponse formulaire candidat : " + formulaireCandidat);
                formulaireCandidatRepository.save(formulaireCandidat);
            } else if (timeReponse.isAfter(formulaireCandidat.getDatReponseFormulaireCandidat())) {
                formulaireCandidat.setReponsesFormulaireCandidat(getTextReponseSurvey(reponse.getMapReponses()));
                formulaireCandidat.setDatReponseFormulaireCandidat(timeReponse);
                logger.debug("Enr. reponse formulaire candidat : " + formulaireCandidat);
                formulaireCandidatRepository.save(formulaireCandidat);
            }
        }
        /* Cas des formulaire rattachés à une candidature : On recherche les réponses du formulaire que l'on dedoublonne par rapport à la date de reponse */
        for (final SurveyReponse reponse : getListeReponseDedoublonneCandidature(listSurvey)) {
            if (!MethodUtils.isInteger(reponse.getIdCandidature())) {
                continue;
            }
            /* Recup des info de la candidature */
            final Candidature cand = candidatureController.loadCandidature(Integer.valueOf(reponse.getIdCandidature()));
            if (cand == null) {
                continue;
            }
            final FormulaireCandidaturePK pk = new FormulaireCandidaturePK(cand.getIdCand(), idFormulaireLimeSurvey);
            LocalDateTime timeReponse;
            try {
                timeReponse = LocalDateTime.parse(reponse.getSubmitdate(), formatterDateTimeWS);
            } catch (final Exception e) {
                timeReponse = LocalDateTime.now();
            }
            /* Consitution de la réponse */
            FormulaireCandidature formulaireCand = formulaireCandidatureRepository.findOne(pk);
            if (formulaireCand == null) {
                formulaireCand = new FormulaireCandidature();
                formulaireCand.setId(pk);
                formulaireCand.setCandidature(cand);
                formulaireCand.setReponsesFormulaireCand(getTextReponseSurvey(reponse.getMapReponses()));
                formulaireCand.setDatReponseFormulaireCand(timeReponse);
                logger.debug("Enr. reponse formulaire candidature : " + formulaireCand);
                formulaireCandidatureRepository.save(formulaireCand);
            } else if (timeReponse.isAfter(formulaireCand.getDatReponseFormulaireCand())) {
                formulaireCand.setReponsesFormulaireCand(getTextReponseSurvey(reponse.getMapReponses()));
                formulaireCand.setDatReponseFormulaireCand(timeReponse);
                logger.debug("Enr. reponse formulaire candidature : " + formulaireCand);
                formulaireCandidatureRepository.save(formulaireCand);
            }
        }
    } catch (final Exception e) {
        logger.error("Erreur WebService LimeSurvey (idFormulaireLimeSurvey=" + idFormulaireLimeSurvey + ")", e);
        return;
    }
}
Also used : CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) LocalDateTime(java.time.LocalDateTime) FormulaireCandidatPK(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidatPK) SurveyReponse(fr.univlorraine.ecandidat.controllers.rest.SurveyReponse) FormulaireCandidaturePK(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidaturePK) FormulaireCandidature(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) FormulaireCandidature(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature)

Aggregations

FormulaireCandidat (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat)2 FormulaireCandidature (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature)2 SurveyReponse (fr.univlorraine.ecandidat.controllers.rest.SurveyReponse)1 Candidat (fr.univlorraine.ecandidat.entities.ecandidat.Candidat)1 Candidature (fr.univlorraine.ecandidat.entities.ecandidat.Candidature)1 CentreCandidature (fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature)1 CompteMinima (fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima)1 FormulaireCand (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand)1 FormulaireCandidatPK (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidatPK)1 FormulaireCandidaturePK (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidaturePK)1 TypeStatutPiece (fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece)1 FormulairePresentation (fr.univlorraine.ecandidat.utils.bean.presentation.FormulairePresentation)1 LocalDateTime (java.time.LocalDateTime)1 ArrayList (java.util.ArrayList)1