Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package gestionEtat.imprimerBulletin; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Phrase; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import entities.Annee; import entities.Classe; import entities.Classecategorie; import entities.Classematiere; import entities.Eleve; import entities.Eleveanneeclasse; import entities.Evaluation; import entities.Matiere; import entities.Naturematiere; import entities.Personnel; import entities.Sequenceannee; import entities.Trimesteannee; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.Serializable; import java.util.List; import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; import org.primefaces.model.DualListModel; import utils.JsfUtil; import utils.PrintUtils; import utils.Utilitaires; /** * * @author Gervais */ @ManagedBean(name = "bulletinCtrl") @SessionScoped public class BulletinCtrl extends AbstractBulletinCtrl implements BulletinInterfaceCtrl, Serializable { @PostConstruct private void initEvaluation() { selectedEvaluation = new Evaluation(); evaluation = new Evaluation(); matiere = new Matiere(); personnel = new Personnel(); annee = anneeFacade.findByEtatSingle(true); trimestre = new Trimesteannee(); sequence = new Sequenceannee(); eleve = new Eleve(); pickList = new DualListModel<>(eleves, eleveTarget); classe = new Classe(); categorie = new Classecategorie(); classeCategorie = new Classecategorie(); eleveAnneeClasse = new Eleveanneeclasse(); } private void initCreate() { evaluation.setEleve(eleve); evaluation.setPersonnel(personnel); } @Override public void enregistrerBulletin() { if (FacesContext.getCurrentInstance().getExternalContext().getSessionMap().containsKey("user")) { if (eleveAnneeClasse.getId() != null) { classematieres.clear(); matieres.clear(); notesPropres.clear(); matiereCompses.clear(); eleveAnneeClasse = eleveAnneeClasseFacade.find(eleveAnneeClasse.getId()); if (sequence != null) { Annee an = anneeFacade.findByEtatSingle(true); Eleveanneeclasse eleveClasse = eleveAnneeClasseFacade.getEleveAnneeClaseByAnneClasse( eleveAnneeClasse.getEleve().getIdeleve(), an.getIdannee()); if (eleveClasse != null) { List<Naturematiere> nature = natureMatiereFacade.findAll(); if (!nature.isEmpty()) { List<Evaluation> notes = evaluationFacadeLocal.getByEleveAnneeSequence( eleveAnneeClasse.getEleve().getIdeleve(), an.getIdannee(), sequence.getIdsequencean()); /*if (!notes.isEmpty()) {*/ try { String bulletinName = "" + eleveAnneeClasse.getEleve().getNom() + "_" + eleveAnneeClasse.getEleve().getPrenom() + "_" + sequence.getIdsequence().getNom() + ".pdf"; Document bulletin = new Document(); PdfWriter.getInstance(bulletin, new FileOutputStream(Utilitaires.path + "/" + Utilitaires.repertoireParDefautBulletin + "/" + bulletinName)); bulletin.setMargins(5, 5, 5, 5); bulletin.addCreator("School Manager"); bulletin.setPageSize(PageSize.A4); bulletin.open(); //tableau qui va contenir les notes PdfPTable table = new PdfPTable(5); table.setComplete(true); //entete de bulletin table.addCell( PrintUtils.createPdfPCell("COLLEGE POZAM Anne Scolaire " + an.getCode() + " - " + (an.getCode() + 1) + " " + an.getTheme(), 5, detail)); table.addCell(PrintUtils.createPdfPCell( "BULLETIN DE NOTES DE : " + sequence.getIdsequence().getNom(), 5, true)); table.addCell(PrintUtils .createPdfPCell("Nom : " + eleveAnneeClasse.getEleve().getNom(), 2, false)); PdfPCell cellLogo = new PdfPCell(new Paragraph(" ")); cellLogo.setRowspan(2); table.addCell(cellLogo); table.addCell(PrintUtils.createPdfPCell( "Matricule : " + eleveAnneeClasse.getEleve().getMatricule(), 2, false)); table.addCell(PrintUtils.createPdfPCell( "Prnom : " + eleveAnneeClasse.getEleve().getPrenom(), 2, false)); //table.addCell("kenne"); PdfPCell cellClasse = new PdfPCell( new Paragraph("Classe : " + eleveClasse.getIdclasse().getNom())); cellClasse.setColspan(2); table.addCell(cellClasse); //debut de saisis de notes PdfPTable entete = new PdfPTable(5); table.addCell(new Paragraph("Dicipline")); table.addCell(PrintUtils.createPdfPCell("Note ", true)); table.addCell(PrintUtils.createPdfPCell("Cofficient ", true)); table.addCell(PrintUtils.createPdfPCell("Total", true)); table.addCell(PrintUtils.createPdfPCell("Apprciation", true)); //partie qui contient es totaux PdfPTable total = new PdfPTable(5); int totalCoef = 0; float totalPoint = 0; classematieres = classeMatiereFacade .get(eleveAnneeClasse.getIdclasse().getIdclasse()); if (!classematieres.isEmpty()) { for (Classematiere m : classematieres) { matieres.add(m.getIdmatiere()); } /*for (Evaluation e : notes) { if (matieres.contains(e.getIdmatiere())) { notesPropres.add(e); matiereCompses.add(e.getIdmatiere()); } }*/ for (int i = 0; i < nature.size(); i++) { table.addCell( PrintUtils.createPdfPCell("Matires " + nature.get(i).getLibelle(), 5, false, PrintUtils.blueFont)); int totalCoefBloc = 0; int totalPointBloc = 0; for (int a = 0; a < matieres.size(); a++) { if (matiereCompses.contains(matieres.get(a))) { //if (Objects.equals(notesPropres.get(a).getIdmatiere(), nature.get(i).getIdnaturematiere())) {; //decompte des coefficient et nombre point globaux //totalCoef += notesPropres.get(a).getIdmatiere().getCoeficient(); // totalPoint += notesPropres.get(a).getNote() * notesPropres.get(a).getIdmatiere().getCoeficient(); //decompte des coef et point par groupe //totalCoefBloc += notesPropres.get(a).getIdmatiere().getCoeficient(); //totalPointBloc += notesPropres.get(a).getNote() * notesPropres.get(a).getIdmatiere().getCoeficient(); // table.addCell(PrintUtils.createPdfPCell("" + notesPropres.get(a).getIdmatiere().getIdtypematiere().getLibelle(), false, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); //table.addCell(PrintUtils.createPdfPCell("" + notesPropres.get(a).getNote(), true, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); //table.addCell(PrintUtils.createPdfPCell("" + notesPropres.get(a).getIdmatiere().getCoeficient(), true, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); //table.addCell(PrintUtils.createPdfPCell("" + (notesPropres.get(a).getNote() * notesPropres.get(a).getIdmatiere().getCoeficient()), true, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); //table.addCell(PrintUtils.createPdfPCell("" + notesPropres.get(a).getObservation(), true, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.ITALIC))); // } } else { if (Objects.equals( matieres.get(a).getIdnaturematiere().getIdnaturematiere(), nature.get(i).getIdnaturematiere())) { //decompte des coefficient et nombre point globaux // totalCoef += matieres.get(a).get totalPoint += 0; //decompte des coef et point par groupe // totalCoefBloc += matieres.get(a).getCoeficient(); totalPointBloc += 0; // table.addCell(PrintUtils.createPdfPCell("" + matieres.get(a).getIdtypematiere().getLibelle(), false, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("O", true, new Font( Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); // table.addCell(PrintUtils.createPdfPCell("" + matieres.get(a).getCoeficient(), true, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("0", true, new Font( Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("Pas encore valu", true, new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.ITALIC))); } } } //le texte Total pour chaque bloc PdfPCell cellTotalBlocText = new PdfPCell( new Paragraph("Total Matires " + nature.get(i).getLibelle() + " ", new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL))); cellTotalBlocText.setColspan(2); table.addCell(cellTotalBlocText); table.addCell(PrintUtils.createPdfPCell("" + totalCoefBloc, true, new Font( Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL, BaseColor.RED))); table.addCell(PrintUtils.createPdfPCell("" + totalPointBloc, 2, true, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL, BaseColor.RED))); table.addCell(PrintUtils.createPdfPCell( "Moyenne Matires " + nature.get(i).getLibelle(), 3, false, PrintUtils.blueFont)); if (totalCoefBloc != 0) { table.addCell(PrintUtils.createPdfPCell( "" + (totalPointBloc / totalCoefBloc) + "/20", 2, true, PrintUtils.redFont)); } else { table.addCell(PrintUtils.createPdfPCell("......", 2, true, PrintUtils.redFont)); } table.addCell(PrintUtils.createPdfPCell(" ", 5, false)); } } else { } //on ecrit totaux table.addCell(PrintUtils.createPdfPCell("Totaux ", 2, false, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL, BaseColor.BLUE))); //on met le total de coefficient table.addCell(PrintUtils.createPdfPCell("" + totalCoef, true, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL, BaseColor.RED))); //on met le total de point table.addCell(PrintUtils.createPdfPCell("" + totalPoint, 2, true, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL, BaseColor.RED))); table.addCell(PrintUtils.createPdfPCell( "Moyenne de la " + sequence.getIdsequence().getNom(), 3, false, new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.BLUE))); if (totalCoef != 0) { table.addCell(PrintUtils.createPdfPCell((totalPoint / totalCoef) + "/20", 2, true, new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.RED))); } bulletin.add(table); bulletin.close(); JsfUtil.addSuccessMessage( "Opration russie,redirigez-vous dans le repertoire bulletin"); } catch (DocumentException ex) { Logger.getLogger(BulletinCtrl.class.getName()).log(Level.SEVERE, null, ex); } catch (FileNotFoundException ex) { Logger.getLogger(BulletinCtrl.class.getName()).log(Level.SEVERE, null, ex); } /*} else { JsfUtil.addErrorMessage("L'lve selectionn n a aucune note la squence slectionne"); }*/ } else { JsfUtil.addErrorMessage("Aucune nature de matiere parametre"); } } else { JsfUtil.addErrorMessage("l'eleve n a pas de classe"); } } else { JsfUtil.addErrorMessage("veuillez selectionner une squence !"); } } else { JsfUtil.addErrorMessage("Veuillez selectionner un lve"); } } else { String sc = FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath(); try { FacesContext.getCurrentInstance().getExternalContext().redirect(sc + "/login.html"); } catch (IOException ex) { Logger.getLogger(BulletinCtrl.class.getName()).log(Level.SEVERE, null, ex); } } } @Override public void modifier() { } @Override public void supprimer() { } @Override public void imprimerBulletinPdf(int eleve, int sequence, Annee annee) { //on declare une bulletin qui est un document; Document bulletin = new Document(PageSize.A4); //on declare le nom du bulletin String bulletinName; //l eleve qui a le bulletin Eleve eleve1 = eleveFacade.findById(eleve); // la sequence la quelle l'on veut imprimer le bulletin Sequenceannee sequence1 = new Sequenceannee(); Eleveanneeclasse anneeClasse = eleveAnneeClasseFacade.getEleveAnneeClaseByAnneClasse(eleve1.getIdeleve(), annee.getIdannee()); if (anneeClasse != null) { bulletinName = eleve1.getNom() + "_" + eleve1.getPrenom() + "_" + sequence1.getIdsequence().getNom() + ".pdf"; try { PdfWriter.getInstance(bulletin, new FileOutputStream(bulletinName)); bulletin.open(); bulletin.add(new Phrase("hello word")); } catch (Exception e) { e.getMessage(); } } else { JsfUtil.addErrorMessage("L'lve selectionn n 'a aucune classe"); } bulletin.close(); } @Override public void imprimerBulletinHtml() { System.out.println("Impression html types compte"); } @Override public void imprimerListeClasse() { if (FacesContext.getCurrentInstance().getExternalContext().getSessionMap().containsKey("user")) { if (classe != null) { Annee an = anneeFacade.findByEtatSingle(true); if (an != null) { List<Eleveanneeclasse> elevs = eleveAnneeClasseFacade.findByAnneeClasse(an.getIdannee(), classe.getIdclasse()); if (!elevs.isEmpty()) { try { String listeName = "liste_des_eleve_" + classe.getNom() + ".pdf"; Document liste = new Document(); liste.setMargins(2, 2, 2, 2); PdfWriter.getInstance(liste, new FileOutputStream(Utilitaires.path + "/" + Utilitaires.repertoireParDefautClasse + "/" + listeName)); liste.open(); PdfPTable table = new PdfPTable(4); table.setComplete(true); table.addCell(PrintUtils.createPdfPCell("Liste des lves de la " + classe.getNom() + " Anne Scolaire : " + an.getCode() + " - " + (an.getCode() + 1), 4, true)); table.addCell(PrintUtils.createPdfPCell("NOM", true, new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("PRENOM", true, new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("MATRICULE", true, new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("DATE DE NAISSANCE", true, new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL))); //debut d'ecriture des lignes; for (int i = 0; i < elevs.size(); i++) { table.addCell(PrintUtils.createPdfPCell("" + elevs.get(i).getEleve().getNom(), true, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("" + elevs.get(i).getEleve().getPrenom(), true, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell("" + elevs.get(i).getEleve().getMatricule(), true, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL))); table.addCell(PrintUtils.createPdfPCell( "" + elevs.get(i).getEleve().getDatenaissance().getDay() + "-" + elevs.get(i).getEleve().getDatenaissance().getMonth() + "-" + elevs.get(i).getEleve().getDatenaissance().getYear(), true, new Font(Font.FontFamily.TIMES_ROMAN, 11, Font.NORMAL))); } liste.add(table); liste.close(); JsfUtil.addSuccessMessage("Impression russie !"); } catch (FileNotFoundException | DocumentException ex) { Logger.getLogger(BulletinCtrl.class.getName()).log(Level.SEVERE, null, ex); } } else { JsfUtil.addErrorMessage("La classe selectionne n'a aucune !"); } } else { JsfUtil.addFatalErrorMessage("L'anne en cours n'est pas parametre"); } } else { JsfUtil.addErrorMessage("Veuillez selectionner une classe !"); } } else { String sc = FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath(); try { FacesContext.getCurrentInstance().getExternalContext().redirect(sc + "/login.html"); } catch (IOException ex) { Logger.getLogger(BulletinCtrl.class.getName()).log(Level.SEVERE, null, ex); } } } @Override public void imprimerFichePresence() { Personnel perso = (Personnel) FacesContext.getCurrentInstance().getExternalContext().getSessionMap() .get("current_user"); /*if(classe!=null){ if(semaineFin.after(semaineDebut)){ int reste = semaineFin.compareTo(semaineDebut); Annee an = anneeFacade.findByEtatSingle(true); if(an!=null){ List<Eleveanneeclasse>elevs = eleveAnneeClasse.findByAnneeClasse(an.getIdannee(), classe.getIdclasse()); if(!elevs.isEmpty()){ try { String listName = "liste_de_presence_de"+classe.getNom()+".pdf"; Document listePresence = new Document(); PdfWriter.getInstance(listePresence, new FileOutputStream(Utilitaires.path+"/"+listName)); listePresence.open(); PdfPTable table = new PdfPTable(36); PdfPCell cellEntete = new PdfPCell(new Paragraph("Fiche de la prsence de la classe"+classe.getNom()+"de la semaine du")); cellEntete.setColspan(6); table.addCell(cellEntete); PdfPCell cellEleve = new PdfPCell(new Paragraph("Eleve")); cellEleve.setColspan(6); table.addCell(cellEleve); PdfPCell cellLundi = new PdfPCell(new Paragraph("Lundi")); cellLundi.setColspan(6); table.addCell(cellLundi); PdfPCell cellMardi = new PdfPCell(new Paragraph("Mardi")); cellLundi.setColspan(6); table.addCell(cellMardi); PdfPCell cellMercredi = new PdfPCell(new Paragraph("Mercredi")); cellLundi.setColspan(6); table.addCell(cellMercredi); PdfPCell cellJeudi = new PdfPCell(new Paragraph("Jeudi")); cellLundi.setColspan(6); table.addCell(cellJeudi); PdfPCell cellVendredi = new PdfPCell(new Paragraph("Vendredi")); cellLundi.setColspan(6); table.addCell(cellVendredi); listePresence.add(table); listePresence.close(); JsfUtil.addSuccessMessage("Opration russie"); } catch (FileNotFoundException ex) { Logger.getLogger(BulletinCtrl.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(BulletinCtrl.class.getName()).log(Level.SEVERE, null, ex); } }else{ JsfUtil.addErrorMessage("la classe selectionne n'a aucun lve !"); } }else{ JsfUtil.addErrorMessage("Aucune anne en cours n'est parametrs, contactez l'administrateur !"); } }else{ JsfUtil.addErrorMessage("Les dates sont incorrectes !"); } }else{ JsfUtil.addErrorMessage("veuillez selectionner une classe"); } */ } public void handleEleveChange() { Annee an = anneeFacade.findByEtatSingle(true); if (categorie.getId() != null) { categorie = classecategorieFacadeLocal.find(categorie.getId()); eleveAnneeClasses = eleveAnneeClasseFacade.findByAnneeClasse(an.getIdannee(), categorie.getIdclasse().getIdclasse()); } else { eleveAnneeClasses.clear(); } } }