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);
}
}
Aggregations