Search in sources :

Example 1 with FormulaireCand

use of fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand 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 FormulaireCand

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

the class CandidaturePieceController method setIsConcernedFormulaire.

/**
 * Change le statut est concerné d'un formulaire
 * @param formulaire
 * @param isConcerned
 * @param candidature
 * @param listener
 */
public void setIsConcernedFormulaire(final FormulairePresentation formulaire, final Boolean isConcerned, final Candidature candidature, final CandidatureListener listener) {
    Assert.notNull(candidature, applicationContext.getMessage("assert.notNull", null, UI.getCurrent().getLocale()));
    /* Verrou */
    if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
        return;
    }
    final String user = userController.getCurrentUserLogin();
    if (isConcerned) {
        final ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("formulaire.window.concerne", new Object[] { formulaire.getLibFormulaire() }, UI.getCurrent().getLocale()), applicationContext.getMessage("formulaire.window.conditionnel.title", null, UI.getCurrent().getLocale()));
        confirmWindow.addBtnOuiListener(event -> {
            /* Verrou */
            if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
                return;
            }
            final FormulaireCandPK pk = new FormulaireCandPK(formulaire.getFormulaire().getIdFormulaire(), candidature.getIdCand());
            final FormulaireCand formulaireCand = formulaireCandRepository.findOne(pk);
            if (formulaireCand != null) {
                formulaireCandRepository.delete(formulaireCand);
                candidature.setUserModCand(user);
                candidature.setDatModCand(LocalDateTime.now());
                candidature.removeFormulaireCand(formulaireCand);
                /* Vérification qu'il y a des réponses, si oui on passe à transmis, sinon en attente */
                if (formulaire.getReponses() != null && !formulaire.getReponses().isEmpty()) {
                    final TypeStatutPiece statutTrans = tableRefController.getTypeStatutPieceTransmis();
                    formulaire.setCodStatut(statutTrans.getCodTypStatutPiece());
                    formulaire.setLibStatut(i18nController.getI18nTraduction(statutTrans.getI18nLibTypStatutPiece()));
                } else {
                    final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
                    formulaire.setCodStatut(statutAtt.getCodTypStatutPiece());
                    formulaire.setLibStatut(i18nController.getI18nTraduction(statutAtt.getI18nLibTypStatutPiece()));
                }
                final Candidature candidatureSave = candidatureRepository.save(candidature);
                listener.formulaireModified(formulaire, candidatureSave);
            }
        });
        UI.getCurrent().addWindow(confirmWindow);
    } else {
        final ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("formulaire.window.nonConcerne", new Object[] { formulaire.getLibFormulaire() }, UI.getCurrent().getLocale()), applicationContext.getMessage("formulaire.window.conditionnel.title", null, UI.getCurrent().getLocale()));
        confirmWindow.addBtnOuiListener(event -> {
            /* Verrou */
            if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
                return;
            }
            final FormulaireCandPK pk = new FormulaireCandPK(formulaire.getFormulaire().getIdFormulaire(), candidature.getIdCand());
            FormulaireCand formulaireCand = formulaireCandRepository.findOne(pk);
            if (formulaireCand == null) {
                formulaireCand = new FormulaireCand(pk, user, candidature, formulaire.getFormulaire());
                formulaireCand.setUserModFormulaireCand(user);
                final TypeStatutPiece statutNotConcern = tableRefController.getTypeStatutPieceNonConcerne();
                formulaire.setCodStatut(statutNotConcern.getCodTypStatutPiece());
                formulaire.setLibStatut(i18nController.getI18nTraduction(statutNotConcern.getI18nLibTypStatutPiece()));
                formulaireCand = formulaireCandRepository.save(formulaireCand);
                candidature.setUserModCand(user);
                candidature.updateFormulaireCand(formulaireCand);
                candidature.setDatModCand(LocalDateTime.now());
                final Candidature candidatureSave = candidatureRepository.save(candidature);
                listener.formulaireModified(formulaire, candidatureSave);
            }
        });
        UI.getCurrent().addWindow(confirmWindow);
    }
}
Also used : FormulaireCand(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand) TypeStatutPiece(fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece) ConfirmWindow(fr.univlorraine.ecandidat.views.windows.ConfirmWindow) FormulaireCandPK(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandPK) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) FormulaireCandidature(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature)

Example 3 with FormulaireCand

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

the class CandidatureCtrCandController method getDatModPjForm.

/**
 * calcul la derniere modif de statut de PJ ou Formulaire
 * @param  candidature
 * @param  formatter
 * @return             la date de derniere modif
 */
private String getDatModPjForm(final Candidature candidature) {
    LocalDateTime dateMod = null;
    final Optional<FormulaireCand> formOpt = candidature.getFormulaireCands().stream().filter(e -> e.getDatModFormulaireCand() != null).sorted((e1, e2) -> (e2.getDatModFormulaireCand().compareTo(e1.getDatModFormulaireCand()))).findFirst();
    final Optional<FormulaireCandidat> formCandidatOpt = candidature.getCandidat().getFormulaireCandidats().stream().filter(e -> e.getDatReponseFormulaireCandidat() != null).sorted((e1, e2) -> (e2.getDatReponseFormulaireCandidat().compareTo(e1.getDatReponseFormulaireCandidat()))).findFirst();
    final Optional<PjCand> pjOpt = candidature.getPjCands().stream().filter(e -> e.getDatModStatutPjCand() != null).sorted((e1, e2) -> (e2.getDatModStatutPjCand().compareTo(e1.getDatModStatutPjCand()))).findFirst();
    /* On prend la derniere modif des formulaire_cand */
    if (formOpt.isPresent()) {
        dateMod = formOpt.get().getDatCreFormulaireCand();
    }
    /* on compare avec la derniere réponse FormulaireCandidat */
    if (formCandidatOpt.isPresent()) {
        final FormulaireCandidat form = formCandidatOpt.get();
        if (dateMod == null) {
            dateMod = form.getDatReponseFormulaireCandidat();
        } else {
            dateMod = (form.getDatReponseFormulaireCandidat().isAfter(dateMod)) ? form.getDatReponseFormulaireCandidat() : dateMod;
        }
    }
    /* on compare avec la derniere réponse des PJ */
    if (pjOpt.isPresent()) {
        final PjCand pj = pjOpt.get();
        if (dateMod == null) {
            dateMod = pj.getDatModStatutPjCand();
        } else {
            dateMod = (pj.getDatModStatutPjCand().isAfter(dateMod)) ? pj.getDatModStatutPjCand() : dateMod;
        }
    }
    if (dateMod == null) {
        return "";
    } else {
        return dateMod.format(formatterDate);
    }
}
Also used : LocalDateTime(java.time.LocalDateTime) Arrays(java.util.Arrays) TypeStatut(fr.univlorraine.ecandidat.entities.ecandidat.TypeStatut) LoggerFactory(org.slf4j.LoggerFactory) UI(com.vaadin.ui.UI) ExportListCandidatureOption(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureOption) PdfAttachement(fr.univlorraine.ecandidat.utils.PdfAttachement) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) Map(java.util.Map) PostItRepository(fr.univlorraine.ecandidat.repositories.PostItRepository) Campagne(fr.univlorraine.ecandidat.entities.ecandidat.Campagne) CtrCandActionCandidatureWindow(fr.univlorraine.ecandidat.views.windows.CtrCandActionCandidatureWindow) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Resource(javax.annotation.Resource) CandidatCursusPostBac(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusPostBac) Set(java.util.Set) TypeDecisionCandidature(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature) Collectors(java.util.stream.Collectors) List(java.util.List) Type(com.vaadin.ui.Notification.Type) OnDemandFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFile) LocalDate(java.time.LocalDate) Optional(java.util.Optional) ExportListCandidatureAdresse(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureAdresse) DeleteAvisWindowListener(fr.univlorraine.ecandidat.views.windows.CtrCandShowHistoWindow.DeleteAvisWindowListener) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) PjCand(fr.univlorraine.ecandidat.entities.ecandidat.PjCand) OpiRepository(fr.univlorraine.ecandidat.repositories.OpiRepository) TypeDecision(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecision) AvisMailBean(fr.univlorraine.ecandidat.utils.bean.mail.AvisMailBean) MainUI(fr.univlorraine.ecandidat.MainUI) LocalDateTime(java.time.LocalDateTime) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) PostIt(fr.univlorraine.ecandidat.entities.ecandidat.PostIt) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Notification(com.vaadin.ui.Notification) FormulaireCand(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand) CtrCandShowHistoWindow(fr.univlorraine.ecandidat.views.windows.CtrCandShowHistoWindow) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) LinkedHashSet(java.util.LinkedHashSet) TypeDecisionCandidatureRepository(fr.univlorraine.ecandidat.repositories.TypeDecisionCandidatureRepository) CandidatureMasseListener(fr.univlorraine.ecandidat.utils.ListenerUtils.CandidatureMasseListener) Logger(org.slf4j.Logger) TypeTraitement(fr.univlorraine.ecandidat.entities.ecandidat.TypeTraitement) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) Tag(fr.univlorraine.ecandidat.entities.ecandidat.Tag) ChangeCandidatureWindowListener(fr.univlorraine.ecandidat.views.windows.CtrCandActionCandidatureWindow.ChangeCandidatureWindowListener) ApplicationContext(org.springframework.context.ApplicationContext) DroitFonctionnalite(fr.univlorraine.ecandidat.entities.ecandidat.DroitFonctionnalite) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) CandidatCursusInterne(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusInterne) Component(org.springframework.stereotype.Component) CandidatureListener(fr.univlorraine.ecandidat.utils.ListenerUtils.CandidatureListener) DateTimeFormatter(java.time.format.DateTimeFormatter) CandidatureRepository(fr.univlorraine.ecandidat.repositories.CandidatureRepository) CtrCandPostItReadWindow(fr.univlorraine.ecandidat.views.windows.CtrCandPostItReadWindow) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) Formation(fr.univlorraine.ecandidat.entities.ecandidat.Formation) InputStream(java.io.InputStream) Assert(org.springframework.util.Assert) FormulaireCand(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand) PjCand(fr.univlorraine.ecandidat.entities.ecandidat.PjCand) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat)

Aggregations

FormulaireCand (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand)3 Candidature (fr.univlorraine.ecandidat.entities.ecandidat.Candidature)2 FormulaireCandidat (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat)2 FormulaireCandidature (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature)2 TypeStatutPiece (fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece)2 Notification (com.vaadin.ui.Notification)1 Type (com.vaadin.ui.Notification.Type)1 UI (com.vaadin.ui.UI)1 MainUI (fr.univlorraine.ecandidat.MainUI)1 Adresse (fr.univlorraine.ecandidat.entities.ecandidat.Adresse)1 Campagne (fr.univlorraine.ecandidat.entities.ecandidat.Campagne)1 Candidat (fr.univlorraine.ecandidat.entities.ecandidat.Candidat)1 CandidatCursusInterne (fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusInterne)1 CandidatCursusPostBac (fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusPostBac)1 CentreCandidature (fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature)1 Commission (fr.univlorraine.ecandidat.entities.ecandidat.Commission)1 CompteMinima (fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima)1 DroitFonctionnalite (fr.univlorraine.ecandidat.entities.ecandidat.DroitFonctionnalite)1 Formation (fr.univlorraine.ecandidat.entities.ecandidat.Formation)1 FormulaireCandPK (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandPK)1