From 146ad9a17b0c8fc332296ca4a608d7682eb8706d Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Wed, 1 Feb 2023 11:55:38 +0100 Subject: [PATCH] improvements mahnlauf --- .../alexanderlogistics/OPListController.java | 63 ++++++++----------- .../forms/alexander/section_dunnings.xhtml | 16 ++--- .../MigrationMahnerAusziffern.java | 2 +- .../{ => migration}/MigrationMahnerDatev.java | 2 +- workflow/mahnlauf-de-1.0.0.bpmn | 2 +- 5 files changed, 37 insertions(+), 48 deletions(-) rename office-alexander-logistics-app/src/test/java/com/alexanderlogistics/{ => migration}/MigrationMahnerAusziffern.java (99%) rename office-alexander-logistics-app/src/test/java/com/alexanderlogistics/{ => migration}/MigrationMahnerDatev.java (99%) diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListController.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListController.java index 52e663f..b9058a2 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListController.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListController.java @@ -64,7 +64,7 @@ public class OPListController implements Serializable { /** * Diese Methode wird für Zahlungseingänge und Mahnläufe verwendet. *

- * Die Metho liefert die Rechnungen zur gegebenen dbtrNumber. Die Methode nutzt + * Die Methoe liefert die Rechnungen zur gegebenen dbtrNumber. Die Methode nutzt * einen lokalen cache um die Zugriffe zu beschleunigen. *

* Befindet sich ein Zahlungseingang in Erstellung (Task=1000) werden alle @@ -75,8 +75,9 @@ public class OPListController implements Serializable { *

* Bei verwendung im Mahnlauf werden zusätzlich auch alle diese Rechnungen * vorselektiert (Anforderung von Mary Mwangi). D.h. es werden alle Checkboxen - * in der Maske 'selection_opliste_Mahnluaf' angewählt. D.h auch man muss ggf. - * Rechnungen manuell delselktieren wenn man diese nicht im Mahnlauf haben will. + * in der Maske 'selection_opliste_Mahnluaf' angewählt. D.h auch, dass man ggf. + * Rechnungen manuell delselktieren muss, wenn man diese nicht im Mahnlauf haben + * will. * * * @param _dbtrNumber @@ -121,7 +122,11 @@ public class OPListController implements Serializable { logger.severe("Failed to get op liste:" + e.getMessage()); } - // Zahlugnseingang? + /* + * Zahlugnseingang? + * + * Wir berechnen den saldo. + */ if (workflowController.getWorkitem().getModelVersion().startsWith("zahlungseingang")) { // berechnung des Basisumsatzes bei Fremdwährungen for (ItemCollection invoice : invoiceList) { @@ -131,18 +136,24 @@ public class OPListController implements Serializable { maxSaldo = maxSaldo / rate; invoice.setItemValue("invoice.saldo.byrate", maxSaldo); } - } - } - // Mahnlauf ? + /* + * Mahnlauf ? + * + * Bei einem Mahnlauf selektieren wir alle Rechnungne immer vor. Das ist eine + * Anforderung von AGL Der Benutzer kann dann einzelne Rechnungen wieder + * abwählen. + * + * Eine Ausnahme ist hier nur wenn jemand auf Speichern oder mahnen drückt + * (Event = 10|20). Dann ändern wir die Liste nicht! + */ if (workflowController.getWorkitem().getModelVersion().startsWith("mahnlauf")) { - // wir selektieren hier alle fälligen Rechnungen vor, falls der Mahnlauf gerade - // erstellt wird. - if (workflowController.getWorkitem().getItemValueInteger("$version") == 0 - || (workflowController.getWorkitem().getItemValueInteger("$version") == 1 - && workflowController.getWorkitem().getItemValueInteger("$lastevent") == 100)) { + // wir selektieren hier immer alle fälligen Rechnungen vor falls wir aus + // dem Event 100 (Mahnlauf erstellen) kommen. + // Falls aber + if (workflowController.getWorkitem().getItemValueInteger("$lastevent") == 100) { List intialSelection = new ArrayList(); for (ItemCollection invoice : invoiceList) { // ist die Rechnung fällig? @@ -187,28 +198,6 @@ public class OPListController implements Serializable { return invoiceList; } -// /** -// * Liefert die Payments die mit diesem workitem verbunden sind... -// * @return -// */ -// public List getPayments() { -// List result=new ArrayList(); -// -// -// result=workitemLinkController.getExternalReferences("($WorkflowGroup:Zahlungseingang"); -//// if (workflowController.getWorkitem()!=null) { -//// List liste = workflowService.getWorkListByRef(workflowController.getWorkitem().getUniqueID()); -//// -//// for (ItemCollection refWorkitem: liste) { -//// if (refWorkitem.getItemValueString(WorkflowKernel.WORKFLOWGROUP).startsWith("Zahlungseingang")) { -//// result.add(refWorkitem); -//// } -//// } -//// } -//// -// return result; -// } - /** * On Before Process we store the selected invoices in $worktiemRef * @@ -327,10 +316,10 @@ public class OPListController implements Serializable { public double calculatePaymentDifference() { double paymentAmount = workflowController.getWorkitem().getItemValueDouble("payment.amount"); double paymentDifference = workflowController.getWorkitem().getItemValueDouble("payment.difference"); - + double paymentTotal = workflowController.getWorkitem().getItemValueDouble("payment.total"); // paymentAmount - calculateInvoiceSaldo(); - double result = (paymentAmount+paymentDifference) - paymentTotal; + double result = (paymentAmount + paymentDifference) - paymentTotal; logger.fine("...new PaymentDifference=" + result); // rond with 2 digits @@ -352,13 +341,11 @@ public class OPListController implements Serializable { result = result + pay / rate; } else { result = result + pay; - } } } // rond with 2 digits return Math.round(result * 100.0) / 100.0; - } /** diff --git a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_dunnings.xhtml b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_dunnings.xhtml index a305a47..d5e7cb7 100644 --- a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_dunnings.xhtml +++ b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_dunnings.xhtml @@ -10,15 +10,13 @@ - - - - - + + + - - + + + diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/MigrationMahnerAusziffern.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/migration/MigrationMahnerAusziffern.java similarity index 99% rename from office-alexander-logistics-app/src/test/java/com/alexanderlogistics/MigrationMahnerAusziffern.java rename to office-alexander-logistics-app/src/test/java/com/alexanderlogistics/migration/MigrationMahnerAusziffern.java index 996f1e3..f85c488 100644 --- a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/MigrationMahnerAusziffern.java +++ b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/migration/MigrationMahnerAusziffern.java @@ -1,4 +1,4 @@ -package com.alexanderlogistics; +package com.alexanderlogistics.migration; import java.io.BufferedReader; import java.io.BufferedWriter; diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/MigrationMahnerDatev.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/migration/MigrationMahnerDatev.java similarity index 99% rename from office-alexander-logistics-app/src/test/java/com/alexanderlogistics/MigrationMahnerDatev.java rename to office-alexander-logistics-app/src/test/java/com/alexanderlogistics/migration/MigrationMahnerDatev.java index a4e130d..a580753 100644 --- a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/MigrationMahnerDatev.java +++ b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/migration/MigrationMahnerDatev.java @@ -1,4 +1,4 @@ -package com.alexanderlogistics; +package com.alexanderlogistics.migration; import java.io.BufferedReader; import java.io.BufferedWriter; diff --git a/workflow/mahnlauf-de-1.0.0.bpmn b/workflow/mahnlauf-de-1.0.0.bpmn index c5a48bf..6cee6f4 100644 --- a/workflow/mahnlauf-de-1.0.0.bpmn +++ b/workflow/mahnlauf-de-1.0.0.bpmn @@ -589,7 +589,7 @@ Debitor: dbtr.name (dbtr.number) - + false
MahnungenMahnungStatus#{message.modified}
#{dunning.item['$workflowstatus']} + + #{message.by} #{userController.getUserName(dunning.item['$editor'])}