Ejemplo n.º 1
0
  private PdfPTable buildInfos(Fiche fiche) {
    PdfPCell cell;
    PdfPTable table = new PdfPTable(new float[] {1, 2});
    table.setWidthPercentage(100);

    cell = new PdfPCell(new Phrase("NATURE DES FAITS: ", FONT_BOLD));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    table.addCell(cell);

    if (fiche.getFaits() != null && !fiche.getFaits().isEmpty()) {

      String libelleFaits = "";

      for (Fait fait : fiche.getFaits()) {
        libelleFaits +=
            (("".equals(libelleFaits)) ? "" : ", ")
                + fait.getNombre()
                + " "
                + fait.getNature().getLibelleCourt();
      }

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

    } else {
      cell = new PdfPCell(new Phrase("", FONT_NORMAL));
      cell.setHorizontalAlignment(Element.ALIGN_LEFT);
      table.addCell(cell);
    }

    cell = new PdfPCell(new Phrase("Quartier: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorderColorBottom(BaseColor.WHITE);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase(fiche.getAdresse().getQuartier().getLibelle(), FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("Secteur: ", FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    cell.setBorderColorTop(BaseColor.WHITE);
    table.addCell(cell);

    cell =
        new PdfPCell(
            new Phrase(fiche.getAdresse().getQuartier().getSecteur().getLibelle(), FONT_NORMAL));
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    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;
  }