Exemplo n.º 1
0
  private PdfPTable buildExpose(Fiche fiche) {
    PdfPCell cell;
    PdfPTable table = new PdfPTable(new float[] {1, 0.5f, 4.5f});
    table.setWidthPercentage(100);

    cell = new PdfPCell(new Phrase("2_ Exposé des faits ", FONT_NORMAL));
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    cell.setColspan(3);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("GDH Appel: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorder(0);
    table.addCell(cell);

    Date gdhAppelDate = fiche.getGdhAppel();

    String pattern = "dd/MM/yyyy HH:mm";
    SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);

    String gdhAppel = dateFormat.format(gdhAppelDate);

    cell = new PdfPCell(new Phrase(gdhAppel, FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    cell.setColspan(2);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("GDH Arrivée: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorder(0);
    table.addCell(cell);

    Date gdhArriveeDate = fiche.getGdhArrivee();
    String gdhArrivee = "";
    if (gdhArriveeDate != null) gdhArrivee = dateFormat.format(gdhArriveeDate);

    cell = new PdfPCell(new Phrase(gdhArrivee, FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    cell.setColspan(2);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Lieu: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorder(0);
    table.addCell(cell);

    String numeroRue = fiche.getAdresse().getNumeroVoie();

    cell = new PdfPCell(new Phrase(numeroRue, FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    table.addCell(cell);

    String libelleRue = fiche.getAdresse().getNomVoie().getLibelle();

    cell = new PdfPCell(new Phrase(libelleRue, FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Précisions: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorder(0);
    table.addCell(cell);

    String lieuPredefini = "";
    if (fiche.getLieuPredefini() != null)
      lieuPredefini = fiche.getLieuPredefini().getLibelleLong().concat(" ");
    String adresseComplement = "";
    if (fiche.getComplementAdresse() != null) adresseComplement = fiche.getComplementAdresse();
    cell = new PdfPCell(new Phrase(lieuPredefini.concat(adresseComplement), FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    cell.setColspan(2);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("spacer", FONT_SPACER));
    cell.setBorder(0);
    cell.setColspan(3);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Titre: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorder(0);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase(fiche.getSituationInitialeTitre(), FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    cell.setColspan(2);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("spacer", FONT_SPACER));
    cell.setBorder(0);
    cell.setColspan(3);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Situation initiale: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorder(0);
    table.addCell(cell);

    String situationInitiale = fiche.getSituationInitiale();

    cell = new PdfPCell(new Paragraph(situationInitiale, FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_JUSTIFIED);
    cell.setColspan(2);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("spacer", FONT_SPACER));
    cell.setBorder(0);
    cell.setColspan(3);
    table.addCell(cell);

    table.setSpacingBefore(5);
    table.setSpacingAfter(5);

    return table;
  }
  private PdfPTable buildTable(List<Fiche> fiches) throws DocumentException {

    PdfPTable table = new PdfPTable(9);
    table.setWidthPercentage(100);
    int[] widths = {14, 8, 28, 15, 20, 30, 30, 13, 33};
    table.setWidths(widths);
    table.setHeaderRows(1);

    PdfPCell cell = new PdfPCell(new Phrase("N° Fiche", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Heure", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Nature des faits et nombre", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Equipages", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Quartier", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Lieu", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Personnes concernées", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Procédures", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Situation initiale", FONT_NORMAL));
    cell.setFixedHeight(40);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    table.addCell(cell);

    SimpleDateFormat hf = new SimpleDateFormat("HH:mm");
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    DateTime currentDate = null;

    boolean addRowDate;
    for (Fiche f : fiches) {

      Historique creation = f.getHistoriques().iterator().next();

      // Check if we need a new row to display the day
      addRowDate = false;
      if (currentDate == null) {
        currentDate = new DateTime(creation.getDateAction());
        addRowDate = true;
      } else {
        DateTime lastDate = new DateTime(creation.getDateAction());
        if (currentDate.getDayOfYear() != lastDate.getDayOfYear()) {
          currentDate = lastDate;
          addRowDate = true;
        }
      }

      if (addRowDate) {
        cell = new PdfPCell(new Phrase(df.format(currentDate.toDate()), FONT_NORMAL));
        cell.setColspan(9);
        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
        table.addCell(cell);
      }

      // N° Fiche
      cell = new PdfPCell(new Phrase(f.getReference(), FONT_NORMAL));
      table.addCell(cell);

      // Heure d'arrivée  #31569
      cell =
          f.getGdhAppel() != null
              ? new PdfPCell(new Phrase(hf.format(f.getGdhAppel()), FONT_NORMAL))
              : new PdfPCell();
      cell.setHorizontalAlignment(Element.ALIGN_CENTER);
      table.addCell(cell);

      // Faits
      StringBuilder sb = new StringBuilder();
      boolean first = true;
      for (Fait fa : f.getFaits()) {
        if (first) {
          first = false;
        } else {
          sb.append("\n");
        }

        sb.append(fa.getNombre()).append(" ").append(fa.getNature().getLibelleLong());
      }
      cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL));
      table.addCell(cell);

      // Equipages
      sb = new StringBuilder();
      first = true;
      for (Patrouille pa : f.getPatrouilles()) {
        if (first) {
          first = false;
        } else {
          sb.append("\n");
        }
        sb.append(pa.getIndicatif().getLibelleLong());
      }
      cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL));
      table.addCell(cell);

      // Quartier
      cell = new PdfPCell(new Phrase(f.getAdresse().getQuartier().getLibelle(), FONT_NORMAL));
      table.addCell(cell);

      // Lieu
      cell =
          new PdfPCell(
              new Phrase(
                  f.getAdresse().getNumeroVoie() + " " + f.getAdresse().getNomVoie().getLibelle(),
                  FONT_NORMAL));
      table.addCell(cell);

      // Personnes
      sb = new StringBuilder();
      first = true;
      for (Personne pe : f.getPersonnes()) {
        if (first) {
          first = false;
        } else {
          sb.append("\n");
        }
        sb.append(pe.getCategorie().getLibelleLong())
            .append(" : ")
            .append(StringUtils.isEmpty(pe.getNom()) ? "-" : pe.getNom());
      }
      cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL));
      table.addCell(cell);

      // Procedures
      sb = new StringBuilder();
      first = true;
      for (Procedure pr : f.getProcedures()) {
        if (first) {
          first = false;
        } else {
          sb.append("\n");
        }
        sb.append(pr.getCategorie().getLibelleCourt()).append(" - ").append(pr.getNumero());
      }
      cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL));
      table.addCell(cell);

      // Titre de la situation initiale
      cell =
          new PdfPCell(
              new Phrase(FicheEventReportHelper.construitLibelleSituationInitiale(f), FONT_NORMAL));
      table.addCell(cell);
    }

    return table;
  }