From e9665bf27cfc0290254ded2f3342e4559c6ff56b Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Thu, 18 Apr 2024 14:16:58 +0200 Subject: [PATCH] update op liste export kw --- .../com/alexanderlogistics/InvoiceUtil.java | 21 +++++ .../OPListExportAdapterByWeek.java | 25 +++--- .../ZahlungsavisAppendAdapter.java | 27 +++---- .../datev/DatevCargosoftImportAdapter.java | 49 ++++++++---- templates/op-liste_kw_template.xlsx | Bin 41777 -> 41781 bytes workflow/opliste-de-1.0.1.bpmn | 72 +++++++----------- 6 files changed, 110 insertions(+), 84 deletions(-) diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoiceUtil.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoiceUtil.java index f9a8746..7e710c5 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoiceUtil.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoiceUtil.java @@ -28,6 +28,9 @@ public class InvoiceUtil { public static final String CHILD_ITEM_PROPERTY = "_ChildItems"; public static final String ITEM_INVOICE_PERIOD = "invoice.period"; public static final String ITEM_INVOICE_POSITIONS = "invoice.positions"; + public static final String ITEM_CDTR_NUMBER = "cdtr.number"; + public static final String ITEM_CDTR_NAME = "cdtr.name"; + public static final String ITEM_CDTR_NAME_CARGOSOFT = "cdtr.name.cargosoft"; public static double round(double value) { BigDecimal bd = BigDecimal.valueOf(value); @@ -76,6 +79,24 @@ public class InvoiceUtil { return childItems; } + /** + * Convert the List of ItemCollections back into a List of Map elements + * + * @param workitem + */ + @SuppressWarnings({ "rawtypes" }) + public static void implodeChildList(ItemCollection workitem, List childItems) { + List mapOrderItems = new ArrayList(); + // convert the child ItemCollection elements into a List of Map + if (childItems != null) { + // iterate over all order items.. + for (ItemCollection orderItem : childItems) { + mapOrderItems.add(orderItem.getAllItems()); + } + workitem.replaceItemValue(CHILD_ITEM_PROPERTY, mapOrderItems); + } + } + /** * Diese Methode berechnet das feld 'invoice.positions' welches eine Valueliste * mit allen Positionsnummern aus dem Childliste enthält. diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapterByWeek.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapterByWeek.java index 8d65dad..6c72d4c 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapterByWeek.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportAdapterByWeek.java @@ -200,18 +200,15 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter { XSSFRow rowSpacesCurrencies = sheet.getRow(10); XSSFRow rowValues = sheet.getRow(11); - XSSFCell cellSpaceLabelReference = rowSpacesLabels.getCell(1); + XSSFCell cellSpaceLabelReference = rowSpacesLabels.getCell(2); XSSFCell cellSpaceCurrencyReference = rowSpacesCurrencies.getCell(1); int column = 1; for (ItemCollection space : spaces) { + XSSFCell cell = null; String spaceName = space.getItemValueString("space.name"); String spaceID = space.getUniqueID(); spaceNames.add(spaceName); - // Space Labe - XSSFCell cell = rowSpacesLabels.getCell(column); - // cell.copyCellFrom(cellSpaceLabelReference, new CellCopyPolicy()); - cell.setCellValue(spaceName); // Space currency EUR cell = rowSpacesCurrencies.getCell(column); cell.copyCellFrom(cellSpaceCurrencyReference, new CellCopyPolicy()); @@ -223,11 +220,16 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter { cell.copyCellFrom(cellSpaceCurrencyReference, new CellCopyPolicy()); cell.setCellValue("USD"); + // Space Label + cell = rowSpacesLabels.getCell(column); + cell.setCellValue(spaceName); + // create two new cells... + column++; cell = rowSpacesLabels.createCell(column); cell.copyCellFrom(cellSpaceLabelReference, new CellCopyPolicy()); cell.setCellValue(""); - column++; + cell = rowSpacesLabels.createCell(column); cell.copyCellFrom(cellSpaceLabelReference, new CellCopyPolicy()); cell.setCellValue(""); @@ -267,21 +269,21 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter { column = 1; for (String name : spaceNames) { String key = name + "/" + week; - logger.info("serach WeekInvoiceData for " + key); + logger.info("search WeekInvoiceData for " + key); // list of invoices WeekInvoiceData weekData = weekDataMap.get(key); if (weekData != null) { - logger.info("eur=" + weekData.totalEUR); + logger.info(" EUR=" + weekData.totalEUR + " USD=" + weekData.totalUSD); row.getCell(column).setCellValue(weekData.totalEUR); column++; row.getCell(column).setCellValue(weekData.totalUSD); + column++; } else { logger.info("...... NOT FOUND"); // skip columns column = column + 2; } - } // update style @@ -392,12 +394,13 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter { private void groupInvoicesByWeek(String spaceID, String spaceName, Map cache) { - logger.info("...group invoices for " + spaceID); + logger.info("...group invoices for " + spaceName + "/" + spaceID); try { List invoices = documentService.find( "$modelversion:rechnungsausgang-* AND type:workitem AND $uniqueidref:" + spaceID, 9999, 0, "invoice.number", false); + logger.info(" found " + invoices.size() + " for space " + spaceName); for (ItemCollection invoice : invoices) { // compute Week Date dueDate = invoice.getItemValueDate("invoice.duedate"); @@ -414,7 +417,7 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter { // haben wir shon ein listchen? String key = spaceName + "/" + weekCategory; - logger.info("....building weekInvoiceData object for " + key); + logger.fine(" ....building weekInvoiceData object for " + key); WeekInvoiceData weekData = cache.get(key); if (weekData == null) { diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisAppendAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisAppendAdapter.java index 1a0c045..defa813 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisAppendAdapter.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisAppendAdapter.java @@ -34,10 +34,6 @@ public class ZahlungsavisAppendAdapter implements SignalAdapter { public static final String ERROR_MISSING_DATA = "MISSING_DATA"; public static final String ERROR_CONFIG = "CONFIG_ERROR"; - public static final String ITEM_CDTR_NUMBER = "cdtr.number"; - public static final String ITEM_CDTR_NAME = "cdtr.name"; - public static final String ITEM_CDTR_NAME_CARGOSOFT = "cdtr.name.cargosoft"; - @Inject WorkflowService workflowService; @@ -63,26 +59,28 @@ public class ZahlungsavisAppendAdapter implements SignalAdapter { * @throws PluginException */ private void appendInvoice(ItemCollection document) throws PluginException { - String cdtrNumber = document.getItemValueString(ITEM_CDTR_NUMBER); + String cdtrNumber = document.getItemValueString(InvoiceUtil.ITEM_CDTR_NUMBER); String currency = document.getItemValueString("invoice.currency"); if (cdtrNumber == null || cdtrNumber.isEmpty()) { throw new PluginException(PluginException.class.getName(), ERROR_MISSING_DATA, "Zahlungsavis kann nicht erzeugt werden. Bitte wählen Sie zuerst einen Kreditor aus."); } - - + logger.info("......Search Zahlungsavis or creditor '" + cdtrNumber + "'..."); ItemCollection zahlungsAvis; try { - zahlungsAvis = findZahlungsavis(cdtrNumber,currency); + zahlungsAvis = findZahlungsavis(cdtrNumber, currency); if (zahlungsAvis == null) { // create a new one zahlungsAvis = new ItemCollection().workflowGroup("Zahlungsavis").task(1000).event(100); // add cdtr.name - zahlungsAvis.setItemValue(ITEM_CDTR_NAME, document.getItemValue(ITEM_CDTR_NAME)); - zahlungsAvis.setItemValue(ITEM_CDTR_NUMBER, document.getItemValue(ITEM_CDTR_NUMBER)); - zahlungsAvis.setItemValue(ITEM_CDTR_NAME_CARGOSOFT, document.getItemValue(ITEM_CDTR_NAME_CARGOSOFT)); + zahlungsAvis.setItemValue(InvoiceUtil.ITEM_CDTR_NAME, + document.getItemValue(InvoiceUtil.ITEM_CDTR_NAME)); + zahlungsAvis.setItemValue(InvoiceUtil.ITEM_CDTR_NUMBER, + document.getItemValue(InvoiceUtil.ITEM_CDTR_NUMBER)); + zahlungsAvis.setItemValue(InvoiceUtil.ITEM_CDTR_NAME_CARGOSOFT, + document.getItemValue(InvoiceUtil.ITEM_CDTR_NAME_CARGOSOFT)); zahlungsAvis.setItemValue("invoice.currency", currency); } else { // zahlungsavis speichern @@ -107,14 +105,13 @@ public class ZahlungsavisAppendAdapter implements SignalAdapter { * @return * @throws QueryException */ - private ItemCollection findZahlungsavis(String cdtrNumber,String currency) throws QueryException { + private ItemCollection findZahlungsavis(String cdtrNumber, String currency) throws QueryException { String query = "(type:workitem) AND ($modelversion:zahlungsavis*) "; List resultList = workflowService.getDocumentService().find(query, 999, 0, "$modified", true); for (ItemCollection zahlungsavis : resultList) { - if (cdtrNumber.equals(zahlungsavis.getItemValueString(ITEM_CDTR_NUMBER)) - && currency.equals(zahlungsavis.getItemValueString("invoice.currency")) - ) { + if (cdtrNumber.equals(zahlungsavis.getItemValueString(InvoiceUtil.ITEM_CDTR_NUMBER)) + && currency.equals(zahlungsavis.getItemValueString("invoice.currency"))) { return zahlungsavis; } } diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/datev/DatevCargosoftImportAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/datev/DatevCargosoftImportAdapter.java index 9d8e0c8..7627a95 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/datev/DatevCargosoftImportAdapter.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/datev/DatevCargosoftImportAdapter.java @@ -531,7 +531,7 @@ public class DatevCargosoftImportAdapter implements SignalAdapter { datevWorkitem.setItemValue("invoice.total", total); datevWorkitem.setItemValue("invoice.saldo", total); // implode die Splitbuchungen - implodeChildList(datevWorkitem, splitBuchungen); + InvoiceUtil.implodeChildList(datevWorkitem, splitBuchungen); // set dbtr.name ItemCollection dbtrItemCol = kreditorDebitorService @@ -577,6 +577,8 @@ public class DatevCargosoftImportAdapter implements SignalAdapter { String belegNummer = datevWorkitem.getItemValueString("invoice.number"); if (belegNummer.startsWith("ATC")) { // Zollanmeldung + // Lookup Kreditor data... and switch dbtr to cdtr + updateATCInvoice(datevWorkitem); datevWorkitem.model(INITIAL_MODEL_VERSION_TAX).task(INITIAL_TASK_ID_TAX).event(INITIAL_EVENT_ID_TAX); } else { // Normale Ausgangsrechnung @@ -588,22 +590,41 @@ public class DatevCargosoftImportAdapter implements SignalAdapter { } /** - * Convert the List of ItemCollections back into a List of Map elements + * This helper method updates some attributes of a DATEV Import regarding ATC + * Invoice (Zollanmeldungen) * - * @param workitem + * Hier handelt es sich praktisch um eine Eingangsrechnung, daher tauschen wir + * die Vorzeichen und dbtr/cdtr + * + * @param datevWorkitem + * @throws PluginException */ - @SuppressWarnings({ "rawtypes" }) - private void implodeChildList(ItemCollection workitem, List childItems) { - List mapOrderItems = new ArrayList(); - // convert the child ItemCollection elements into a List of Map - if (childItems != null) { - logger.fine("Convert child items into Map..."); - // iterate over all order items.. - for (ItemCollection orderItem : childItems) { - mapOrderItems.add(orderItem.getAllItems()); - } - workitem.replaceItemValue(CHILD_ITEM_PROPERTY, mapOrderItems); + private void updateATCInvoice(ItemCollection datevWorkitem) throws PluginException { + String cdtrNumber = datevWorkitem.getItemValueString("dbtr.number"); + datevWorkitem.setItemValue("cdtr.number", cdtrNumber); + datevWorkitem.removeItem("dbtr.number"); + ItemCollection creditor = kreditorDebitorService.findCreditor(cdtrNumber); + if (creditor != null) { + // update name.... + datevWorkitem.setItemValue(InvoiceUtil.ITEM_CDTR_NAME, creditor.getItemValueString("_VENDOR_Name")); } + // Update invoice.positions + InvoiceUtil.updateInvoicePositions(datevWorkitem); + + // Switch S/H + List childs = InvoiceUtil.explodeChildList(datevWorkitem); + for (ItemCollection posItem : childs) { + if (posItem.hasItem("datev.shzeichen")) { + String sh = posItem.getItemValueString("datev.shzeichen"); + if ("S".equalsIgnoreCase(sh)) { + sh = "H"; + } else { + sh = "S"; + } + posItem.setItemValue("datev.shzeichen", sh); + } + } + InvoiceUtil.implodeChildList(datevWorkitem, childs); } } \ No newline at end of file diff --git a/templates/op-liste_kw_template.xlsx b/templates/op-liste_kw_template.xlsx index 6d5b323c0869fc3cbe515ae0e75673ec05261cc5..034ff2005f5b6924585e799fc15c1e5aeea2c765 100644 GIT binary patch delta 2944 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 diff --git a/workflow/opliste-de-1.0.1.bpmn b/workflow/opliste-de-1.0.1.bpmn index 338ded7..0b1f2a9 100644 --- a/workflow/opliste-de-1.0.1.bpmn +++ b/workflow/opliste-de-1.0.1.bpmn @@ -604,7 +604,6 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt SequenceFlow_2 sequenceFlow_71XoqA sequenceFlow_QzU0Xg - sequenceFlow_hH7RWQ @@ -618,40 +617,27 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt + + + Mahnwesen OP-Liste KW Template op-liste_kw_template.xlsx op-liste_space.name_$lasteventdate.xlsx - - C6 - sequencenumber - text - - - D6 - Gesamtübersicht - text - - - C8 - space.name - text - I6 $lasteventdate date - + + +I7 ]]> - - - - + sequenceFlow_QzU0Xg sequenceFlow_64kfIA @@ -689,6 +675,7 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt SequenceFlow_10 sequenceFlow_64kfIA sequenceFlow_W9rmgA + sequenceFlow_hH7RWQ @@ -761,7 +748,7 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt - + @@ -797,7 +784,7 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt sequenceFlow_hH7RWQ - + @@ -1023,26 +1010,25 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt - + - + - + - - - + + - - + + @@ -1060,9 +1046,7 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt - - - + @@ -1074,23 +1058,23 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt - + - - - - + + + + - + - + - - - + + +