invoiceList = null;
@Inject
@@ -65,7 +68,8 @@ public class OPListController implements Serializable {
/**
* Diese Methode wird für Zahlungseingänge und Mahnläufe verwendet.
*
- * Die Methode liefert die Rechnungen zur gegebenen dbtrNumber. Die Methode nutzt
+ * Die Methode 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
@@ -88,6 +92,9 @@ public class OPListController implements Serializable {
*/
@SuppressWarnings("unchecked")
public List getInvoices(String _dbtrNumber) {
+ if (_dbtrNumber == null) {
+ return new ArrayList();
+ }
// Compute all open invoices if TASK_ERSTELLUNG....
if (workflowController.getWorkitem().getTaskID() == TASK_ERSTELLUNG) {
@@ -99,12 +106,16 @@ public class OPListController implements Serializable {
}
// if last dbtr number is equal then return the current list....
- if (invoiceList != null && lastDbtrNumber != null && lastDbtrNumber.equals(_dbtrNumber)) {
+ if (invoiceList != null && //
+ lastDbtrNumber != null && lastDbtrNumber.equals(_dbtrNumber) && //
+ lastCurrencyFilter != null && lastCurrencyFilter.equals(currencyFilter) //
+ ) {
return invoiceList;
}
// load new invoice list....
lastDbtrNumber = _dbtrNumber;
+ lastCurrencyFilter = currencyFilter;
invoiceList = new ArrayList();
logger.info("....loading open Invoices for " + _dbtrNumber);
@@ -115,12 +126,24 @@ public class OPListController implements Serializable {
if (_dbtrNumber.startsWith("D")) {
_dbtrNumber = _dbtrNumber.substring(1);
}
- // (type:workitem OR type:workitemarchive)
- String query = "(type:workitem) AND ($modelversion:rechnungsausgang-*) AND (dbtr.number:" + _dbtrNumber
- + ")";
try {
- invoiceList = documentService.find(query, 999, 0, "invoice.number", false);
+ String query = "(type:workitem) AND ($modelversion:rechnungsausgang-*) AND (dbtr.number:" + _dbtrNumber
+ + ")";
+ List invoiceListTemp = documentService.find(query, 999, 0, "invoice.number", false);
+
+ // Jetzt nur noch die Rechnungen nehmen die zum ausgewählten Währungsfilter
+ // passen
+ invoiceList = new ArrayList();
+ for (ItemCollection _invoice : invoiceListTemp) {
+ if (currencyFilter == null || currencyFilter.isEmpty() || currencyFilter.equals("-")) {
+ invoiceList.add(_invoice);
+ } else {
+ if (currencyFilter.equals(_invoice.getItemValueString("invoice.currency"))) {
+ invoiceList.add(_invoice);
+ }
+ }
+ }
} catch (QueryException e) {
logger.severe("Failed to get op liste:" + e.getMessage());
}
@@ -152,11 +175,11 @@ public class OPListController implements Serializable {
* Eine Ausnahme ist hier nur wenn jemand auf Speichern oder mahnen drückt
* (Event = 10|20). Dann ändern wir die Liste nicht!
*
- * Hinweis: in der Liste befinden sich keine Inkasso Rechnungen, da man diese
+ * Hinweis: in der Liste befinden sich keine Inkasso Rechnungen, da man diese
* nicht anwählen kann.
*/
if (workflowController.getWorkitem().getModelVersion().startsWith("mahnlauf")) {
-
+
// wir selektieren hier immer alle fälligen Rechnungen vor falls wir aus
// einer Rechnung mit dem Event 100 (Mahnlauf erstellen) kommen, oder
// wenn der Mahnlauf von außen gerate eben neu erzeugt wurde
@@ -189,9 +212,10 @@ public class OPListController implements Serializable {
// finally we set the 'selection' item depending on the $workitemList
// and the payment amount form the 'payment.details'
- if (invoiceList!=null) {
+ if (invoiceList != null) {
List selection = workflowController.getWorkitem().getItemValue("$workitemref");
- List paymentList = zahlungseingangService.loadPaymentDetails(workflowController.getWorkitem());
+ List paymentList = zahlungseingangService
+ .loadPaymentDetails(workflowController.getWorkitem());
for (ItemCollection invoice : invoiceList) {
if (selection.contains(invoice.getUniqueID())) {
invoice.setItemValue("selected", true);
@@ -205,11 +229,10 @@ public class OPListController implements Serializable {
}
}
} else {
- // empty list
+ // empty list
invoiceList = new ArrayList();
}
-
return invoiceList;
}
@@ -310,7 +333,7 @@ public class OPListController implements Serializable {
double result = 0;
for (ItemCollection invoice : invoiceList) {
if (currency.equals(invoice.getItemValueString("invoice.currency"))) {
- result = result + invoice.getItemValueDouble("invoice.total");
+ result = result + invoice.getItemValueDouble("invoice.total");
}
}
// rond with 2 digits
@@ -387,4 +410,11 @@ public class OPListController implements Serializable {
return date.compareTo(LocalDate.now()) <= 0;
}
+ public String getCurrencyFilter() {
+ return currencyFilter;
+ }
+
+ public void setCurrencyFilter(String currencyFilter) {
+ this.currencyFilter = currencyFilter;
+ }
}
diff --git a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_opliste_mahnlauf.xhtml b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_opliste_mahnlauf.xhtml
index 7517651..b4fbe68 100644
--- a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_opliste_mahnlauf.xhtml
+++ b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_opliste_mahnlauf.xhtml
@@ -16,6 +16,14 @@
+
+
+
+
+
+
+
+
| #{message['form.invoicenumber']} |
@@ -36,7 +44,11 @@
#{invoice.item['invoice.number']}
- |
+
+
+
+
+
diff --git a/workflow/rechnungsausgang-de-1.0.5.bpmn b/workflow/rechnungsausgang-de-1.0.5.bpmn
new file mode 100644
index 0000000..b52fc4b
--- /dev/null
+++ b/workflow/rechnungsausgang-de-1.0.5.bpmn
@@ -0,0 +1,3875 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$workflowstatus
+
+]]>
+
+
+ In case you have already made the payment, please disregard this notice. If you require any information regarding your account, please do not hesitate to contact us.
+ Thank you for your cooperation.
+
+Kind regards Alexander Global Logistics GmbH
+
+ |