From bd20c5cb5e1abd17b394218611bbee33835241d3 Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Mon, 23 Jun 2025 14:19:51 +0200 Subject: [PATCH] fixed 3rd currency case --- .../OPListExportAdapter.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 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 1b4dff5..b8a257f 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 @@ -263,8 +263,13 @@ public class OPListExportAdapter extends POIFindReplaceAdapter { 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); + if (saldo == null) { + logger.warning( + "Failed to resolve currency '" + currency + "' for invoice " + invoice.getUniqueID()); + } else { + saldo = InvoiceUtil.round(saldo + invoice.getItemValueDouble("invoice.saldo")); + currencyCatSum.put(currency, saldo); + } } int i = 0; for (String cur : currencyList) { @@ -303,8 +308,13 @@ public class OPListExportAdapter extends POIFindReplaceAdapter { // calculate summary String currency = invoice.getItemValueString("invoice.currency"); Double saldo = currencySum.get(currency); - saldo = InvoiceUtil.round(saldo + total); - currencySum.put(currency, saldo); + if (saldo == null) { + logger.warning( + "Failed to resolve currency '" + currency + "' for invoice " + invoice.getUniqueID()); + } else { + saldo = InvoiceUtil.round(saldo + total); + currencySum.put(currency, saldo); + } // Saldo in richtige Spalte setzen... int currencyColIndex = currencyList.indexOf(currency); @@ -312,8 +322,14 @@ public class OPListExportAdapter extends POIFindReplaceAdapter { // Gesamtsumme berechnen Double totalSaldo = currencyTotalSum.get(currency); - totalSaldo = InvoiceUtil.round(totalSaldo + total); - currencyTotalSum.put(currency, totalSaldo); + if (totalSaldo == null) { + logger.warning( + "Failed to resolve totalSaldo for currency '" + currency + "' invoice " + + invoice.getUniqueID()); + } else { + totalSaldo = InvoiceUtil.round(totalSaldo + total); + currencyTotalSum.put(currency, totalSaldo); + } row.getCell(5 + currencyList.size()).setCellValue(invoice.getItemValueString("$workflowstatus"));