From 4d2ce3527a08fe0d4ea8d53a94d580c95b6deea2 Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Thu, 21 Nov 2024 11:55:53 +0100 Subject: [PATCH] update op liste --- .../OPListExportAdapter.java | 53 +++++++++++++----- templates/op-liste_template.xlsx | Bin 40174 -> 40200 bytes 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapter.java index ff67a83..6f187a6 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapter.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapter.java @@ -272,6 +272,11 @@ public class OPListExportAdapter extends POIFindReplaceAdapter { return; } sheet.shiftRows(rowPos, lastRow, totalRowCount, true, true); + + Map currencyTotalSum = new HashMap(); + for (String cur : currencyList) { + currencyTotalSum.put(cur, Double.valueOf(0)); + } // Build a category for each debitor... for (Map.Entry> entry : invoiceMap.entrySet()) { String dbtrNumber = entry.getKey(); @@ -285,8 +290,23 @@ public class OPListExportAdapter extends POIFindReplaceAdapter { String debitorName = invoices.get(0).getItemValueString("dbtr.name"); categoryRow.getCell(1).setCellValue(debitorName); - categoryRow.getCell(6).setCellValue(42); - categoryRow.getCell(8).setCellValue(42); + // calculate summ of all invoices for this debitor... + Map currencyCatSum = new HashMap(); + for (String cur : currencyList) { + currencyCatSum.put(cur, Double.valueOf(0)); + } + for (ItemCollection invoice : invoices) { + String currency = invoice.getItemValueString("invoice.currency"); + Double saldo = currencyCatSum.get(currency); + saldo = InvoiceUtil.round(saldo + invoice.getItemValueDouble("invoice.saldo")); + currencyCatSum.put(currency, saldo); + } + int i = 0; + for (String cur : currencyList) { + i++; + Double catSum = currencyCatSum.get(cur); + categoryRow.getCell(4 + i).setCellValue(catSum); + } rowPos++; @@ -324,17 +344,12 @@ public class OPListExportAdapter extends POIFindReplaceAdapter { // Saldo in richtige Spalte setzen... int currencyColIndex = currencyList.indexOf(currency); row.getCell(5 + currencyColIndex).setCellValue(total); - // if (currency1.equals(currency)) { - // // EUR - // row.getCell(6).setCellValue(total); - // row.getCell(7).setCellValue(currency); - // saldo1 = InvoiceUtil.round(saldo1 + total); - // } else { - // // USD - // row.getCell(8).setCellValue(total); - // row.getCell(9).setCellValue(currency); - // saldo2 = InvoiceUtil.round(saldo2 + total); - // } + + // Gesamtsumme berechnen + Double totalSaldo = currencyTotalSum.get(currency); + totalSaldo = InvoiceUtil.round(totalSaldo + total); + currencyTotalSum.put(currency, totalSaldo); + row.getCell(5 + currencyList.size()).setCellValue(invoice.getItemValueString("$workflowstatus")); rowPos++; @@ -345,7 +360,17 @@ public class OPListExportAdapter extends POIFindReplaceAdapter { rowPos++; } // delete reference row 11 - sheet.shiftRows(referenceRowPos, lastRow + totalRowCount, -1, true, true); + // sheet.shiftRows(referenceRowPos, lastRow + totalRowCount, -3, true, true); + // sheet.shiftRows(rowPos, lastRow, -3, true, true); + + // finally update the totals... + int i = 0; + XSSFRow totalRow = sheet.getRow(rowPos + 1); + for (String cur : currencyList) { + i++; + Double totalSum = currencyTotalSum.get(cur); + totalRow.getCell(4 + i).setCellValue(totalSum); + } } diff --git a/templates/op-liste_template.xlsx b/templates/op-liste_template.xlsx index cc83a1b9ad81f688ce2966a54c4519b895ee9306..8f3b32917e9979bd2c51c628cd9fe15e520a5c61 100644 GIT binary patch delta 4114 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