Search in sources :

Example 1 with FormulaireCandPK

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

Aggregations

Candidature (fr.univlorraine.ecandidat.entities.ecandidat.Candidature)1 FormulaireCand (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand)1 FormulaireCandPK (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandPK)1 FormulaireCandidature (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature)1 TypeStatutPiece (fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece)1 ConfirmWindow (fr.univlorraine.ecandidat.views.windows.ConfirmWindow)1