diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SteuerbescheidPlugin.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SteuerbescheidPlugin.java
index 4d26c9d..7d08b46 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SteuerbescheidPlugin.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SteuerbescheidPlugin.java
@@ -1,6 +1,7 @@
package com.alexanderlogistics;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.logging.Logger;
@@ -45,8 +46,83 @@ public class SteuerbescheidPlugin extends AbstractPlugin {
@Override
public ItemCollection run(ItemCollection workitem, ItemCollection event) throws PluginException {
+ // Update Fälligkeit
+ updateFaelligkeit(workitem);
+
+ // Update Salden
+ updateTotalEustZoll(workitem);
+ updateInvoiceSaldo(workitem);
+
+ return workitem;
+ }
+
+ /**
+ * Aktualisiert die EUST/ZOLL Summen
+ *
+ */
+ protected void updateTotalEustZoll(ItemCollection workitem) {
+
+ double saldoEust = 0;
+ double saldoZoll = 0;
+ List positionsTabelle = InvoiceUtil.explodeChildList(workitem);
+ for (ItemCollection pos : positionsTabelle) {
+ if ("EUST".equalsIgnoreCase(pos.getItemValueString("activity.type"))) {
+ saldoEust = saldoEust + pos.getItemValueDouble("amount");
+ }
+ if ("ZOLL".equalsIgnoreCase(pos.getItemValueString("activity.type"))) {
+ saldoZoll = saldoZoll + pos.getItemValueDouble("amount");
+ }
+ }
+
+ workitem.setItemValue("steuer.eust", saldoEust);
+ workitem.setItemValue("steuer.zoll", saldoZoll);
+
+ }
+
+ /**
+ * Aktualisiert die EUST/ZOLL Fälligkeiten in den Detailtabellen
+ * Die Daten kommen von der KI und werden auf die Positionsnummern gemappt.
+ *
+ */
+ protected void updateFaelligkeit(ItemCollection workitem) {
+ Date datEust = workitem.getItemValueDate("steuer.eust.due");
+ Date datZoll = workitem.getItemValueDate("steuer.zoll.due");
+
+ List rows = InvoiceUtil.explodeChildList(workitem);
+ boolean update = false;
+ for (ItemCollection pos : rows) {
+
+ if (datZoll != null) {
+ if ("ZOLL".equalsIgnoreCase(pos.getItemValueString("activity.type"))
+ && pos.getItemValueDate("duedate") == null) {
+ pos.setItemValue("duedate", datZoll);
+ update = true;
+ }
+ }
+ if (datEust != null) {
+ if ("EUST".equalsIgnoreCase(pos.getItemValueString("activity.type"))
+ && pos.getItemValueDate("duedate") == null) {
+ pos.setItemValue("duedate", datEust);
+ update = true;
+ }
+ }
+ }
+
+ if (update) {
+ InvoiceUtil.implodeChildList(workitem, rows);
+ }
+
+ }
+
+ /**
+ * Aktualisiert den invoice.saldo anhand der ausgehenden Rechnungen zu einer ATC
+ * Nummer
+ *
+ */
+ protected void updateInvoiceSaldo(ItemCollection workitem) {
+
String atcNummer = workitem.getItemValueString("invoice.atc.number");
- logger.info("Verify ATC-Nr.: " + atcNummer);
+ logger.fine("Verify ATC-Nr.: " + atcNummer);
double amount = workitem.getItemValueDouble("invoice.total.net");
List invoices = findInvoices(atcNummer);
@@ -70,7 +146,6 @@ public class SteuerbescheidPlugin extends AbstractPlugin {
// Update Saldo
workitem.setItemValue("invoice.saldo", InvoiceUtil.round(saldo));
- return workitem;
}
/*
diff --git a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_details.xhtml b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_details.xhtml
index e2d4357..f732bd0 100644
--- a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_details.xhtml
+++ b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_details.xhtml
@@ -9,7 +9,7 @@
| Positionsnummer |
Art |
- Steuer |
+ Fälligkeit |
Betrag |
@@ -22,8 +22,10 @@
#{row.item['activity.type']}
|
-
- #{row.item['tax.code']}
+ |
+
+
+
|
@@ -38,6 +40,24 @@
+
+ |
+ |
+ Summe: |
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
diff --git a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_invoices.xhtml b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_invoices.xhtml
index 9254b22..c6406d3 100644
--- a/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_invoices.xhtml
+++ b/office-alexander-logistics-app/src/main/webapp/pages/workitems/forms/alexander/section_steuerbescheid_invoices.xhtml
@@ -38,7 +38,23 @@
+
+ |
+ Saldo: |
+
+
+
+
+
+
+
+
+
+ |
+
+
+
diff --git a/workflow/steuerbescheid-de-1.0.4-debug.bpmn b/workflow/steuerbescheid-de-1.0.4-debug.bpmn
new file mode 100644
index 0000000..1c9a4a1
--- /dev/null
+++ b/workflow/steuerbescheid-de-1.0.4-debug.bpmn
@@ -0,0 +1,1372 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+$workflowstatus
+
+]]>
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ StartEvent_1
+ Task_1
+ IntermediateCatchEvent_3
+ Task_4
+ EndEvent_3
+
+ DataObject_2
+ event_XJbC5A
+ textAnnotation_HwSKqQ
+ event_9fS4uw
+ event_mPDOzA
+ gateway_u86UTw
+ gateway_5riVig
+ event_0j5Tyg
+ gateway_4Jce4w
+ task_Xtwzqw
+ textAnnotation_SkyWAQ
+ task_O06T6Q
+ event_uYUtGg
+ event_SXqpPw
+ gateway_yONKfQ
+ gateway_XuJUAw
+ event_CGDJnQ
+ event_q0jrHA
+ event_bQtvJQ
+ event_gskJ4Q
+ task_OLIdnQ
+ event_x7R5Sw
+ event_ZEDh4Q
+ task_Em0QgQ
+ dataObject_P0BaVA
+
+
+
+
+ sequenceFlow_ikwt6g
+
+
+ SequenceFlow_19
+
+
+
+
+
+ invoice.number invoice.booking_text invoice.atc.number vom invoice.date ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Abteilung | Belegdatum | Summe Zoll/EUSt | Saldo |
+
+
+ | space.name |
+ invoice.date |
+ invoice.total.net |
+ invoice.saldo |
+
+]]>
+
+
+ $workflowgroup - $workflowstatus]]>
+ sequenceFlow_EzmiPA
+ sequenceFlow_rbVgQA
+ sequenceFlow_KOaBSw
+ sequenceFlow_tpBldQ
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ invoice.number invoice.booking_text invoice.atc.number vom invoice.date ]]>
+
+
+
+
+ | Abteilung | Belegdatum | Summe Zoll/EUSt | Saldo |
+
+
+ | space.name |
+ invoice.date |
+ invoice.total.net |
+ invoice.saldo |
+
+]]>
+
+
+ $workflowgroup - $workflowstatus]]>
+ SequenceFlow_19
+ sequenceFlow_d60CVg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mahnwesen]]>
+
+
+
+ sequenceFlow_ikwt6g
+ sequenceFlow_60LKZw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sequenceFlow_hLkSLA
+ sequenceFlow_oRy3qw
+ sequenceFlow_UW18Jw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sequenceFlow_rbVgQA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sequenceFlow_tpBldQ
+ sequenceFlow_lrR0DQ
+ sequenceFlow_GmmBvA
+
+
+
+ sequenceFlow_lrR0DQ
+ sequenceFlow_KOaBSw
+ sequenceFlow_hLkSLA
+
+
+
+ sequenceFlow_EzmiPA
+ sequenceFlow_omVTTA
+ sequenceFlow_r7sdOg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ home]]>
+
+
+
+ sequenceFlow_hLkSLA
+ sequenceFlow_aaLOTA
+ sequenceFlow_r7sdOg
+ sequenceFlow_HWrJ6A
+
+
+
+ sequenceFlow_oRy3qw
+ sequenceFlow_d60CVg
+ sequenceFlow_aaLOTA
+
+
+
+
+
+
+
+
+
+
+ invoice.number invoice.booking_text invoice.atc.number vom invoice.date ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Abteilung | Belegdatum | Summe Zoll/EUSt | Saldo |
+
+
+ | space.name |
+ invoice.date |
+ invoice.total.net |
+ invoice.saldo |
+
+]]>
+
+
+ $workflowgroup - $workflowstatus]]>
+ sequenceFlow_J0GjVg
+ sequenceFlow_60LKZw
+ sequenceFlow_n9vw7A
+ Association_3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ invoice.number invoice.booking_text invoice.atc.number vom invoice.date ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Abteilung | Belegdatum | Summe Zoll/EUSt | Saldo |
+
+
+ | space.name |
+ invoice.date |
+ invoice.total.net |
+ invoice.saldo |
+
+]]>
+
+
+ $workflowgroup - $workflowstatus]]>
+ sequenceFlow_KOaBSw
+ sequenceFlow_HvXbYg
+ sequenceFlow_HWrJ6A
+ sequenceFlow_FTi0cA
+ sequenceFlow_QxNNCQ
+ sequenceFlow_QxaZJA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Html-Header
+Mahnung
+Html-Footer]]>
+
+
+
+
+
+
+
+
+
+
+
+ invoice.atc.number wurde noch nicht abgerechnet!]]>
+
+
+ $lasteventdate
+-
+
[reminder]
+ @weekly
+ ]]>
+
+
+
+
+ sequenceFlow_n9vw7A
+ sequenceFlow_omVTTA
+ sequenceFlow_o6glqQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sequenceFlow_n9vw7A
+ sequenceFlow_HvXbYg
+ sequenceFlow_0AEnAQ
+
+
+
+
+
+
+ sequenceFlow_hLkSLA
+ sequenceFlow_0AEnAQ
+ sequenceFlow_sNhh5g
+ sequenceFlow_UW18Jw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sequenceFlow_o6glqQ
+ sequenceFlow_FTi0cA
+ sequenceFlow_sNhh5g
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sequenceFlow_QxNNCQ
+
+
+
+
+
+
+
+
+
+
+ Html-Header
+Mahnung
+Html-Footer]]>
+
+
+
+
+
+
+
+
+
+
+
+ invoice.atc.number wurde wiederholt noch nicht abgerechnet!]]>
+
+
+
+ [reminder]
+ @weekly
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sequenceFlow_QxaZJA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+X-Tika-OCRLanguage=deu
+X-Tika-PDFocrStrategy=OCR_ONLY
+(PDF|pdf)$
+10
+]]>
+
+
+
+ sequenceFlow_n9vw7A
+ sequenceFlow_Kw58EQ
+ sequenceFlow_lwTFxw
+
+
+
+
+
+ 1000
+
+ sequenceFlow_Kw58EQ
+
+
+
+
+
+
+
+ invoice.number invoice.booking_text invoice.atc.number vom invoice.date ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Abteilung | Belegdatum | Summe Zoll/EUSt | Saldo |
+
+
+ | space.name |
+ invoice.date |
+ invoice.total.net |
+ invoice.saldo |
+
+]]>
+
+
+ $workflowgroup - $workflowstatus]]>
+ sequenceFlow_J0GjVg
+ Association_3
+ sequenceFlow_lwTFxw
+ sequenceFlow_PMoo7w
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+ https://llama.cpp.imixs.com/
+ XML
+ true
+]]>
+
+
+
+ sequenceFlow_Kw58EQ
+ sequenceFlow_PMoo7w
+ sequenceFlow_2NTSsQ
+ sequenceFlow_8NjTWw
+
+
+
+
+
+
+
+
+ sequenceFlow_2NTSsQ
+
+
+
+
+
+
+
+ invoice.number invoice.booking_text invoice.atc.number vom invoice.date ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Abteilung | Belegdatum | Summe Zoll/EUSt | Saldo |
+
+
+ | space.name |
+ invoice.date |
+ invoice.total.net |
+ invoice.saldo |
+
+]]>
+
+
+ $workflowgroup - $workflowstatus]]>
+ sequenceFlow_J0GjVg
+ Association_3
+ sequenceFlow_8NjTWw
+ sequenceFlow_GmmBvA
+
+
+
+
+
+
+
+
+
+
+ {"n_predict": 4096, "temperature": 0 }
+ ^.+\.([pP][dD][fF])$
+
+[INST] Übertrage die Informationen aus dem Steuerbescheid in eine XML Struktur:
+
+
+ ....
+
+
+
+
+Den Anmelder findest du im Absatz 'Anmelder'. Hier ist nur der Firmenname interessant und nicht die Steuernummer und Adresse.
+
+In der Tabelle mit den Buchungsschlüsseln können Fälligkeits Daten ausgewiesen sein. Diese sind für die beiden XML Tags und relevant.
+Werte nur die Zeilen aus, in denen der Aufschubnehmer 'Alexander Global Logistics GmbH' ist und auch ein Fälligkeitsdatum ausgewiesen ist.
+Der Buchungsschlüssel 'A0000' gibt das Fälligkeitsdatum für 'steuer.zoll.due' an. Der Buchungsschlüssel 'B0000' gibt das Fälligkeitsdatum für 'steuer.eust.due' an.
+Es kann für beide Buchungsschlüssel ein Fälligkeitsdatum geben oder aber nur für einen der beiden!
+
+Beachte: Die beiden XML Tags und sind optional und können entfallen, wenn es keinen Wert gibt.
+
+Beachte: Gib nur das XML Objekt aus. Füge keine Erklärungen oder Kommentare hinzu. Formatiere Datumswerte im ISO 8601-Format (YYYY-MM-DD).
+
+[/INST]
+
+]]]]>
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ Hallo,
+
+folgender Steuerbescheid wurde bisher noch nicht abgerechnet. Bitte prüfen Sie diesen Vorgang:
+
+
+application.urlpages/workitems/workitem.jsf?id=$uniqueid
+
+
+Nachdem Sie die Rechnung erstellt haben, wird dieser Vorgang automatisch abgeschlossen.
+
+
+Einen Überblick über alle überflälligen noch offenen Steuerbescheide finden Sie
+hier
+
+([^\s]+(\.(?i)(pdf))$)]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/workflow/steuerbescheid-de-1.0.4.bpmn b/workflow/steuerbescheid-de-1.0.4.bpmn
index 0fdc680..7701556 100644
--- a/workflow/steuerbescheid-de-1.0.4.bpmn
+++ b/workflow/steuerbescheid-de-1.0.4.bpmn
@@ -123,6 +123,7 @@ th { font-weight: bold;}
dataObject_P0BaVA
event_2I6HNw
event_rxM0Nw
+ event_zZMlig
@@ -255,7 +256,11 @@ th { font-weight: bold;}
-
+
+
+
+
+
@@ -266,14 +271,15 @@ th { font-weight: bold;}
+
+
-
-
-
+
+
@@ -585,12 +591,6 @@ if (workitem.getItemValueString('txtcomment') == '' ) {
invoice.atc.number wurde noch nicht abgerechnet!]]>
-
-
-
-
-
-
$lasteventdate
-
@@ -716,12 +716,6 @@ if (workitem.getItemValueString('txtcomment') == '' ) {
invoice.atc.number wurde wiederholt noch nicht abgerechnet!]]>
-
-
-
-
-
-
[reminder]
@@ -865,7 +859,7 @@ if (workitem.getItemValueString('txtcomment') == '' ) {
https://llama.cpp.imixs.com/
XML
- true
+ false
]]>
@@ -936,6 +930,7 @@ if (workitem.getItemValueString('txtcomment') == '' ) {
sequenceFlow_8NjTWw
sequenceFlow_GmmBvA
sequenceFlow_zXpIXw
+ sequenceFlow_za0Rkw
@@ -1039,6 +1034,21 @@ Beachte: Gib nur das XML Objekt aus. Füge keine Erklärungen oder Kommentare hi
+
+
+
+
+
+
+
+ sequenceFlow_za0Rkw
+
+
+
+
+
+
+
Hallo,
@@ -1458,8 +1468,8 @@ Einen Überblick über alle überflälligen noch offenen Steuerbescheide finden
-
-
+
+
@@ -1486,6 +1496,23 @@ Einen Überblick über alle überflälligen noch offenen Steuerbescheide finden
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+