use of fr.univlorraine.ecandidat.utils.bean.presentation.PjPresentation 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.utils.bean.presentation.PjPresentation in project esup-ecandidat by EsupPortail.
the class CandidatureController method downloadDossier.
/**
* telecharge le dossier
* @param candidature
* @param listePresentation
* @param listeDatePresentation
* @param listePj
* @param listeForm
* @param addPj
* @return l'InputStream du dossier
*/
public OnDemandFile downloadDossier(final Candidature candidature, final List<SimpleTablePresentation> listePresentation, final List<SimpleTablePresentation> listeDatePresentation, final List<PjPresentation> listePj, final List<FormulairePresentation> listeForm, final Boolean addPj) {
/* Variables utiles */
final String numDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
final String nom = candidature.getCandidat().getNomPatCandidat();
final String prenom = candidature.getCandidat().getPrenomCandidat();
final String codForm = candidature.getFormation().getCodForm();
final String libForm = candidature.getFormation().getLibForm();
/* Nom du fichier */
final String fileName = applicationContext.getMessage("candidature.download.file", new Object[] { numDossier, nom, prenom, codForm }, UI.getCurrent().getLocale());
// Les parametres des PJ
final Boolean enableAddApogeePJDossier = parametreController.getIsAddApogeePJDossier();
// Font
final PDFont font = PDType1Font.HELVETICA_BOLD;
// le dossier outStream
ByteArrayInputStream bisDossier = null;
// liste des InputStream à fermer
final List<InputStream> listeInputStreamToClose = new ArrayList<>();
/* Génération du dossier principal */
try {
bisDossier = generateDossier(candidature, listePresentation, listeDatePresentation, listePj, listeForm);
if (bisDossier == null) {
Notification.show(applicationContext.getMessage("candidature.download.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return null;
}
} catch (IOException | XDocReportException e2) {
Notification.show(applicationContext.getMessage("candidature.download.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
logger.error("erreur a la génération du dossier", e2);
return null;
}
ByteArrayInOutStream out = new ByteArrayInOutStream();
InputStream is = null;
try {
/* Merger */
final PDFMergerUtility ut = new PDFMergerUtility();
/* Propriétés du document */
final PDDocumentInformation info = new PDDocumentInformation();
info.setTitle(numDossier + "_" + nom + "_" + prenom + "_" + codForm);
info.setAuthor(ConstanteUtils.APP_NAME);
info.setSubject(nom + " " + prenom + " (" + numDossier + ") / " + libForm + " (" + codForm + ")");
final Calendar calendar = Calendar.getInstance(UI.getCurrent().getLocale());
info.setCreationDate(calendar);
info.setModificationDate(calendar);
ut.setDestinationDocumentInformation(info);
/* Ajout du dossier */
ut.addSource(bisDossier);
/* Gestion des erreurs de pj */
Boolean errorAddPj = false;
final List<String> fileNameError = new ArrayList<>();
/* Calcul si besoin d'ajouter les pj */
Integer nbFilePJ = 0;
for (final PjPresentation pj : listePj) {
if (pj.getFilePj() != null) {
nbFilePJ++;
}
}
if (addPj && nbFilePJ > 0 && !fileController.isFileServiceMaintenance(applicationContext.getMessage("file.service.maintenance.dossier", null, UI.getCurrent().getLocale()))) {
for (final PjPresentation e : listePj) {
// listePj.forEach(e->{
try {
// titre header
final String textHeader = e.getLibPj();
// PJ doit etre à true
if (e.getFilePj() != null && (e.getPjCandidatFromApogee() == null || (e.getPjCandidatFromApogee() != null && enableAddApogeePJDossier))) {
final Fichier file = e.getFilePj();
final String nameFile = file.getNomFichier();
final InputStream inputStreamFile = fileController.getInputStreamFromPjPresentation(e);
// on doit fermer l'inputStream apres le merge donc je stock le stream et le ferme apres
listeInputStreamToClose.add(inputStreamFile);
// cas du PDF
if (inputStreamFile != null && MethodUtils.isPdfFileName(nameFile)) {
// chargement du pdf avant de l'ajouter -> evite de compiler avec des fichiers corrompus
final BufferedInputStream bufferedInputStreamFile = new BufferedInputStream(inputStreamFile);
// on doit fermer l'inputStream apres le merge donc je stock le stream et le ferme apres
listeInputStreamToClose.add(bufferedInputStreamFile);
try {
// on place un marker au max du buffer du stream (mark = nb byte qu'il peut lire avant d'etre invalide.. mais comme on lit tout le fichier..)
bufferedInputStreamFile.mark(ConstanteUtils.MAX_BUFFER_SIZE);
// lecture du fichier pour vérifier s'il n'est pas corrompue
final PDDocument doc = PDDocument.load(bufferedInputStreamFile);
// cloture immédiate du fichier pour libérer la mémoire
MethodUtils.closeRessource(doc);
// on replace le bufferedInputStreamFile au début
bufferedInputStreamFile.reset();
// on ajoute l'inputStream
ut.addSource(bufferedInputStreamFile);
} catch (final Exception ex1) {
logger.warn("fichier pdf '" + nameFile + "' en erreur et non ajouté au dossier '" + fileName + "'", ex1);
errorAddPj = true;
fileNameError.add(nameFile);
}
} else if (inputStreamFile != null && MethodUtils.isImgFileName(nameFile)) {
// creation document
final PDDocument document = new PDDocument();
final ByteArrayInOutStream baosImg = new ByteArrayInOutStream();
ByteArrayInputStream bis = null;
try {
// chargement page A4
final PDRectangle PAGE_SIZE_A4 = PDRectangle.A4;
// creation page
final PDPage page = new PDPage(PAGE_SIZE_A4);
// ajout de la page
document.addPage(page);
// Stream du document
final PDPageContentStream contentStream = new PDPageContentStream(document, page);
// margin top est calculée si un text de titre a été ajouté
Float marginTop = addHeaderPJ(textHeader, font, PAGE_SIZE_A4, contentStream);
// on ajoute la marge sous le text (ou la marge depuis le haut du doc si pas de
// text)
marginTop = marginTop + ConstanteUtils.DOSSIER_MARGIN;
// creation de l'image
PDImageXObject img = null;
// JPG
if (MethodUtils.isJpgFileName(nameFile)) {
img = JPEGFactory.createFromStream(document, inputStreamFile);
} else // PNG
if (MethodUtils.isPngFileName(nameFile)) {
img = LosslessFactory.createFromImage(document, ImageIO.read(inputStreamFile));
}
// calcul de la largeur et hauteur de l'image
Float imgWidth = (float) img.getWidth();
Float imgHeight = (float) img.getHeight();
// calcul de la largeur et hauteur de la page moins les deux marges
final Float a4Width = PAGE_SIZE_A4.getWidth() - 2 * ConstanteUtils.DOSSIER_MARGIN;
final Float a4Height = PAGE_SIZE_A4.getHeight() - ConstanteUtils.DOSSIER_MARGIN - marginTop;
// calcul du coef à appliquer si l'image est trop grande
Float coef = 1.0f;
if (imgWidth > a4Width) {
coef = a4Width / imgWidth;
imgWidth = imgWidth * coef;
imgHeight = imgHeight * coef;
}
// le nouveau coef
if (imgHeight > a4Height) {
coef = a4Height / imgHeight;
imgWidth = imgWidth * coef;
imgHeight = imgHeight * coef;
}
// ecriture de l'image
contentStream.drawImage(img, ConstanteUtils.DOSSIER_MARGIN, PAGE_SIZE_A4.getHeight() - imgHeight - marginTop, imgWidth, imgHeight);
// il faut d'abord fermer le flux
MethodUtils.closeRessource(contentStream);
document.save(baosImg);
/* Creation du flux */
bis = baosImg.getInputStream();
/* Ajout de la page au document */
ut.addSource(bis);
} catch (final Exception e1) {
errorAddPj = true;
fileNameError.add(nameFile);
logger.warn("fichier image '" + nameFile + "' en erreur et non ajouté au dossier '" + fileName + "'", e1);
} finally {
/* Nettoyage des ressources */
MethodUtils.closeRessource(document);
MethodUtils.closeRessource(bis);
MethodUtils.closeRessource(baosImg);
}
}
}
} catch (final Exception e1) {
errorAddPj = true;
final String nameFile = e.getFilePj() != null ? e.getFilePj().getNomFichier() : "-";
if (e.getFilePj() != null) {
fileNameError.add(e.getFilePj().getNomFichier());
}
logger.warn("fichier '" + nameFile + "' en erreur et non ajouté au dossier '" + fileName + "'", e1);
}
}
}
if (errorAddPj) {
String fileNamesError = "";
if (fileNameError.size() > 0) {
fileNamesError = " : " + fileNameError.stream().collect(Collectors.joining(", "));
}
Notification.show(applicationContext.getMessage("candidature.download.encoding.pj", null, UI.getCurrent().getLocale()) + fileNamesError, Type.WARNING_MESSAGE);
}
ut.setDestinationFileName(fileName);
ut.setDestinationStream(out);
ut.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
is = pdfManager.cryptAndSignPdf(out, UI.getCurrent().getLocale());
return new OnDemandFile(fileName, is);
} catch (final Exception e) {
logger.warn("erreur a la génération du dossier '" + fileName + "'", e);
try {
out = new ByteArrayInOutStream();
final PDFMergerUtility ut = new PDFMergerUtility();
ut.addSource(generateDossier(candidature, listePresentation, listeDatePresentation, listePj, listeForm));
ut.setDestinationFileName(fileName);
ut.setDestinationStream(out);
ut.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
is = pdfManager.cryptAndSignPdf(out, UI.getCurrent().getLocale());
Notification.show(applicationContext.getMessage("candidature.download.error.pj", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return new OnDemandFile(fileName, is);
} catch (final Exception e2) {
Notification.show(applicationContext.getMessage("candidature.download.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
logger.error("erreur a la génération du dossier", e2);
return null;
}
} finally {
// fermeture des fichiers
MethodUtils.closeRessource(is);
MethodUtils.closeRessource(out);
MethodUtils.closeRessource(bisDossier);
/* besoin de fermer les pdf apres coup */
listeInputStreamToClose.forEach(inputStreamFile -> {
MethodUtils.closeRessource(inputStreamFile);
});
listeInputStreamToClose.clear();
}
}
use of fr.univlorraine.ecandidat.utils.bean.presentation.PjPresentation in project esup-ecandidat by EsupPortail.
the class CandidaturePieceController method isPjModified.
/**
* Methode inutilisée, controle dans le batch
* @param pieceJustif
* @param candidature
* @return true si une pièce existe alors qu'on veut l'ajouter
*/
/* public Boolean controlPjAdd(PjPresentation pieceJustif, Candidature
* candidature, CandidatureListener listener){ if
* (!candidature.getFormation().getTemDematForm()){ return false; } if
* (pieceJustif.getPjCandidatFromApogee() != null){ return false; } Boolean
* needToReload = false; //Le fichier de la pièce devrai être a null, sinon ca
* veut dire que le listener d'ajout de pièce n'a pas fonctionné if
* (pieceJustif.getFilePj()!=null){ logger.
* debug("Ajout PJ en erreur, rechargement demandé, la pièce devrait être null.."
* ); needToReload = true; }else if (pieceJustif.getPJCommune()){ //Si commune,
* on recherche la pièce dans toutes candidatures pour trouver si un fichier a
* été déposé List<PjCand> listePjCand = pjCandRepository.
* findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc
* (pieceJustif.getPieceJustif().getIdPj(),
* candidature.getCandidat().getIdCandidat(), true); if (listePjCand!=null &&
* listePjCand.size()>0 &&
* listePjCand.stream().filter(e->e.getFichier()!=null).count()>0){
* logger.debug("Ajout PJ en erreur, piece commune nok"); needToReload = true; }
* }else{ //Sinon, on recherche dans la candidature PjCandPK pk = new
* PjCandPK(pieceJustif.getPieceJustif().getIdPj(),candidature.getIdCand());
* PjCand pjCand = pjCandRepository.findOne(pk);
* if (pjCand!=null && pjCand.getFichier()!=null){
* logger.debug("Ajout PJ en erreur, piece non commune nok"); needToReload =
* true; } } if (needToReload){
* logger.debug("Ajout PJ en erreur, rechargement demandé");
* Notification.show(applicationContext.getMessage("pj.add.error", null,
* UI.getCurrent().getLocale()), Type.WARNING_MESSAGE); Candidature
* candidatureLoad = candidatureRepository.findOne(candidature.getIdCand());
* listener.reloadAllPiece(getPjCandidature(candidatureLoad), candidatureLoad);
* return true; } return false; } */
/**
* Methode qui vérifie si la PJ a été modifiée par qqun d'autre obligatoire pour
* les PJ commune qui peuvent etre modifiées dans une autre candidature on se
* base sur la date de modification
* @param pieceJustif
* @return true si la PJ a été modifiée
*/
public Boolean isPjModified(final PjPresentation pieceJustif, final Candidature candidature, final Boolean showNotif, final CandidatureListener listener) {
if (!candidature.getFormation().getTemDematForm()) {
return false;
}
if (pieceJustif.getPjCandidatFromApogee() != null) {
logger.debug("Pas de verification pièce pour les PJ d'Apogée : " + pieceJustif);
return false;
}
logger.debug("Verification pièce : " + pieceJustif);
Boolean needToReload = false;
if (pieceJustif.getPJCommune()) {
final List<PjCand> listePjCand = pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(pieceJustif.getPieceJustif().getIdPj(), candidature.getCandidat().getIdCandidat(), true);
PjCand pjCandFind = null;
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()) {
pjCandFind = pjCandOpt.get();
} else {
pjCandFind = listePjCand.get(0);
}
}
logger.debug("Pièces trouvées : " + listePjCand.size() + " : " + pjCandFind);
// nouvelle pièce, si il en existe une, on recharge
if (pieceJustif.getDatModification() == null) {
// la piece etait vide et on en a ajouté une
if (pjCandFind != null) {
logger.debug("Cas no1, pièces nouvelle et pièce trouvée : " + pieceJustif.getDatModification() + " - " + pjCandFind);
needToReload = true;
}
} else /* ce n'est pas une nouvelle pièce, on vérifie : - qu'elle n'a pas été supprimée
* en route - que sa date de modif est différente */
{
// piece supprimée
if (pjCandFind == null) {
logger.debug("Cas no2, pièces vide : " + pjCandFind);
needToReload = true;
} else // !pjCandFind.getDatModPjCand().equals(pieceJustif.getDatModification())){
if (!pjCandFind.getDatModPjCand().equals(pieceJustif.getDatModification())) {
needToReload = true;
logger.debug("Cas no3, dates différente : " + pieceJustif.getDatModification() + " - " + pjCandFind.getDatModPjCand() + " - test = " + pjCandFind.getDatModPjCand().equals(pieceJustif.getDatModification()));
}
}
} else {
// si pièce non commune, présente dans la fenetre mais absente en base
if (pieceJustif.getDatModification() != null) {
final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
final PjCand pjCand = pjCandRepository.findOne(pk);
if (pjCand == null) {
logger.debug("Cas no4, pièce non commune mais supprimée");
needToReload = true;
}
}
}
/* Si on est dans un des deux cas, on recharge la liste de pièces */
if (needToReload) {
logger.debug("Rechargement demandé");
if (showNotif) {
Notification.show(applicationContext.getMessage("pj.modified", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
}
final Candidature candidatureLoad = candidatureRepository.findOne(candidature.getIdCand());
listener.reloadAllPiece(getPjCandidature(candidatureLoad), candidatureLoad);
return true;
}
return false;
}
use of fr.univlorraine.ecandidat.utils.bean.presentation.PjPresentation in project esup-ecandidat by EsupPortail.
the class CandidaturePieceController method getPjCandidature.
/**
* @param candidature
* @return la liste des pj d'une candidature
*/
public List<PjPresentation> getPjCandidature(final Candidature candidature) {
final List<PjPresentation> liste = new ArrayList<>();
final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
final TypeStatutPiece statutValide = tableRefController.getTypeStatutPieceValide();
final Boolean isDemat = candidature.getFormation().getTemDematForm();
int i = 1;
for (final PieceJustif e : pieceJustifController.getPjForCandidature(candidature, true)) {
liste.add(getPjPresentation(e, candidature, statutAtt, statutValide, i, isDemat));
i++;
}
return liste;
}
use of fr.univlorraine.ecandidat.utils.bean.presentation.PjPresentation in project esup-ecandidat by EsupPortail.
the class CandidaturePieceController method getPjPresentation.
/**
* @param pj
* @param candidature
* @param statutAtt
* @param statutValide
* @param isDemat
* @return une piece de presentation
*/
private PjPresentation getPjPresentation(final PieceJustif pj, final Candidature candidature, final TypeStatutPiece statutAtt, final TypeStatutPiece statutValide, final Integer order, final Boolean isDemat) {
final String libPj = i18nController.getI18nTraduction(pj.getI18nLibPj());
final PjCand pjCand = getPjCandFromList(pj, candidature, isDemat);
String libStatut = null;
String codStatut = null;
String commentaire = null;
LocalDateTime datModification = null;
Integer idCandidature = null;
PjCandidat pjCandidatFromApogee = null;
String userMod = null;
Fichier fichier = null;
if (pjCand != null) {
fichier = pjCand.getFichier();
if (pjCand.getTypeStatutPiece() != null) {
libStatut = i18nController.getI18nTraduction(pjCand.getTypeStatutPiece().getI18nLibTypStatutPiece());
codStatut = pjCand.getTypeStatutPiece().getCodTypStatutPiece();
}
commentaire = pjCand.getCommentPjCand();
datModification = pjCand.getDatModPjCand();
idCandidature = pjCand.getCandidature().getIdCand();
userMod = getLibModStatut(pjCand.getUserModStatutPjCand(), pjCand.getDatModStatutPjCand());
} else {
if (isDemat) {
pjCandidatFromApogee = candidatPieceController.getPjCandidat(pj.getCodApoPj(), candidature.getCandidat());
if (pjCandidatFromApogee != null) {
fichier = new Fichier();
fichier.setFileFichier(pjCandidatFromApogee.getNomFicPjCandidat());
fichier.setNomFichier(pjCandidatFromApogee.getNomFicPjCandidat());
commentaire = applicationContext.getMessage("file.from.another.system", null, UI.getCurrent().getLocale());
libStatut = i18nController.getI18nTraduction(statutValide.getI18nLibTypStatutPiece());
codStatut = statutValide.getCodTypStatutPiece();
} else {
libStatut = i18nController.getI18nTraduction(statutAtt.getI18nLibTypStatutPiece());
codStatut = statutAtt.getCodTypStatutPiece();
idCandidature = candidature.getIdCand();
}
} else {
libStatut = i18nController.getI18nTraduction(statutAtt.getI18nLibTypStatutPiece());
codStatut = statutAtt.getCodTypStatutPiece();
idCandidature = candidature.getIdCand();
}
}
final Boolean commun = pj.getTemCommunPj() && !pj.getTemUnicitePj();
return new PjPresentation(pj, libPj, fichier, codStatut, libStatut, commentaire, pj.getTemConditionnelPj(), commun, datModification, idCandidature, order, pjCandidatFromApogee, userMod);
}
Aggregations