EN · DE · RU · FR · ES

#411 : InvoicesExcelExport.java

projectforge-business/src/main/java/org/projectforge/business/fibu/InvoicesExcelExport.java Type : Java · Rôle : Comptabilité financière · Source : projectforge-business/src/main/java/org/projectforge/business/fibu/InvoicesExcelExport.java 108 lignes · 75 code · 24 commentaires · 9 vides
Utilitaire d'export Excel/CSV pour les données de factures. Configure les en-têtes de colonnes (i18n), les formatteurs de champs (devise, date) et remplit les lignes à partir des collections de données.

Structure du code

Paquetage : org.projectforge.business.fibu

Classes : InvoicesExcelExport

Méthodes (3) : addDebitorInvoicesSheet, addCreditorInvoicesSheet, createColumn

Importations : 6 paquetages

Code source (abrégé)

package org.projectforge.business.fibu;

import org.projectforge.business.excel.*;
import org.projectforge.common.anots.PropertyInfo;
import org.projectforge.common.props.PropUtils;
import org.projectforge.export.MyExcelExporter;

import java.lang.reflect.Field;
import java.util.Collection;

public class InvoicesExcelExport
{
  public InvoicesExcelExport()
  {
  }

  public void addDebitorInvoicesSheet(final MyExcelExporter exporter, final String title, final Collection<RechnungDO> list)
  {
    final ExportSheet sheet = exporter.addSheet(title);
    sheet.createFreezePane(0, 1);
    final ContentProvider sheetProvider = sheet.getContentProvider();

    final ExportColumn[] cols = new ExportColumn[6];
    int i = 0;
    cols[i++] = createColumn(exporter, sheet, AbstractRechnungDO.class, "datum");
    cols[i++] = createColumn(exporter, sheet, AbstractRechnungDO.class, "faelligkeit");
    cols[i] = new I18nExportColumn("gross", "fibu.rechnung.bruttoBetrag", 10);
    exporter.putCurrencyFormat(sheetProvider, cols[i++]);
    cols[i++] = new I18nExportColumn("number", "fibu.rechnung.nummer", 6);
    cols[i++] = new I18nExportColumn("debitor", "fibu.common.debitor", 60);
    cols[i++] = new I18nExportColumn("subject", PropUtils.getI18nKey(AbstractRechnungDO.class, "betreff"), 100);
    // noms des propriétés des colonnes
    sheet.setColumns(cols);
    final PropertyMapping mapping = new PropertyMapping();
    for (final RechnungDO entry : list) {
      entry.recalculate();
      mapping.add("datum", entry.getDatum());
      mapping.add("faelligkeit", entry.getFaelligkeit());
      mapping.add("gross", entry.info.getGrossSum());
      mapping.add("number", entry.getNummer());
      mapping.add("debitor", entry.getKundeAsString());
      mapping.add("subject", entry.getBetreff());
      sheet.addRow(mapping.getMapping(), 0);
    }
  }

  public void addCreditorInvoicesSheet(final MyExcelExporter exporter, final String title, final Collection<EingangsrechnungDO> list)
  {
    final ExportSheet sheet = exporter.addSheet(title);
    sheet.createFreezePane(0, 1);
    final ContentProvider sheetProvider = sheet.getContentProvider();

    final ExportColumn[] cols = new ExportColumn[5];
    int i = 0;
    cols[i++] = createColumn(exporter, sheet, AbstractRechnungDO.class, "datum");
    cols[i++] = createColumn(exporter, sheet, AbstractRechnungDO.class, "faelligkeit");
    cols[i] = new I18nExportColumn("gross", "fibu.rechnung.bruttoBetrag", 10);
    exporter.putCurrencyFormat(sheetProvider, cols[i++]);
    cols[i++] = new I18nExportColumn("creditor", "fibu.common.creditor", 60);
    cols[i++] = new I18nExportColumn("subject", PropUtils.getI18nKey(AbstractRechnungDO.class, "betreff"), 100);
    // noms des propriétés des colonnes
    sheet.setColumns(cols);
    final PropertyMapping mapping = new PropertyMapping();
    if (list != null) {
      for (final EingangsrechnungDO entry : list) {
        entry.recalculate();
        mapping.add("datum", entry.getDatum());
        mapping.add("faelligkeit", entry.getFaelligkeit());
        mapping.add("gross", entry.getInfo().getGrossSum());
        mapping.add("creditor", entry.getKreditor());
        mapping.add("subject", entry.getBetreff());
        sheet.addRow(mapping.getMapping(), 0);
      }
    }
  }

  private I18nExportColumn createColumn(final ExcelExporter exporter, final ExportSheet sheet, final Class<?> clazz, final String property)
  {
    final Field field = PropUtils.getField(clazz, property);
    final PropertyInfo propInfo = PropUtils.get(field);
    final I18nExportColumn exportColumn = new I18nExportColumn(property, propInfo.i18nKey(), 100);
    exporter.putFieldFormat(sheet, field, propInfo, exportColumn);
    return exportColumn;
  }
}

Historique Git

868d6abb7 2025 → 2026
63081666f En-têtes des fichiers source : 2024 → 2025.
b47c21af6 Refonte de la mise en cache et des calculs avec les factures (pas encore terminée)
b6092df09 Copyright 2023 → 2024
ab45d51fa Copyright 2001-2022 → 2001-2023.