diff --git a/Dockerfile b/Dockerfile
index b70c58b..96bb63f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,7 +1,9 @@
-FROM imixs/imixs-office-workflow:4.5.2
-#FROM imixs/imixs-office-workflow:latest
-#FROM imixs/imixs-office-workflow:4.4.0
+FROM imixs/imixs-office-workflow
+
+
+# Setup debug configuration
+# COPY ./docker/configuration/standalone-debug.xml /opt/jboss/wildfly/standalone/configuration/
# Deploy artefact
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
-COPY ./*-app/target/*.war /opt/jboss/wildfly/standalone/deployments/
+COPY ./*-app/target/*-app.war /opt/jboss/wildfly/standalone/deployments/
diff --git a/Dockerfile-wildfly-debug b/Dockerfile-wildfly-debug
index be200d4..533ee01 100644
--- a/Dockerfile-wildfly-debug
+++ b/Dockerfile-wildfly-debug
@@ -1,6 +1,4 @@
-FROM imixs/imixs-office-workflow:4.5.2
-#FROM imixs/imixs-office-workflow:latest
-#FROM imixs/imixs-office-workflow:4.4.0
+FROM imixs/imixs-office-workflow
# Deploy artefact
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
@@ -8,3 +6,4 @@ COPY ./*-app/target/*.war /opt/jboss/wildfly/standalone/deployments/
# Run in Debug Mode
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--debug", "*:8787"]
+
diff --git a/docker-compose.yml b/docker-compose.yml
index 2deab55..177f240 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -36,13 +36,13 @@ services:
#OCR_SERVICE_MAXFILESIZE: "1048576"
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
OCR_PDF_MODE: "OCR_ONLY"
- ML_SERVICE_ENDPOINT: "http://imixs-ml-spacy:8000/"
+ #ML_SERVICE_ENDPOINT: "http://imixs-ml-spacy:8000/"
# Enable Training Scheduler
#ML_TRAINNG_SCHEDULER_ENABLED: "true"
# TYPO Issue #28
- ML_TRAINING_SCHEDULER_ENABLED: "true"
- ML_TRAINING_SCHEDULER_INTERVAL: "10000"
- ML_TRAINING_SCHEDULER_INITIALDELAY: "30000"
+ #ML_TRAINING_SCHEDULER_ENABLED: "true"
+ #ML_TRAINING_SCHEDULER_INTERVAL: "10000"
+ #ML_TRAINING_SCHEDULER_INITIALDELAY: "30000"
ports:
- "8080:8080"
@@ -66,48 +66,13 @@ services:
- ###############################################
- # Imixs-ML-spaCy Service
- ###############################################
- imixs-ml-spacy:
- #image: imixs/imixs-ml-spacy:1.1.1
- #image: imixs/imixs-ml-spacy:1.1.4
- #image: imixs/imixs-ml-spacy:1.1.6
- image: imixs/imixs-ml-spacy:latest
- environment:
- PYTHONUNBUFFERED: 1
- TZ: "Europe/Berlin"
- MODEL_LANGUAGE: "de"
- MODEL_PATH: "models/"
- ports:
- - "8000:8000"
- volumes:
- - ./models/:/usr/src/app/models/
-
- ###############################################
- # Imixs-ML Training service
- ###############################################
- imixs-ml-training:
- image: imixs/imixs-ml-training:latest
- environment:
- PAYARA_ARGS: "--debug"
- TZ: "Europe/Berlin"
- OCR_SERVICE_ENDPOINT: "http://tika:9998/tika"
- #OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
- OCR_PDF_MODE: "OCR_ONLY"
- # Payara-Micor ENV
- MP_OPENAPI_SERVERS: "http://localhost:8081"
- ports:
- - "8081:8080"
- - "9009:9009"
-
###############################################
# Imixs-Admin
###############################################
- imixsadmin:
- image: imixs/imixs-admin
- ports:
- - "8888:8080"
+ #imixsadmin:
+ # image: imixs/imixs-admin
+ # ports:
+ # - "8888:8080"
###############################################
# Mailgateway
@@ -120,13 +85,6 @@ services:
EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.16.0.0/12:192.168.0.0/16"
- ###############################################
- # Gotenberg Service (HTML2PDF converter)
- ###############################################
-# gotenberg:
-# image: thecodingmachine/gotenberg:6
-# ports:
-# - "3000:3000"
volumes:
dbdata:
diff --git a/office-alexander-logistics-app/pom.xml b/office-alexander-logistics-app/pom.xml
index 8c1d43e..6d7ac71 100644
--- a/office-alexander-logistics-app/pom.xml
+++ b/office-alexander-logistics-app/pom.xml
@@ -6,7 +6,7 @@
@@ -115,7 +113,8 @@ public class CargosoftExportAdapter implements SignalAdapter {
// finally append the success event id
document.event(EVENT_SUCCESS);
- } catch (PluginException | JAXBException | TransformerException | IOException e) {
+ } catch (PluginException | IOException
+ | jakarta.xml.bind.JAXBException | javax.xml.transform.TransformerException e) {
logger.severe("cargosoft export failed: " + e.getMessage());
document.setItemValue("cargosoft.error", e.getMessage());
document.event(EVENT_FAILURE);
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CargosoftSplitAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CargosoftSplitAdapter.java
index 9fe0355..6ddc396 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CargosoftSplitAdapter.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CargosoftSplitAdapter.java
@@ -8,8 +8,6 @@ import java.util.StringTokenizer;
import java.util.logging.Logger;
import java.util.regex.Pattern;
-import javax.inject.Inject;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.SignalAdapter;
import org.imixs.workflow.WorkflowKernel;
@@ -20,6 +18,8 @@ import org.imixs.workflow.exceptions.ModelException;
import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.office.util.SequenceService;
+import jakarta.inject.Inject;
+
/**
* Der CargosoftSplitAdapter erezeugt anhand der Positionstablelle eignee
* cargosoft export workitems, getrennt für jede Buchungsperdiode. Dies ist
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CustomSearchController.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CustomSearchController.java
index 017185c..42d6a11 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CustomSearchController.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CustomSearchController.java
@@ -32,16 +32,16 @@ import java.util.Calendar;
import java.util.Date;
import java.util.logging.Logger;
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.event.Observes;
-import javax.inject.Inject;
-import javax.inject.Named;
-
import org.imixs.marty.team.TeamController;
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.office.views.SearchController;
import org.imixs.workflow.office.views.SearchEvent;
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+
/**
* Der CustomSearchController reagiert auf SeachEvents und erweitert das Search
* Query um Rechnungbetrag von-bis.
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/DebitorStatistikController.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/DebitorStatistikController.java
index f6b4481..049c467 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/DebitorStatistikController.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/DebitorStatistikController.java
@@ -18,12 +18,6 @@ import java.util.TreeMap;
import java.util.logging.Logger;
import java.util.stream.Collectors;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ConversationScoped;
-import javax.faces.context.FacesContext;
-import javax.inject.Inject;
-import javax.inject.Named;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.exceptions.PluginException;
@@ -31,6 +25,12 @@ import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.faces.data.WorkflowController;
import org.imixs.workflow.office.views.SearchController;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ConversationScoped;
+import jakarta.faces.context.FacesContext;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+
/**
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
* Schritte. Die Analyse Seite ist büer das Admin Menü erreichbar.
@@ -83,6 +83,7 @@ public class DebitorStatistikController implements Serializable {
}
}
}
+
public ItemCollection getWorkitem() {
return workflowController.getWorkitem();
}
@@ -100,6 +101,7 @@ public class DebitorStatistikController implements Serializable {
public String getBookmark() {
return "/pages/dbtr-stats.xhtml?dbtr.number=" + getDbtNr() + "&faces-redirect=true";
}
+
/*
* Gesamt
*/
@@ -108,6 +110,7 @@ public class DebitorStatistikController implements Serializable {
+ " AND $workflowgroup:\"Rechnungsausgang\"";
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " gesamt&query=" + query;
}
+
public int getRechnungen() {
int result = 0;
if (getDbtNr().isEmpty()) {
@@ -123,7 +126,6 @@ public class DebitorStatistikController implements Serializable {
return result;
}
-
/*
* Bezahlt
*/
@@ -132,6 +134,7 @@ public class DebitorStatistikController implements Serializable {
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5900 TO 5999])";
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " bezahlt&query=" + query;
}
+
public int getRechnungenBezahlt() {
int result = 0;
if (getDbtNr().isEmpty()) {
@@ -155,6 +158,7 @@ public class DebitorStatistikController implements Serializable {
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5000 TO 5099])";
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " offen&query=" + query;
}
+
public int getRechnungenOffen() {
int result = 0;
if (getDbtNr().isEmpty()) {
@@ -178,6 +182,7 @@ public class DebitorStatistikController implements Serializable {
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5100 TO 5199])";
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " fällig&query=" + query;
}
+
public int getRechnungenFaellig() {
int result = 0;
if (getDbtNr().isEmpty()) {
@@ -201,6 +206,7 @@ public class DebitorStatistikController implements Serializable {
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5200 TO 5299])";
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Mahnung&query=" + query;
}
+
public int getRechnungenGemahnt() {
int result = 0;
if (getDbtNr().isEmpty()) {
@@ -224,6 +230,7 @@ public class DebitorStatistikController implements Serializable {
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5300 TO 5399])";
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Inkasso&query=" + query;
}
+
public int getRechnungenInkasso() {
int result = 0;
if (getDbtNr().isEmpty()) {
@@ -390,6 +397,7 @@ public class DebitorStatistikController implements Serializable {
}
}
+
/**
* returns
*
@@ -559,7 +567,6 @@ public class DebitorStatistikController implements Serializable {
result = result
+ " trendlineLinear: { colorMin: \"red\", colorMax: \"green\", lineStyle: \"dotted\", width: 2 , projection: true },";
-
result = result + "data: [";
for (Map.Entry
* Diese Methode erwartet das führende K oder D
@@ -76,8 +78,9 @@ public class KreditorDebitorService {
*/
public ItemCollection findCreditorDebitor(String cdtrNumber) throws PluginException {
- if (cdtrNumber==null || !(cdtrNumber.startsWith("K") || cdtrNumber.startsWith("D"))) {
- throw new PluginException(PluginException.class.getName(), "QUERY ERROR", "Invalid debitor/creditor number - prafix K/D expected!");
+ if (cdtrNumber == null || !(cdtrNumber.startsWith("K") || cdtrNumber.startsWith("D"))) {
+ throw new PluginException(PluginException.class.getName(), "QUERY ERROR",
+ "Invalid debitor/creditor number - prafix K/D expected!");
}
try {
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + cdtrNumber + ")";
@@ -93,18 +96,17 @@ public class KreditorDebitorService {
return null;
}
-
/**
- * Diese Method sucht einen Kreditor.
+ * Diese Method sucht einen Kreditor.
*
- * Diese Methode erwartet das führende K
+ * Diese Methode erwartet das führende K
*
* @throws PluginException
*/
public ItemCollection findCreditor(String cdtrNumber) throws PluginException {
if ((!cdtrNumber.startsWith("K"))) {
- cdtrNumber="K"+cdtrNumber;
+ cdtrNumber = "K" + cdtrNumber;
}
try {
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + cdtrNumber + ")";
@@ -119,18 +121,18 @@ public class KreditorDebitorService {
return null;
}
-
+
/**
- * Diese Method sucht einen Debitor.
+ * Diese Method sucht einen Debitor.
*
- * Diese Methode erwartet das führende D
+ * Diese Methode erwartet das führende D
*
* @throws PluginException
*/
public ItemCollection findDebitor(String dbtrNumber) throws PluginException {
if ((!dbtrNumber.startsWith("D"))) {
- dbtrNumber="D"+dbtrNumber;
+ dbtrNumber = "D" + dbtrNumber;
}
try {
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + dbtrNumber + ")";
@@ -146,8 +148,6 @@ public class KreditorDebitorService {
return null;
}
-
-
/**
* Diese Methode übertragt neue IBAN/BIC kombis in den kreditor
*
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 1ed4730..e59112a 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
@@ -7,12 +7,6 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
-import javax.enterprise.context.ConversationScoped;
-import javax.enterprise.event.Observes;
-import javax.faces.context.FacesContext;
-import javax.inject.Inject;
-import javax.inject.Named;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.WorkflowKernel;
import org.imixs.workflow.engine.DocumentService;
@@ -21,6 +15,12 @@ import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.faces.data.WorkflowController;
import org.imixs.workflow.faces.data.WorkflowEvent;
+import jakarta.enterprise.context.ConversationScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.faces.context.FacesContext;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+
/**
* Der OPListeController dient dazu eine liste aller offenen Ausgangsrechnungen
* zu bilden
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 d848fe5..8a8ebf9 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
@@ -12,9 +12,6 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
-import javax.ejb.EJB;
-import javax.inject.Inject;
-
import org.apache.poi.ss.usermodel.CellCopyPolicy;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFCell;
@@ -32,6 +29,9 @@ import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.office.config.ConfigService;
import org.imixs.workflow.poi.POIFindReplaceAdapter;
+import jakarta.ejb.EJB;
+import jakarta.inject.Inject;
+
/**
* Der OPListExportAdapter importiert eine Excel Datei aus einem Textblock
*
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 a75e3e9..fad913a 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
@@ -16,8 +16,6 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
-import javax.inject.Inject;
-
import org.apache.poi.ss.usermodel.CellCopyPolicy;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
@@ -39,6 +37,8 @@ import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.office.config.ConfigService;
import org.imixs.workflow.poi.POIFindReplaceAdapter;
+import jakarta.inject.Inject;
+
/**
* Der OPListExportAdapterByWeek ist ählnlich dem Der OPListExportAdapter. Er
* erzeugt eine Excel tabelle mit allen offenen Rechnungen und gruppiert diese
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportController.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportController.java
index 664b6fd..550b888 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportController.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportController.java
@@ -26,12 +26,12 @@ package com.alexanderlogistics;
import java.util.logging.Logger;
-import javax.enterprise.context.RequestScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-
import org.imixs.workflow.engine.scheduler.SchedulerController;
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+
/**
* The OPListExportController is used to configure the OpListeExporterService.
* This service is
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportScheduler.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportScheduler.java
index 2d1ac2e..4159293 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportScheduler.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/OPListExportScheduler.java
@@ -31,10 +31,6 @@ import java.util.Date;
import java.util.List;
import java.util.logging.Logger;
-import javax.ejb.EJB;
-import javax.ejb.TransactionAttribute;
-import javax.ejb.TransactionAttributeType;
-
import org.imixs.marty.team.TeamService;
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.WorkflowKernel;
@@ -49,6 +45,10 @@ import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.ProcessingErrorException;
import org.imixs.workflow.exceptions.QueryException;
+import jakarta.ejb.EJB;
+import jakarta.ejb.TransactionAttribute;
+import jakarta.ejb.TransactionAttributeType;
+
/**
* The OPListExportScheduler erzeugt für jeden Bereich ein neues Workitem mit
* einer Excel Datei mit allen offenen Rechnungen.
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SEPAExportControllerAGL.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SEPAExportControllerAGL.java
index c4ae7c6..3de738c 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SEPAExportControllerAGL.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/SEPAExportControllerAGL.java
@@ -4,15 +4,15 @@ import java.io.Serializable;
import java.util.List;
import java.util.logging.Logger;
-import javax.enterprise.context.ConversationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.faces.data.WorkflowController;
import org.imixs.workflow.sepa.controller.SepaController;
+import jakarta.enterprise.context.ConversationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+
/**
* Der SEPAExportControllerAGL dient dazu die IBAN/BIC einstellungen in
* einem SEPA Export zu aktualiseren. Er wird von der Form
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 defa813..9dda062 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
@@ -3,8 +3,6 @@ package com.alexanderlogistics;
import java.util.List;
import java.util.logging.Logger;
-import javax.inject.Inject;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.SignalAdapter;
import org.imixs.workflow.engine.WorkflowService;
@@ -15,6 +13,8 @@ import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.ProcessingErrorException;
import org.imixs.workflow.exceptions.QueryException;
+import jakarta.inject.Inject;
+
/**
* Der ZahlungsavisAdapter verknüpft eine Rechnung mit einem Zahlungsavsis zum
* aktuellen Kreiditor. Existiert aktuell kein offener Zahlungsavis für diesen
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisController.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisController.java
index 63ede25..0e98a34 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisController.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisController.java
@@ -4,14 +4,14 @@ import java.io.Serializable;
import java.util.List;
import java.util.logging.Logger;
-import javax.enterprise.context.ConversationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.faces.data.WorkflowController;
+import jakarta.enterprise.context.ConversationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+
/**
* Der ZahlungsavisController dient dazu eine bereits zugewiesene Rechnung
* wieder aus dem Zahlugnsavis zu entfernen.
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java
index 5ceb94f..7904a7b 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java
@@ -8,8 +8,6 @@ import java.util.Collection;
import java.util.List;
import java.util.logging.Logger;
-import javax.inject.Inject;
-
import org.apache.poi.ss.usermodel.CellCopyPolicy;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFRow;
@@ -23,9 +21,10 @@ import org.imixs.workflow.engine.WorkflowService;
import org.imixs.workflow.exceptions.AdapterException;
import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.QueryException;
-
import org.imixs.workflow.poi.POIFindReplaceAdapter;
+import jakarta.inject.Inject;
+
/**
* Der ZahlungsavisAdapter importiert eine Excel Datei aus einem Textblock
*
@@ -43,7 +42,7 @@ import org.imixs.workflow.poi.POIFindReplaceAdapter;
*
* Der Adapter kopiert die Rechnungsdaten in neue Zeilen, welche ab Zeilnenummer
* 16 eingefügt werden.
- *
+ *
* Dabei werden Gutschriften in spalte E und Rechnungen in Spalte F eingetrgen.
*
* Abschliessend wird die Zelle 'TOTAL' noch aktualisiert.
@@ -139,9 +138,9 @@ public class ZahlungsavisExportAdapter extends POIFindReplaceAdapter {
XSSFRow referenceRow = sheet.getRow(cr.getRow());
int referenceRowPos = 16;
int rowPos = 16;
- //int lastRow = sheet.getLastRowNum();
+ // int lastRow = sheet.getLastRowNum();
int lastRow = 999;
- logger.finest("Last rownum="+lastRow);
+ logger.finest("Last rownum=" + lastRow);
sheet.shiftRows(rowPos, lastRow, invoiceIDs.size(), true, true);
for (String invoiceID : invoiceIDs) {
@@ -155,7 +154,7 @@ public class ZahlungsavisExportAdapter extends POIFindReplaceAdapter {
row.getCell(1).setCellValue(invoice.getItemValueDate("invoice.date"));
row.getCell(2).setCellValue(invoice.getItemValueString("invoice.number"));
row.getCell(3).setCellValue(invoice.getItemValueDate("invoice.duedate"));
-
+
if ("credit".equals(invoice.getItemValueString("payment.type"))) {
// Gutschrift
row.getCell(4).setCellValue(invoice.getItemValueDouble("invoice.total"));
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangSaldoAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangSaldoAdapter.java
index f4cdea6..b9d3c34 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangSaldoAdapter.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangSaldoAdapter.java
@@ -3,13 +3,13 @@ package com.alexanderlogistics;
import java.util.List;
import java.util.logging.Logger;
-import javax.inject.Inject;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.SignalAdapter;
import org.imixs.workflow.exceptions.AdapterException;
import org.imixs.workflow.exceptions.PluginException;
+import jakarta.inject.Inject;
+
/**
* Der ZahlungseingangSaldoAdapter korrigiert den Saldo einer Ausgangsrechnung
* anhand der Zahlungsdaten in einem Zahlungseingangsworkflow.
@@ -83,7 +83,7 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
if (paymentWarning.isEmpty()) {
// falls mehr einzelsummen eingeben wurden als der oben angegeben Total Pamyment
// dann soll eine Warnung ausgegen werden.
- if ( InvoiceUtil.round(masterPaymentAmount+masterPaymentDifference) != InvoiceUtil.round(einzelPayments)) {
+ if (InvoiceUtil.round(masterPaymentAmount + masterPaymentDifference) != InvoiceUtil.round(einzelPayments)) {
document.setItemValue("payment.warning", "invalid saldo");
throw new PluginException(PluginException.class.getName(),
ZahlungseingangService.ERROR_PAYMENT_BOOKING_FAILED,
@@ -91,7 +91,6 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
}
}
-
for (ItemCollection payment : paymentDetails) {
ItemCollection invoice = zahlungseingangService.findInvoice(payment.getUniqueID());
@@ -103,7 +102,6 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
float invoicePaymentAmount = payment.getItemValueFloat("payment.amount");
float invoiceRate = invoice.getItemValueFloat("invoice.rate");
-
if (!invoiceCurrency.equals(paymentCurrency)) {
if (invoiceRate == 0) {
throw new PluginException(PluginException.class.getName(),
@@ -112,19 +110,18 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
+ " nicht mit der Währung der Rechnung " + invoiceNumber + " übereinstimmt!");
}
}
-
+
/**
* Falls die Währung der Rechnung von der Währung der Zahlung abweicht, dann
* rechnen wir den PaymentAmmout mit der Rate aus.
*/
if ("EUR".equals(paymentCurrency) &&
!invoiceCurrency.equals(paymentCurrency) && invoiceRate != 0) {
- invoicePaymentAmount = invoicePaymentAmount*invoiceRate;
+ invoicePaymentAmount = invoicePaymentAmount * invoiceRate;
// runde auf 2 Stellen
- invoicePaymentAmount =(float) InvoiceUtil.round(invoicePaymentAmount);
+ invoicePaymentAmount = (float) InvoiceUtil.round(invoicePaymentAmount);
}
-
-
+
// vergeiche Restsaldo mit payment für diese Rechnung
if (Math.abs(InvoiceUtil.round(invoicePaymentAmount)) > Math.abs(InvoiceUtil.round(invoiceSaldo))) {
throw new PluginException(PluginException.class.getName(),
@@ -135,9 +132,8 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
// jetzt den Rechnungsbetrag verkleinern
invoiceSaldo = invoiceSaldo - invoicePaymentAmount;
-
-
- invoiceSaldo=(float) InvoiceUtil.round(invoiceSaldo);
+
+ invoiceSaldo = (float) InvoiceUtil.round(invoiceSaldo);
invoice.setItemValue("invoice.saldo", invoiceSaldo);
invoice.event(ZahlungseingangService.EVENT_UPDATE_INVOICE);
zahlungseingangService.processInvoice(invoice);
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangService.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangService.java
index 558b8a4..2c5eb3c 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangService.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungseingangService.java
@@ -35,8 +35,6 @@ import java.util.logging.Logger;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.annotation.security.RunAs;
-import javax.ejb.Singleton;
-import javax.inject.Inject;
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.engine.DocumentService;
@@ -46,6 +44,9 @@ import org.imixs.workflow.exceptions.ModelException;
import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.ProcessingErrorException;
+import jakarta.ejb.Singleton;
+import jakarta.inject.Inject;
+
/**
* Der ZahlungseingangService wird vom ZahlungseingangSaldoAdapter verwendet um
* Ausgangsrechnungen zu akutalisieren.
@@ -63,7 +64,7 @@ import org.imixs.workflow.exceptions.ProcessingErrorException;
@Singleton
@RunAs("org.imixs.ACCESSLEVEL.MANAGERACCESS")
public class ZahlungseingangService {
-
+
public static final int EVENT_UPDATE_INVOICE = 200;
public static final String ERROR_PAYMENT_BOOKING_FAILED = "PAYMENT_BOOKING_FAILED";
public static final String ITEM_PAYMENT_DETAILS = "payment.details";
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZollListController.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZollListController.java
index 2b1c34c..da56ed9 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZollListController.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZollListController.java
@@ -5,15 +5,15 @@ import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
-import javax.enterprise.context.ConversationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.engine.WorkflowService;
import org.imixs.workflow.faces.data.WorkflowController;
+import jakarta.enterprise.context.ConversationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+
/**
* Der ZollListController dient dazu in einer Zoll Liste die Rechnungen
* anzuzeigen,
@@ -28,70 +28,70 @@ import org.imixs.workflow.faces.data.WorkflowController;
@ConversationScoped
public class ZollListController implements Serializable {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
- public static final int TASK_ERSTELLUNG = 1000;
+ public static final int TASK_ERSTELLUNG = 1000;
- private static Logger logger = Logger.getLogger(ZollListController.class.getName());
+ private static Logger logger = Logger.getLogger(ZollListController.class.getName());
- private String lastDbtrNumber = null;
+ private String lastDbtrNumber = null;
- private String currencyFilter = "-";
- private String lastCurrencyFilter = null;
+ private String currencyFilter = "-";
+ private String lastCurrencyFilter = null;
- private List
@@ -50,15 +51,16 @@ public class InkassoAppendAdapter implements SignalAdapter {
public ItemCollection execute(ItemCollection document, ItemCollection event)
throws AdapterException, PluginException {
- ItemCollection inkassoWorkitem=appendInvoice(document);
-
+ ItemCollection inkassoWorkitem = appendInvoice(document);
+
document.setItemValue("debtcollection.ref", inkassoWorkitem.getUniqueID());
return document;
}
/**
- * Diese method hängt eine referenz der aktuellen Rechnung an den Inkasso Workflow an. Gibt es noch keinen, wird einer erzeugt.
+ * Diese method hängt eine referenz der aktuellen Rechnung an den Inkasso
+ * Workflow an. Gibt es noch keinen, wird einer erzeugt.
* Die method liefert das Inkasso Workitem zurück.
*
* @param document
@@ -72,12 +74,11 @@ public class InkassoAppendAdapter implements SignalAdapter {
throw new PluginException(PluginException.class.getName(), ERROR_MISSING_DATA,
"Inkasso kann nicht erzeugt werden. Bitte wählen Sie zuerst einen Debitor aus.");
}
-
-
+
logger.info("......Search Inkasso '" + dbtrNumber + "'...");
ItemCollection inkasso;
try {
- inkasso = findInkasso(dbtrNumber,currency);
+ inkasso = findInkasso(dbtrNumber, currency);
if (inkasso == null) {
// create a new one
inkasso = new ItemCollection().workflowGroup("Inkasso").task(1000).event(100);
@@ -108,14 +109,13 @@ public class InkassoAppendAdapter implements SignalAdapter {
* @return
* @throws QueryException
*/
- private ItemCollection findInkasso(String dbtrNumber,String currency) throws QueryException {
+ private ItemCollection findInkasso(String dbtrNumber, String currency) throws QueryException {
String query = "(type:workitem) AND ($modelversion:inkasso*) ";
List
* Der Adapter kopiert die Rechnungsdaten in neue Zeilen, welche ab Zeilnenummer
* 16 eingefügt werden.
- *
+ *
* Dabei werden Gutschriften in spalte E und Rechnungen in Spalte F eingetrgen.
*
* Abschliessend wird die Zelle 'TOTAL' noch aktualisiert.
@@ -139,9 +138,9 @@ public class InkassoExportAdapter extends POIFindReplaceAdapter {
XSSFRow referenceRow = sheet.getRow(cr.getRow());
int referenceRowPos = 16;
int rowPos = 16;
- //int lastRow = sheet.getLastRowNum();
+ // int lastRow = sheet.getLastRowNum();
int lastRow = 999;
- logger.finest("Last rownum="+lastRow);
+ logger.finest("Last rownum=" + lastRow);
sheet.shiftRows(rowPos, lastRow, invoiceIDs.size(), true, true);
for (String invoiceID : invoiceIDs) {
diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java
index 41d3db7..27e7749 100644
--- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java
+++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java
@@ -2,16 +2,12 @@ package com.alexanderlogistics.mahnlauf;
import java.time.LocalDate;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
-import javax.ejb.EJB;
-import javax.inject.Inject;
-
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.Model;
import org.imixs.workflow.SignalAdapter;
@@ -23,6 +19,9 @@ import org.imixs.workflow.exceptions.PluginException;
import com.alexanderlogistics.InvoiceUtil;
+import jakarta.ejb.EJB;
+import jakarta.inject.Inject;
+
/**
* The MahnlaufExecuteAdapter triggers the event 300 for all linked invoices
*
@@ -30,7 +29,7 @@ import com.alexanderlogistics.InvoiceUtil;
* processed invoices. This item is used in the Workflow Model to construct a
* HTML Table wen sending the mail.
*
- * The Adapter also splits the item 'dbtr.mail' into a multi value field if
+ * The Adapter also splits the item 'dbtr.mail' into a multi value field if
* the value contains email addresses separated with new lines.
*
*
@@ -108,9 +107,9 @@ public class MahnlaufExecuteAdapter implements SignalAdapter {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DATE, period);
- cal.set(Calendar.HOUR,0);
- cal.set(Calendar.MINUTE,0);
- cal.set(Calendar.SECOND,0);
+ cal.set(Calendar.HOUR, 0);
+ cal.set(Calendar.MINUTE, 0);
+ cal.set(Calendar.SECOND, 0);
invoice.setItemValue("invoice.reminder", cal.getTime());
}
@@ -121,24 +120,24 @@ public class MahnlaufExecuteAdapter implements SignalAdapter {
}
switch (invoice.getTaskID()) {
- case 5200:
- case 5201:
- if (dunningLevel < 1)
- dunningLevel = 1;
- break;
- case 5210:
- case 5211:
- if (dunningLevel < 2)
- dunningLevel = 2;
- break;
- case 5220:
- if (dunningLevel < 3)
- dunningLevel = 3;
- break;
- default:
- if (dunningLevel < 1)
- dunningLevel = 1;
- break;
+ case 5200:
+ case 5201:
+ if (dunningLevel < 1)
+ dunningLevel = 1;
+ break;
+ case 5210:
+ case 5211:
+ if (dunningLevel < 2)
+ dunningLevel = 2;
+ break;
+ case 5220:
+ if (dunningLevel < 3)
+ dunningLevel = 3;
+ break;
+ default:
+ if (dunningLevel < 1)
+ dunningLevel = 1;
+ break;
}
// create a workitem stub for the mail message
@@ -175,29 +174,29 @@ public class MahnlaufExecuteAdapter implements SignalAdapter {
// compute subject
switch (dunningLevel) {
- case 2:
- mahnLaufWorkitem.setItemValue("mail.subject_de", "2. MAHNUNG");
- mahnLaufWorkitem.setItemValue("mail.subject_en", "2. REMINDER");
- break;
- case 3:
- mahnLaufWorkitem.setItemValue("mail.subject_de", "LETZTE AUSSERGERICHTLICHE MAHNUNG");
- mahnLaufWorkitem.setItemValue("mail.subject_en", "LAST REMINDER");
- break;
- default:
- mahnLaufWorkitem.setItemValue("mail.subject_de", "1. MAHNUNG");
- mahnLaufWorkitem.setItemValue("mail.subject_en", "1. REMINDER");
- break;
+ case 2:
+ mahnLaufWorkitem.setItemValue("mail.subject_de", "2. MAHNUNG");
+ mahnLaufWorkitem.setItemValue("mail.subject_en", "2. REMINDER");
+ break;
+ case 3:
+ mahnLaufWorkitem.setItemValue("mail.subject_de", "LETZTE AUSSERGERICHTLICHE MAHNUNG");
+ mahnLaufWorkitem.setItemValue("mail.subject_en", "LAST REMINDER");
+ break;
+ default:
+ mahnLaufWorkitem.setItemValue("mail.subject_de", "1. MAHNUNG");
+ mahnLaufWorkitem.setItemValue("mail.subject_en", "1. REMINDER");
+ break;
}
-
// Verify the dbtr.mail item (split into multi value)
- List