insert columns

This commit is contained in:
Ralph Soika 2024-11-24 09:37:12 +01:00
parent 8790248d88
commit 2a12ecaf3c
2 changed files with 24 additions and 47 deletions

View file

@ -114,6 +114,11 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
"missing Currency configuration - please check parameters"); "missing Currency configuration - please check parameters");
} }
// compute all departments
List<ItemCollection> spaces = teamService.getSpaces();
// sort by space.name
Collections.sort(spaces, new ItemCollectionComparator("space.name", true));
// read the template options // read the template options
ItemCollection evalItemCollection = workflowService.evalWorkflowResult(event, "opliste", ItemCollection evalItemCollection = workflowService.evalWorkflowResult(event, "opliste",
document, document,
@ -143,7 +148,7 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
XSSFSheet sheet = doc.getSheetAt(0); XSSFSheet sheet = doc.getSheetAt(0);
// first add the columns for the currency list // first add the columns for the currency list
addCurrencyColumns(doc, sheet, currencyList); addCurrencyColumns(doc, sheet, currencyList, spaces);
// insertInvoiceRows(sheet, document, targetName, filter, currencyList); // insertInvoiceRows(sheet, document, targetName, filter, currencyList);
@ -186,50 +191,20 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
return document; return document;
// logger.info("... loading poi configuration..");
// // Process POI instructions
// // read the config
// ItemCollection poiConfig = workflowService.evalWorkflowResult(event,
// "poi-update", document, false);
// if (poiConfig == null || !poiConfig.hasItem("findreplace")) {
// throw new PluginException(POIFindReplaceAdapter.class.getSimpleName(),
// CONFIG_ERROR,
// "missing poi configuration");
// }
// List<String> replaceDevList = poiConfig.getItemValue("findreplace");
// String eval = poiConfig.getItemValueString("eval");
// try {
// logger.info("... update template with normal poi information..");
// this.updateFileData(document.getFileData(targetName), document,
// replaceDevList, eval);
// insertInvoiceRows(document, targetName, currencyList.get(0),
// currencyList.get(1));
// } catch (PluginException | IOException | QueryException e) {
// throw new PluginException(OPListExportAdapterByWeek.class.getSimpleName(),
// InvoiceService.ERROR_CONFIG,
// "failed to update op-liste: " + e.getMessage());
// }
// logger.info("... completed!");
// return document;
} }
/** /**
* EIne OP Liste kann für eine oder mehrere Währungen erstellt werden. Diese * EIne OP Liste kann für eine oder mehrere Währungen erstellt werden. Diese
* Hilfsmethode fügt die Spalten anhand der Währungen ein. * Hilfsmethode fügt die Spalten anhand der Währungen für jede Abteilung ein.
*
* *
* @param sheet * @param sheet
* @param currencyList * @param currencyList
*/ */
private void addCurrencyColumns(XSSFWorkbook doc, XSSFSheet sheet, List<String> currencyList) { private void addCurrencyColumns(XSSFWorkbook doc, XSSFSheet sheet, List<String> currencyList,
if (currencyList == null || currencyList.size() <= 1) { List<ItemCollection> spaces) {
// no extra currencies defined!
return;
}
// zusaetzliche Zellen einfuegen... // zusaetzliche spalten einfuegen...
int newColumns = (currencyList.size() - 1) * 1; int newColumns = (currencyList.size() * spaces.size()) - 1;
for (int i = 0; i < newColumns; i++) { for (int i = 0; i < newColumns; i++) {
logger.fine(".. add currency column..."); logger.fine(".. add currency column...");
POIUtil.insertColumn(sheet, 1, 2 + i); POIUtil.insertColumn(sheet, 1, 2 + i);
@ -238,11 +213,18 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
// Beschriftungen eintragen // Beschriftungen eintragen
int col = 1; int col = 1;
XSSFCell cell = null; XSSFCell cell = null;
XSSFRow labelRow = sheet.getRow(10); XSSFRow spaceRow = sheet.getRow(9);
for (String currency : currencyList) { XSSFRow currencyRow = sheet.getRow(10);
cell = labelRow.getCell(col); for (ItemCollection space : spaces) {
cell.setCellValue(currency); // Set Abteilung Beschriftung
col++; String name = space.getItemValueString("space.name");
spaceRow.getCell(col).setCellValue(name);
// add currencies
for (String currency : currencyList) {
cell = currencyRow.getCell(col);
cell.setCellValue(currency);
col++;
}
} }
} }
@ -261,7 +243,7 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
* @throws QueryException * @throws QueryException
*/ */
private void insertInvoiceRows(ItemCollection document, String fileName, String currency1, private void insertInvoiceRows(ItemCollection document, String fileName, String currency1,
String currency2) String currency2, List<ItemCollection> spaces)
throws PluginException, QueryException { throws PluginException, QueryException {
Map<String, Double> totalsUeberfaelligCurrency1 = new HashMap<String, Double>(); Map<String, Double> totalsUeberfaelligCurrency1 = new HashMap<String, Double>();
@ -270,11 +252,6 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
Map<String, Double> totalsFaelligCurrency2 = new HashMap<String, Double>(); Map<String, Double> totalsFaelligCurrency2 = new HashMap<String, Double>();
List<String> spaceNames = new ArrayList<String>(); List<String> spaceNames = new ArrayList<String>();
// compute all departments
List<ItemCollection> spaces = teamService.getSpaces();
// sort by space.name
Collections.sort(spaces, new ItemCollectionComparator("space.name", true));
Map<String, WeekInvoiceData> weekDataMap = new HashMap<String, WeekInvoiceData>(); Map<String, WeekInvoiceData> weekDataMap = new HashMap<String, WeekInvoiceData>();
FileData fileData = document.getFileData(fileName); FileData fileData = document.getFileData(fileName);

Binary file not shown.