use of fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece 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;
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece 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);
}
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece in project esup-ecandidat by EsupPortail.
the class CandidaturePieceController method addFileToPieceJustificative.
/**
* Ajoute un fichier a une pj
* @param pieceJustif
* @param candidature
* @param listener
*/
public void addFileToPieceJustificative(final PjPresentation pieceJustif, final Candidature candidature, final CandidatureListener listener) {
/* Verification que le service n'est pas en maintenance */
if (fileController.isFileServiceMaintenance(true)) {
return;
}
Assert.notNull(candidature, applicationContext.getMessage("assert.notNull", null, UI.getCurrent().getLocale()));
/* Verrou */
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
final String user = userController.getCurrentNoDossierCptMinOrLogin();
final String cod = ConstanteUtils.TYPE_FICHIER_PJ_CAND + "_" + candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin() + "_" + candidature.getIdCand() + "_" + pieceJustif.getPieceJustif().getIdPj();
final UploadWindow uw = new UploadWindow(cod, ConstanteUtils.TYPE_FICHIER_CANDIDAT, candidature, pieceJustif.getPJCommune(), false);
uw.addUploadWindowListener(file -> {
if (file == null) {
return;
}
/* Verrou */
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), pieceJustif.getIdCandidature());
PjCand pjCand = pjCandRepository.findOne(pk);
if (pjCand == null) {
pjCand = new PjCand(pk, user, candidature, pieceJustif.getPieceJustif());
}
final Fichier fichier = fileController.createFile(file, user, ConstanteUtils.TYPE_FICHIER_CANDIDAT);
if (isPjModified(pieceJustif, candidature, true, listener)) {
FichierFiabilisation fichierFiabilisation = new FichierFiabilisation(fichier);
fichierFiabilisation = fichierFiabilisationRepository.save(fichierFiabilisation);
try {
fileController.deleteFichier(fichier);
fichierFiabilisationRepository.delete(fichierFiabilisation);
} catch (final FileException e) {
}
uw.close();
return;
}
pjCand.setLibFilePjCand(fichier.getNomFichier());
pjCand.setUserModPjCand(user);
pjCand.setFichier(fichier);
final TypeStatutPiece statutTr = tableRefController.getTypeStatutPieceTransmis();
pjCand.setTypeStatutPiece(statutTr);
pjCandRepository.save(pjCand);
// obligé de recharger l'objet car le datetime est arrondi :(
final PjCand pjCandSave = pjCandRepository.findOne(pk);
pieceJustif.setFilePj(fichier);
pieceJustif.setCodStatut(statutTr.getCodTypStatutPiece());
pieceJustif.setLibStatut(i18nController.getI18nTraduction(statutTr.getI18nLibTypStatutPiece()));
pieceJustif.setDatModification(pjCandSave.getDatModPjCand());
candidature.setUserModCand(user);
candidature.updatePjCand(pjCandSave);
candidature.setDatModCand(LocalDateTime.now());
final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pieceJustif, candidatureSave);
Notification.show(applicationContext.getMessage("window.upload.success", new Object[] { file.getFileName() }, UI.getCurrent().getLocale()), Type.TRAY_NOTIFICATION);
uw.close();
});
UI.getCurrent().addWindow(uw);
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece in project esup-ecandidat by EsupPortail.
the class CandidaturePieceController method setIsConcernedPieceJustificative.
/**
* Change le statut est concerne d'une pj
* @param pieceJustif
* @param isConcerned
* @param candidature
* @param listener
*/
public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif, 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("pj.window.concerne", new Object[] { pieceJustif.getLibPj() }, UI.getCurrent().getLocale()), applicationContext.getMessage("pj.window.conditionnel.title", null, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(event -> {
/* Verrou */
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
if (isPjModified(pieceJustif, candidature, true, listener)) {
return;
}
PjCand pjCand = null;
if (pieceJustif.getPJCommune()) {
final List<PjCand> listePjCand = pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(pieceJustif.getPieceJustif().getIdPj(), candidature.getCandidat().getIdCandidat(), true);
if (listePjCand != null && listePjCand.size() > 0) {
// on cherche d'abord en priorité si la pièce est présente sur la candidature
final Optional<PjCand> pjCandOpt = listePjCand.stream().filter(e -> e.getCandidature().getIdCand().equals(pieceJustif.getIdCandidature())).findFirst();
if (pjCandOpt.isPresent()) {
pjCand = pjCandOpt.get();
} else {
pjCand = listePjCand.get(0);
}
}
} else {
final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
pjCand = pjCandRepository.findOne(pk);
}
if (pjCand != null && pjCand.getFichier() == null) {
pjCandRepository.delete(pjCand);
candidature.setUserModCand(user);
candidature.setDatModCand(LocalDateTime.now());
candidature.removePjCand(pjCand);
final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
pieceJustif.setCodStatut(statutAtt.getCodTypStatutPiece());
pieceJustif.setLibStatut(i18nController.getI18nTraduction(statutAtt.getI18nLibTypStatutPiece()));
pieceJustif.setDatModification(null);
final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pieceJustif, candidatureSave);
}
});
UI.getCurrent().addWindow(confirmWindow);
} else {
final ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("pj.window.nonConcerne", new Object[] { pieceJustif.getLibPj() }, UI.getCurrent().getLocale()), applicationContext.getMessage("pj.window.conditionnel.title", null, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(event -> {
/* Verrou */
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
if (isPjModified(pieceJustif, candidature, true, listener)) {
return;
}
PjCand pjCand = null;
final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
if (pieceJustif.getPJCommune()) {
final List<PjCand> listePjCand = pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(pieceJustif.getPieceJustif().getIdPj(), candidature.getCandidat().getIdCandidat(), true);
if (listePjCand != null && listePjCand.size() > 0) {
// on cherche d'abord en priorité si la pièce est présente sur la candidature
final Optional<PjCand> pjCandOpt = listePjCand.stream().filter(e -> e.getCandidature().getIdCand().equals(pieceJustif.getIdCandidature())).findFirst();
if (pjCandOpt.isPresent()) {
pjCand = pjCandOpt.get();
} else {
pjCand = listePjCand.get(0);
}
}
} else {
pjCand = pjCandRepository.findOne(pk);
}
if (pjCand == null) {
pjCand = new PjCand(pk, user, candidature, pieceJustif.getPieceJustif());
pjCand.setLibFilePjCand(null);
pjCand.setUserModPjCand(user);
pjCand.setFichier(null);
final TypeStatutPiece statutNotConcern = tableRefController.getTypeStatutPieceNonConcerne();
pieceJustif.setCodStatut(statutNotConcern.getCodTypStatutPiece());
pieceJustif.setLibStatut(i18nController.getI18nTraduction(statutNotConcern.getI18nLibTypStatutPiece()));
pjCand.setTypeStatutPiece(statutNotConcern);
pjCand = pjCandRepository.saveAndFlush(pjCand);
// obligé de recharger l'objet car le datetime est arrondi :(
final PjCand pjCandSave = pjCandRepository.findOne(pk);
pieceJustif.setFilePj(null);
pieceJustif.setCodStatut(statutNotConcern.getCodTypStatutPiece());
pieceJustif.setLibStatut(i18nController.getI18nTraduction(statutNotConcern.getI18nLibTypStatutPiece()));
pieceJustif.setIdCandidature(candidature.getIdCand());
pieceJustif.setDatModification(pjCandSave.getDatModPjCand());
candidature.setUserModCand(user);
candidature.updatePjCand(pjCandSave);
candidature.setDatModCand(LocalDateTime.now());
final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pieceJustif, candidatureSave);
}
});
UI.getCurrent().addWindow(confirmWindow);
}
}
use of fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece in project esup-ecandidat by EsupPortail.
the class NomenclatureController method majTypeStatutPiece.
/**
* Met a jour un type de statut de piece
* @param typeStatutPiece
*/
private void majTypeStatutPiece(final TypeStatutPiece typeStatutPiece) {
final TypeStatutPiece typeStatutPiceLoad = typeStatutPieceRepository.findByCodTypStatutPiece(typeStatutPiece.getCodTypStatutPiece());
if (typeStatutPiceLoad == null) {
final TypeTraduction typeTrad = typeTraductionRepository.findOne(NomenclatureUtils.TYP_TRAD_TYP_STATUT_PIECE);
final I18n i18n = i18nRepository.saveAndFlush(new I18n(typeTrad));
final I18nTraduction trad = new I18nTraduction(typeStatutPiece.getLibTypStatutPiece(), i18n, cacheController.getLangueDefault());
i18nTraductionRepository.saveAndFlush(trad);
typeStatutPiece.setI18nLibTypStatutPiece(i18n);
typeStatutPieceRepository.saveAndFlush(typeStatutPiece);
}
}
Aggregations