migration auf imixs-office-workflow-5.0.2
This commit is contained in:
parent
123c3a052c
commit
b495b296d0
45 changed files with 422 additions and 518 deletions
10
Dockerfile
10
Dockerfile
|
|
@ -1,7 +1,9 @@
|
||||||
FROM imixs/imixs-office-workflow:4.5.2
|
FROM imixs/imixs-office-workflow
|
||||||
#FROM imixs/imixs-office-workflow:latest
|
|
||||||
#FROM imixs/imixs-office-workflow:4.4.0
|
|
||||||
|
# Setup debug configuration
|
||||||
|
# COPY ./docker/configuration/standalone-debug.xml /opt/jboss/wildfly/standalone/configuration/
|
||||||
|
|
||||||
# Deploy artefact
|
# Deploy artefact
|
||||||
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
|
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/
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
FROM imixs/imixs-office-workflow:4.5.2
|
FROM imixs/imixs-office-workflow
|
||||||
#FROM imixs/imixs-office-workflow:latest
|
|
||||||
#FROM imixs/imixs-office-workflow:4.4.0
|
|
||||||
|
|
||||||
# Deploy artefact
|
# Deploy artefact
|
||||||
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
|
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
|
# Run in Debug Mode
|
||||||
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--debug", "*:8787"]
|
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--debug", "*:8787"]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,13 +36,13 @@ services:
|
||||||
#OCR_SERVICE_MAXFILESIZE: "1048576"
|
#OCR_SERVICE_MAXFILESIZE: "1048576"
|
||||||
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
|
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
|
||||||
OCR_PDF_MODE: "OCR_ONLY"
|
OCR_PDF_MODE: "OCR_ONLY"
|
||||||
ML_SERVICE_ENDPOINT: "http://imixs-ml-spacy:8000/"
|
#ML_SERVICE_ENDPOINT: "http://imixs-ml-spacy:8000/"
|
||||||
# Enable Training Scheduler
|
# Enable Training Scheduler
|
||||||
#ML_TRAINNG_SCHEDULER_ENABLED: "true"
|
#ML_TRAINNG_SCHEDULER_ENABLED: "true"
|
||||||
# TYPO Issue #28
|
# TYPO Issue #28
|
||||||
ML_TRAINING_SCHEDULER_ENABLED: "true"
|
#ML_TRAINING_SCHEDULER_ENABLED: "true"
|
||||||
ML_TRAINING_SCHEDULER_INTERVAL: "10000"
|
#ML_TRAINING_SCHEDULER_INTERVAL: "10000"
|
||||||
ML_TRAINING_SCHEDULER_INITIALDELAY: "30000"
|
#ML_TRAINING_SCHEDULER_INITIALDELAY: "30000"
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "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
|
# Imixs-Admin
|
||||||
###############################################
|
###############################################
|
||||||
imixsadmin:
|
#imixsadmin:
|
||||||
image: imixs/imixs-admin
|
# image: imixs/imixs-admin
|
||||||
ports:
|
# ports:
|
||||||
- "8888:8080"
|
# - "8888:8080"
|
||||||
|
|
||||||
###############################################
|
###############################################
|
||||||
# Mailgateway
|
# Mailgateway
|
||||||
|
|
@ -120,13 +85,6 @@ services:
|
||||||
EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.16.0.0/12:192.168.0.0/16"
|
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:
|
volumes:
|
||||||
dbdata:
|
dbdata:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<artifactId>office-alexander-logistics</artifactId>
|
<artifactId>office-alexander-logistics</artifactId>
|
||||||
<groupId>com.alexander-logistics</groupId>
|
<groupId>com.alexander-logistics</groupId>
|
||||||
<version>1.2.21</version>
|
<version>1.3.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>office-alexander-logistics-app</artifactId>
|
<artifactId>office-alexander-logistics-app</artifactId>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
@ -302,31 +302,26 @@
|
||||||
<artifactId>imixs-adapters-poi</artifactId>
|
<artifactId>imixs-adapters-poi</artifactId>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Imixs-ML -->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.imixs.workflow</groupId>
|
<groupId>org.imixs.workflow</groupId>
|
||||||
<artifactId>imixs-ml-workflow</artifactId>
|
<artifactId>imixs-ai-workflow</artifactId>
|
||||||
<version>${org.imixs.ml.version}</version>
|
<version>${org.imixs.ai.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- xsl 2.0 support for Reporting / Chart Diagrams -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.sf.saxon</groupId>
|
||||||
|
<artifactId>Saxon-HE</artifactId>
|
||||||
|
</dependency>
|
||||||
<!-- Apache PDFBox -->
|
<!-- Apache PDFBox -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.pdfbox</groupId>
|
<groupId>org.apache.pdfbox</groupId>
|
||||||
<artifactId>pdfbox</artifactId>
|
<artifactId>pdfbox</artifactId>
|
||||||
<version>2.0.19</version>
|
<version>${apache.pdfbox.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- xsl 2.0 support -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.saxon</groupId>
|
|
||||||
<artifactId>Saxon-HE</artifactId>
|
|
||||||
<version>9.9.1-4</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Apache Commons FTP Client -->
|
<!-- Apache Commons FTP Client -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-net</groupId>
|
<groupId>commons-net</groupId>
|
||||||
|
|
@ -382,11 +377,5 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-melman</artifactId>
|
|
||||||
<version>${org.imixs.melman.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
@ -23,11 +23,11 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package com.alexanderlogistics;
|
package com.alexanderlogistics;
|
||||||
|
|
||||||
import javax.enterprise.context.ApplicationScoped;
|
|
||||||
import javax.inject.Named;
|
|
||||||
|
|
||||||
import org.imixs.workflow.office.config.ConfigController;
|
import org.imixs.workflow.office.config.ConfigController;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Custom Config Controller for TAXES and Invoice typs
|
* The Custom Config Controller for TAXES and Invoice typs
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -9,20 +9,20 @@ import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.enterprise.context.ConversationScoped;
|
|
||||||
import javax.faces.context.FacesContext;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.inject.Named;
|
|
||||||
import javax.json.Json;
|
|
||||||
import javax.json.JsonObject;
|
|
||||||
import javax.json.JsonObjectBuilder;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
import org.imixs.workflow.faces.util.ErrorHandler;
|
import org.imixs.workflow.faces.util.ErrorHandler;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.ConversationScoped;
|
||||||
|
import jakarta.faces.context.FacesContext;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
import jakarta.json.Json;
|
||||||
|
import jakarta.json.JsonObject;
|
||||||
|
import jakarta.json.JsonObjectBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The CargosoftController CDI Bean provides Front-End methods for the cargosoft
|
* The CargosoftController CDI Bean provides Front-End methods for the cargosoft
|
||||||
* kreditore objects.
|
* kreditore objects.
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,6 @@ import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.xml.bind.JAXBException;
|
|
||||||
import javax.xml.transform.TransformerException;
|
|
||||||
|
|
||||||
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
import org.eclipse.microprofile.config.inject.ConfigProperty;
|
||||||
import org.imixs.archive.core.SnapshotService;
|
import org.imixs.archive.core.SnapshotService;
|
||||||
import org.imixs.workflow.FileData;
|
import org.imixs.workflow.FileData;
|
||||||
|
|
@ -20,6 +16,8 @@ import org.imixs.workflow.engine.WorkflowService;
|
||||||
import org.imixs.workflow.exceptions.AdapterException;
|
import org.imixs.workflow.exceptions.AdapterException;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This adapter exports the invoice data to a ftp server connected to cargosoft.
|
* This adapter exports the invoice data to a ftp server connected to cargosoft.
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -115,7 +113,8 @@ public class CargosoftExportAdapter implements SignalAdapter {
|
||||||
// finally append the success event id
|
// finally append the success event id
|
||||||
document.event(EVENT_SUCCESS);
|
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());
|
logger.severe("cargosoft export failed: " + e.getMessage());
|
||||||
document.setItemValue("cargosoft.error", e.getMessage());
|
document.setItemValue("cargosoft.error", e.getMessage());
|
||||||
document.event(EVENT_FAILURE);
|
document.event(EVENT_FAILURE);
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@ import java.util.StringTokenizer;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
import org.imixs.workflow.WorkflowKernel;
|
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.exceptions.PluginException;
|
||||||
import org.imixs.workflow.office.util.SequenceService;
|
import org.imixs.workflow.office.util.SequenceService;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der CargosoftSplitAdapter erezeugt anhand der Positionstablelle eignee
|
* Der CargosoftSplitAdapter erezeugt anhand der Positionstablelle eignee
|
||||||
* cargosoft export workitems, getrennt für jede Buchungsperdiode. Dies ist
|
* cargosoft export workitems, getrennt für jede Buchungsperdiode. Dies ist
|
||||||
|
|
|
||||||
|
|
@ -32,16 +32,16 @@ import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.logging.Logger;
|
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.marty.team.TeamController;
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.office.views.SearchController;
|
import org.imixs.workflow.office.views.SearchController;
|
||||||
import org.imixs.workflow.office.views.SearchEvent;
|
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
|
* Der CustomSearchController reagiert auf SeachEvents und erweitert das Search
|
||||||
* Query um Rechnungbetrag von-bis.
|
* Query um Rechnungbetrag von-bis.
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,6 @@ import java.util.TreeMap;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.util.stream.Collectors;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
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.faces.data.WorkflowController;
|
||||||
import org.imixs.workflow.office.views.SearchController;
|
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
|
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
|
||||||
* Schritte. Die Analyse Seite ist büer das Admin Menü erreichbar.
|
* Schritte. Die Analyse Seite ist büer das Admin Menü erreichbar.
|
||||||
|
|
@ -83,6 +83,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemCollection getWorkitem() {
|
public ItemCollection getWorkitem() {
|
||||||
return workflowController.getWorkitem();
|
return workflowController.getWorkitem();
|
||||||
}
|
}
|
||||||
|
|
@ -100,6 +101,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
public String getBookmark() {
|
public String getBookmark() {
|
||||||
return "/pages/dbtr-stats.xhtml?dbtr.number=" + getDbtNr() + "&faces-redirect=true";
|
return "/pages/dbtr-stats.xhtml?dbtr.number=" + getDbtNr() + "&faces-redirect=true";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Gesamt
|
* Gesamt
|
||||||
*/
|
*/
|
||||||
|
|
@ -108,6 +110,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
+ " AND $workflowgroup:\"Rechnungsausgang\"";
|
+ " AND $workflowgroup:\"Rechnungsausgang\"";
|
||||||
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " gesamt&query=" + query;
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " gesamt&query=" + query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRechnungen() {
|
public int getRechnungen() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (getDbtNr().isEmpty()) {
|
if (getDbtNr().isEmpty()) {
|
||||||
|
|
@ -123,7 +126,6 @@ public class DebitorStatistikController implements Serializable {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bezahlt
|
* Bezahlt
|
||||||
*/
|
*/
|
||||||
|
|
@ -132,6 +134,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5900 TO 5999])";
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5900 TO 5999])";
|
||||||
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " bezahlt&query=" + query;
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " bezahlt&query=" + query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRechnungenBezahlt() {
|
public int getRechnungenBezahlt() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (getDbtNr().isEmpty()) {
|
if (getDbtNr().isEmpty()) {
|
||||||
|
|
@ -155,6 +158,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5000 TO 5099])";
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5000 TO 5099])";
|
||||||
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " offen&query=" + query;
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " offen&query=" + query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRechnungenOffen() {
|
public int getRechnungenOffen() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (getDbtNr().isEmpty()) {
|
if (getDbtNr().isEmpty()) {
|
||||||
|
|
@ -178,6 +182,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5100 TO 5199])";
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5100 TO 5199])";
|
||||||
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " fällig&query=" + query;
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " fällig&query=" + query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRechnungenFaellig() {
|
public int getRechnungenFaellig() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (getDbtNr().isEmpty()) {
|
if (getDbtNr().isEmpty()) {
|
||||||
|
|
@ -201,6 +206,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5200 TO 5299])";
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5200 TO 5299])";
|
||||||
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Mahnung&query=" + query;
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Mahnung&query=" + query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRechnungenGemahnt() {
|
public int getRechnungenGemahnt() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (getDbtNr().isEmpty()) {
|
if (getDbtNr().isEmpty()) {
|
||||||
|
|
@ -224,6 +230,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5300 TO 5399])";
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5300 TO 5399])";
|
||||||
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Inkasso&query=" + query;
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Inkasso&query=" + query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRechnungenInkasso() {
|
public int getRechnungenInkasso() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (getDbtNr().isEmpty()) {
|
if (getDbtNr().isEmpty()) {
|
||||||
|
|
@ -390,6 +397,7 @@ public class DebitorStatistikController implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns
|
* returns
|
||||||
*
|
*
|
||||||
|
|
@ -559,7 +567,6 @@ public class DebitorStatistikController implements Serializable {
|
||||||
result = result
|
result = result
|
||||||
+ " trendlineLinear: { colorMin: \"red\", colorMax: \"green\", lineStyle: \"dotted\", width: 2 , projection: true },";
|
+ " trendlineLinear: { colorMin: \"red\", colorMax: \"green\", lineStyle: \"dotted\", width: 2 , projection: true },";
|
||||||
|
|
||||||
|
|
||||||
result = result + "data: [";
|
result = result + "data: [";
|
||||||
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
||||||
result = result + entry.getValue().getAveragePaymentDays() + ",";
|
result = result + entry.getValue().getAveragePaymentDays() + ",";
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,7 @@ import java.io.InputStream;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ejb.Stateless;
|
import org.apache.commons.compress.archivers.ArchiveException;
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.apache.commons.net.ftp.FTP;
|
import org.apache.commons.net.ftp.FTP;
|
||||||
import org.apache.commons.net.ftp.FTPClient;
|
import org.apache.commons.net.ftp.FTPClient;
|
||||||
import org.apache.commons.net.ftp.FTPSClient;
|
import org.apache.commons.net.ftp.FTPSClient;
|
||||||
|
|
@ -39,6 +37,9 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
|
||||||
import org.imixs.workflow.FileData;
|
import org.imixs.workflow.FileData;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
|
|
||||||
|
import jakarta.ejb.Stateless;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The FTPConnector service provides methods to push invoices to cargosoft
|
* The FTPConnector service provides methods to push invoices to cargosoft
|
||||||
*
|
*
|
||||||
|
|
@ -55,7 +56,7 @@ public class FTPConnector {
|
||||||
public static final String ENV_EXPORT_FTP_PORT = "cargosoft.export.ftp.port";
|
public static final String ENV_EXPORT_FTP_PORT = "cargosoft.export.ftp.port";
|
||||||
public static final String ENV_EXPORT_FTP_USER = "cargosoft.export.ftp.user";
|
public static final String ENV_EXPORT_FTP_USER = "cargosoft.export.ftp.user";
|
||||||
public static final String ENV_EXPORT_FTP_PASSWORD = "cargosoft.export.ftp.password";
|
public static final String ENV_EXPORT_FTP_PASSWORD = "cargosoft.export.ftp.password";
|
||||||
|
|
||||||
public static final String ENV_EXPORT_FTP_MAX_ATTACHMENT_SIZED = "cargosoft.export.ftp.maxattachmentsize";
|
public static final String ENV_EXPORT_FTP_MAX_ATTACHMENT_SIZED = "cargosoft.export.ftp.maxattachmentsize";
|
||||||
|
|
||||||
private static Logger logger = Logger.getLogger(FTPConnector.class.getName());
|
private static Logger logger = Logger.getLogger(FTPConnector.class.getName());
|
||||||
|
|
@ -92,7 +93,7 @@ public class FTPConnector {
|
||||||
throw new PluginException(CargosoftExportAdapter.class.getSimpleName(), FTP_ERROR,
|
throw new PluginException(CargosoftExportAdapter.class.getSimpleName(), FTP_ERROR,
|
||||||
"FTP file transfer failed: no ftp host name provided (" + ENV_EXPORT_FTP_HOST + ")!");
|
"FTP file transfer failed: no ftp host name provided (" + ENV_EXPORT_FTP_HOST + ")!");
|
||||||
}
|
}
|
||||||
|
|
||||||
String fileName = fileData.getName();
|
String fileName = fileData.getName();
|
||||||
|
|
||||||
// Compute file path
|
// Compute file path
|
||||||
|
|
|
||||||
|
|
@ -10,15 +10,15 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.engine.index.Category;
|
import org.imixs.workflow.engine.index.Category;
|
||||||
import org.imixs.workflow.engine.index.SearchService;
|
import org.imixs.workflow.engine.index.SearchService;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.ConversationScoped;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
|
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
|
||||||
* Schritte. Die Analyse Seite ist büer das Admin Menü erreichbar.
|
* Schritte. Die Analyse Seite ist büer das Admin Menü erreichbar.
|
||||||
|
|
@ -73,10 +73,10 @@ public class InvoiceAnalyseController implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Category getBuchhaltung() {
|
public Category getBuchhaltung() {
|
||||||
return buchhaltung;
|
return buchhaltung;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int totalCountByCategory(Category cat) {
|
public int totalCountByCategory(Category cat) {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
Collection<Integer> allCounts = cat.getLabels().values();
|
Collection<Integer> allCounts = cat.getLabels().values();
|
||||||
|
|
@ -138,18 +138,18 @@ public class InvoiceAnalyseController implements Serializable {
|
||||||
sachpruefung = taxResult.get(0);
|
sachpruefung = taxResult.get(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// query Buchhaltung
|
|
||||||
query = "(type:workitem OR type:workitemarchive) ";
|
|
||||||
if (start != null || stop != null) {
|
|
||||||
query += "AND (taxonomy.buchhaltung.stop:[" + sDateFrom + " TO " + sDateTo + "]) ";
|
|
||||||
}
|
|
||||||
logger.info(query);
|
|
||||||
taxResult = searchService.getTaxonomyByQuery(query, "taxonomy.buchhaltung.stop.by");
|
|
||||||
if (taxResult.size() > 0) {
|
|
||||||
buchhaltung = taxResult.get(0);
|
|
||||||
|
|
||||||
}
|
// query Buchhaltung
|
||||||
|
query = "(type:workitem OR type:workitemarchive) ";
|
||||||
|
if (start != null || stop != null) {
|
||||||
|
query += "AND (taxonomy.buchhaltung.stop:[" + sDateFrom + " TO " + sDateTo + "]) ";
|
||||||
|
}
|
||||||
|
logger.info(query);
|
||||||
|
taxResult = searchService.getTaxonomyByQuery(query, "taxonomy.buchhaltung.stop.by");
|
||||||
|
if (taxResult.size() > 0) {
|
||||||
|
buchhaltung = taxResult.get(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@ package com.alexanderlogistics;
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
import org.imixs.workflow.engine.WorkflowService;
|
import org.imixs.workflow.engine.WorkflowService;
|
||||||
|
|
@ -13,6 +11,8 @@ import org.imixs.workflow.exceptions.ModelException;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der InvoiceDispatchAdapter verteilt die vom Abteilungsleiter ausgewählten
|
* Der InvoiceDispatchAdapter verteilt die vom Abteilungsleiter ausgewählten
|
||||||
* Rechnungen
|
* Rechnungen
|
||||||
|
|
@ -48,15 +48,15 @@ public class InvoiceDispatchAdapter implements SignalAdapter {
|
||||||
String sSelection = document.getItemValueString("invoice.selection");
|
String sSelection = document.getItemValueString("invoice.selection");
|
||||||
// cut first ,
|
// cut first ,
|
||||||
if (sSelection.startsWith(",")) {
|
if (sSelection.startsWith(",")) {
|
||||||
sSelection=sSelection.substring(1);
|
sSelection = sSelection.substring(1);
|
||||||
}
|
}
|
||||||
String[] ids = sSelection.split(",");
|
String[] ids = sSelection.split(",");
|
||||||
|
|
||||||
if (ids.length==0 || ids[0].isEmpty()) {
|
if (ids.length == 0 || ids[0].isEmpty()) {
|
||||||
throw new PluginException(InvoiceDispatchAdapter.class.getSimpleName(), "PROCESSING_ERROR",
|
throw new PluginException(InvoiceDispatchAdapter.class.getSimpleName(), "PROCESSING_ERROR",
|
||||||
"Es wurden keine Rechnungen zur Verteilung ausgewählt.");
|
"Es wurden keine Rechnungen zur Verteilung ausgewählt.");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
// load invoice
|
// load invoice
|
||||||
ItemCollection invoice = workflowService.getWorkItem(id);
|
ItemCollection invoice = workflowService.getWorkItem(id);
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,15 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
import org.imixs.workflow.faces.util.LoginController;
|
import org.imixs.workflow.faces.util.LoginController;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.ConversationScoped;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The InvoiceDispatchController loads open workitems for the current user
|
* The InvoiceDispatchController loads open workitems for the current user
|
||||||
*
|
*
|
||||||
|
|
@ -34,9 +34,8 @@ public class InvoiceDispatchController implements Serializable {
|
||||||
protected LoginController loginController;
|
protected LoginController loginController;
|
||||||
|
|
||||||
private List<ItemCollection> invoices = null;
|
private List<ItemCollection> invoices = null;
|
||||||
private String filter =null;
|
private String filter = null;
|
||||||
|
|
||||||
|
|
||||||
public String getFilter() {
|
public String getFilter() {
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
@ -54,19 +53,20 @@ public class InvoiceDispatchController implements Serializable {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public void searchInvoices() {
|
public void searchInvoices() {
|
||||||
long l=System.currentTimeMillis();
|
long l = System.currentTimeMillis();
|
||||||
String owner = loginController.getUserPrincipal();
|
String owner = loginController.getUserPrincipal();
|
||||||
String query = "(type:workitem) AND ($modelversion:rechnungseingang-de*) AND ($taskid:5100) AND ($owner:"
|
String query = "(type:workitem) AND ($modelversion:rechnungseingang-de*) AND ($taskid:5100) AND ($owner:"
|
||||||
+ owner + ")";
|
+ owner + ")";
|
||||||
|
|
||||||
if (filter!=null && !filter.isEmpty()) {
|
if (filter != null && !filter.isEmpty()) {
|
||||||
query=query + " AND "+filter.toLowerCase() +"*";
|
query = query + " AND " + filter.toLowerCase() + "*";
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("search: " + query);
|
logger.info("search: " + query);
|
||||||
try {
|
try {
|
||||||
invoices = documentService.findStubs(query, 2000, 0, "$created", false);
|
invoices = documentService.findStubs(query, 2000, 0, "$created", false);
|
||||||
logger.info("found " + invoices.size() + " invoices for StapelVerarbeitung in " + (System.currentTimeMillis()-l) + "ms");
|
logger.info("found " + invoices.size() + " invoices for StapelVerarbeitung in "
|
||||||
|
+ (System.currentTimeMillis() - l) + "ms");
|
||||||
} catch (QueryException e) {
|
} catch (QueryException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
reset();
|
reset();
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package com.alexanderlogistics;
|
package com.alexanderlogistics;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.engine.plugins.AbstractPlugin;
|
import org.imixs.workflow.engine.plugins.AbstractPlugin;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das InvoiceOutgoingPlugin aktualisiert die Debitor E-Mail Adresse
|
* Das InvoiceOutgoingPlugin aktualisiert die Debitor E-Mail Adresse
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,14 @@ import java.util.logging.Logger;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.engine.plugins.AbstractPlugin;
|
import org.imixs.workflow.engine.plugins.AbstractPlugin;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
import org.imixs.workflow.faces.util.ResourceBundleHandler;
|
import org.imixs.workflow.faces.util.ResourceBundleHandler;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das InvoicePlugin prüft die Eingaben auf Gültigkeit, so dass diese problemlos
|
* Das InvoicePlugin prüft die Eingaben auf Gültigkeit, so dass diese problemlos
|
||||||
* nach Cargosoft exportiert werden können.
|
* nach Cargosoft exportiert werden können.
|
||||||
|
|
|
||||||
|
|
@ -33,14 +33,15 @@ import java.util.logging.Logger;
|
||||||
import javax.annotation.security.DeclareRoles;
|
import javax.annotation.security.DeclareRoles;
|
||||||
import javax.annotation.security.RolesAllowed;
|
import javax.annotation.security.RolesAllowed;
|
||||||
import javax.annotation.security.RunAs;
|
import javax.annotation.security.RunAs;
|
||||||
import javax.ejb.EJB;
|
|
||||||
import javax.ejb.Singleton;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
|
|
||||||
|
import jakarta.ejb.EJB;
|
||||||
|
import jakarta.ejb.Singleton;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der KreditorService wird verwendet um einen Kreditor zu finden oder neue
|
* Der KreditorService wird verwendet um einen Kreditor zu finden oder neue
|
||||||
* IBAN/BIC kombinationen aufzunehmen.
|
* IBAN/BIC kombinationen aufzunehmen.
|
||||||
|
|
@ -67,7 +68,8 @@ public class KreditorDebitorService {
|
||||||
DocumentService documentService;
|
DocumentService documentService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Method sucht einen Kreditor/Debitor. Bei Cargosoft haben kreditoren und debitoren
|
* Diese Method sucht einen Kreditor/Debitor. Bei Cargosoft haben kreditoren und
|
||||||
|
* debitoren
|
||||||
* die selbe nummer und haben nur ein führendes D/K (Absolutler Irrsinn)
|
* die selbe nummer und haben nur ein führendes D/K (Absolutler Irrsinn)
|
||||||
* <p>
|
* <p>
|
||||||
* Diese Methode erwartet das führende K oder D
|
* Diese Methode erwartet das führende K oder D
|
||||||
|
|
@ -76,8 +78,9 @@ public class KreditorDebitorService {
|
||||||
*/
|
*/
|
||||||
public ItemCollection findCreditorDebitor(String cdtrNumber) throws PluginException {
|
public ItemCollection findCreditorDebitor(String cdtrNumber) throws PluginException {
|
||||||
|
|
||||||
if (cdtrNumber==null || !(cdtrNumber.startsWith("K") || cdtrNumber.startsWith("D"))) {
|
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!");
|
throw new PluginException(PluginException.class.getName(), "QUERY ERROR",
|
||||||
|
"Invalid debitor/creditor number - prafix K/D expected!");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + cdtrNumber + ")";
|
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + cdtrNumber + ")";
|
||||||
|
|
@ -93,18 +96,17 @@ public class KreditorDebitorService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Method sucht einen Kreditor.
|
* Diese Method sucht einen Kreditor.
|
||||||
* <p>
|
* <p>
|
||||||
* Diese Methode erwartet das führende K
|
* Diese Methode erwartet das führende K
|
||||||
*
|
*
|
||||||
* @throws PluginException
|
* @throws PluginException
|
||||||
*/
|
*/
|
||||||
public ItemCollection findCreditor(String cdtrNumber) throws PluginException {
|
public ItemCollection findCreditor(String cdtrNumber) throws PluginException {
|
||||||
|
|
||||||
if ((!cdtrNumber.startsWith("K"))) {
|
if ((!cdtrNumber.startsWith("K"))) {
|
||||||
cdtrNumber="K"+cdtrNumber;
|
cdtrNumber = "K" + cdtrNumber;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + cdtrNumber + ")";
|
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + cdtrNumber + ")";
|
||||||
|
|
@ -119,18 +121,18 @@ public class KreditorDebitorService {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Method sucht einen Debitor.
|
* Diese Method sucht einen Debitor.
|
||||||
* <p>
|
* <p>
|
||||||
* Diese Methode erwartet das führende D
|
* Diese Methode erwartet das führende D
|
||||||
*
|
*
|
||||||
* @throws PluginException
|
* @throws PluginException
|
||||||
*/
|
*/
|
||||||
public ItemCollection findDebitor(String dbtrNumber) throws PluginException {
|
public ItemCollection findDebitor(String dbtrNumber) throws PluginException {
|
||||||
|
|
||||||
if ((!dbtrNumber.startsWith("D"))) {
|
if ((!dbtrNumber.startsWith("D"))) {
|
||||||
dbtrNumber="D"+dbtrNumber;
|
dbtrNumber = "D" + dbtrNumber;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + dbtrNumber + ")";
|
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + dbtrNumber + ")";
|
||||||
|
|
@ -146,8 +148,6 @@ public class KreditorDebitorService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Methode übertragt neue IBAN/BIC kombis in den kreditor
|
* Diese Methode übertragt neue IBAN/BIC kombis in den kreditor
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,6 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Logger;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.WorkflowKernel;
|
import org.imixs.workflow.WorkflowKernel;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
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.WorkflowController;
|
||||||
import org.imixs.workflow.faces.data.WorkflowEvent;
|
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
|
* Der OPListeController dient dazu eine liste aller offenen Ausgangsrechnungen
|
||||||
* zu bilden
|
* zu bilden
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,6 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Logger;
|
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.usermodel.CellCopyPolicy;
|
||||||
import org.apache.poi.ss.util.CellReference;
|
import org.apache.poi.ss.util.CellReference;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFCell;
|
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.office.config.ConfigService;
|
||||||
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
||||||
|
|
||||||
|
import jakarta.ejb.EJB;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der OPListExportAdapter importiert eine Excel Datei aus einem Textblock
|
* Der OPListExportAdapter importiert eine Excel Datei aus einem Textblock
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,6 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.FillPatternType;
|
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.office.config.ConfigService;
|
||||||
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der OPListExportAdapterByWeek ist ählnlich dem Der OPListExportAdapter. Er
|
* Der OPListExportAdapterByWeek ist ählnlich dem Der OPListExportAdapter. Er
|
||||||
* erzeugt eine Excel tabelle mit allen offenen Rechnungen und gruppiert diese
|
* erzeugt eine Excel tabelle mit allen offenen Rechnungen und gruppiert diese
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,12 @@ package com.alexanderlogistics;
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
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 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.
|
* The OPListExportController is used to configure the OpListeExporterService.
|
||||||
* This service is
|
* This service is
|
||||||
|
|
|
||||||
|
|
@ -31,10 +31,6 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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.marty.team.TeamService;
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.WorkflowKernel;
|
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.ProcessingErrorException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
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
|
* The OPListExportScheduler erzeugt für jeden Bereich ein neues Workitem mit
|
||||||
* einer Excel Datei mit allen offenen Rechnungen.
|
* einer Excel Datei mit allen offenen Rechnungen.
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@ import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.faces.data.WorkflowController;
|
import org.imixs.workflow.faces.data.WorkflowController;
|
||||||
import org.imixs.workflow.sepa.controller.SepaController;
|
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
|
* Der SEPAExportControllerAGL dient dazu die IBAN/BIC einstellungen in
|
||||||
* einem SEPA Export zu aktualiseren. Er wird von der Form
|
* einem SEPA Export zu aktualiseren. Er wird von der Form
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@ package com.alexanderlogistics;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
import org.imixs.workflow.engine.WorkflowService;
|
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.ProcessingErrorException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der ZahlungsavisAdapter verknüpft eine Rechnung mit einem Zahlungsavsis zum
|
* Der ZahlungsavisAdapter verknüpft eine Rechnung mit einem Zahlungsavsis zum
|
||||||
* aktuellen Kreiditor. Existiert aktuell kein offener Zahlungsavis für diesen
|
* aktuellen Kreiditor. Existiert aktuell kein offener Zahlungsavis für diesen
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@ import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.faces.data.WorkflowController;
|
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
|
* Der ZahlungsavisController dient dazu eine bereits zugewiesene Rechnung
|
||||||
* wieder aus dem Zahlugnsavis zu entfernen.
|
* wieder aus dem Zahlugnsavis zu entfernen.
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@ import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
||||||
import org.apache.poi.ss.util.CellReference;
|
import org.apache.poi.ss.util.CellReference;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
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.AdapterException;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
|
|
||||||
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der ZahlungsavisAdapter importiert eine Excel Datei aus einem Textblock
|
* Der ZahlungsavisAdapter importiert eine Excel Datei aus einem Textblock
|
||||||
*
|
*
|
||||||
|
|
@ -43,7 +42,7 @@ import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
||||||
* <p>
|
* <p>
|
||||||
* Der Adapter kopiert die Rechnungsdaten in neue Zeilen, welche ab Zeilnenummer
|
* Der Adapter kopiert die Rechnungsdaten in neue Zeilen, welche ab Zeilnenummer
|
||||||
* 16 eingefügt werden.
|
* 16 eingefügt werden.
|
||||||
* <p>
|
* <p>
|
||||||
* Dabei werden Gutschriften in spalte E und Rechnungen in Spalte F eingetrgen.
|
* Dabei werden Gutschriften in spalte E und Rechnungen in Spalte F eingetrgen.
|
||||||
* <p>
|
* <p>
|
||||||
* Abschliessend wird die Zelle 'TOTAL' noch aktualisiert.
|
* Abschliessend wird die Zelle 'TOTAL' noch aktualisiert.
|
||||||
|
|
@ -139,9 +138,9 @@ public class ZahlungsavisExportAdapter extends POIFindReplaceAdapter {
|
||||||
XSSFRow referenceRow = sheet.getRow(cr.getRow());
|
XSSFRow referenceRow = sheet.getRow(cr.getRow());
|
||||||
int referenceRowPos = 16;
|
int referenceRowPos = 16;
|
||||||
int rowPos = 16;
|
int rowPos = 16;
|
||||||
//int lastRow = sheet.getLastRowNum();
|
// int lastRow = sheet.getLastRowNum();
|
||||||
int lastRow = 999;
|
int lastRow = 999;
|
||||||
logger.finest("Last rownum="+lastRow);
|
logger.finest("Last rownum=" + lastRow);
|
||||||
sheet.shiftRows(rowPos, lastRow, invoiceIDs.size(), true, true);
|
sheet.shiftRows(rowPos, lastRow, invoiceIDs.size(), true, true);
|
||||||
|
|
||||||
for (String invoiceID : invoiceIDs) {
|
for (String invoiceID : invoiceIDs) {
|
||||||
|
|
@ -155,7 +154,7 @@ public class ZahlungsavisExportAdapter extends POIFindReplaceAdapter {
|
||||||
row.getCell(1).setCellValue(invoice.getItemValueDate("invoice.date"));
|
row.getCell(1).setCellValue(invoice.getItemValueDate("invoice.date"));
|
||||||
row.getCell(2).setCellValue(invoice.getItemValueString("invoice.number"));
|
row.getCell(2).setCellValue(invoice.getItemValueString("invoice.number"));
|
||||||
row.getCell(3).setCellValue(invoice.getItemValueDate("invoice.duedate"));
|
row.getCell(3).setCellValue(invoice.getItemValueDate("invoice.duedate"));
|
||||||
|
|
||||||
if ("credit".equals(invoice.getItemValueString("payment.type"))) {
|
if ("credit".equals(invoice.getItemValueString("payment.type"))) {
|
||||||
// Gutschrift
|
// Gutschrift
|
||||||
row.getCell(4).setCellValue(invoice.getItemValueDouble("invoice.total"));
|
row.getCell(4).setCellValue(invoice.getItemValueDouble("invoice.total"));
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ package com.alexanderlogistics;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
import org.imixs.workflow.exceptions.AdapterException;
|
import org.imixs.workflow.exceptions.AdapterException;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der ZahlungseingangSaldoAdapter korrigiert den Saldo einer Ausgangsrechnung
|
* Der ZahlungseingangSaldoAdapter korrigiert den Saldo einer Ausgangsrechnung
|
||||||
* anhand der Zahlungsdaten in einem Zahlungseingangsworkflow.
|
* anhand der Zahlungsdaten in einem Zahlungseingangsworkflow.
|
||||||
|
|
@ -83,7 +83,7 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
|
||||||
if (paymentWarning.isEmpty()) {
|
if (paymentWarning.isEmpty()) {
|
||||||
// falls mehr einzelsummen eingeben wurden als der oben angegeben Total Pamyment
|
// falls mehr einzelsummen eingeben wurden als der oben angegeben Total Pamyment
|
||||||
// dann soll eine Warnung ausgegen werden.
|
// 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");
|
document.setItemValue("payment.warning", "invalid saldo");
|
||||||
throw new PluginException(PluginException.class.getName(),
|
throw new PluginException(PluginException.class.getName(),
|
||||||
ZahlungseingangService.ERROR_PAYMENT_BOOKING_FAILED,
|
ZahlungseingangService.ERROR_PAYMENT_BOOKING_FAILED,
|
||||||
|
|
@ -91,7 +91,6 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (ItemCollection payment : paymentDetails) {
|
for (ItemCollection payment : paymentDetails) {
|
||||||
|
|
||||||
ItemCollection invoice = zahlungseingangService.findInvoice(payment.getUniqueID());
|
ItemCollection invoice = zahlungseingangService.findInvoice(payment.getUniqueID());
|
||||||
|
|
@ -103,7 +102,6 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
|
||||||
float invoicePaymentAmount = payment.getItemValueFloat("payment.amount");
|
float invoicePaymentAmount = payment.getItemValueFloat("payment.amount");
|
||||||
float invoiceRate = invoice.getItemValueFloat("invoice.rate");
|
float invoiceRate = invoice.getItemValueFloat("invoice.rate");
|
||||||
|
|
||||||
|
|
||||||
if (!invoiceCurrency.equals(paymentCurrency)) {
|
if (!invoiceCurrency.equals(paymentCurrency)) {
|
||||||
if (invoiceRate == 0) {
|
if (invoiceRate == 0) {
|
||||||
throw new PluginException(PluginException.class.getName(),
|
throw new PluginException(PluginException.class.getName(),
|
||||||
|
|
@ -112,19 +110,18 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
|
||||||
+ " nicht mit der Währung der Rechnung " + invoiceNumber + " übereinstimmt!");
|
+ " nicht mit der Währung der Rechnung " + invoiceNumber + " übereinstimmt!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Falls die Währung der Rechnung von der Währung der Zahlung abweicht, dann
|
* Falls die Währung der Rechnung von der Währung der Zahlung abweicht, dann
|
||||||
* rechnen wir den PaymentAmmout mit der Rate aus.
|
* rechnen wir den PaymentAmmout mit der Rate aus.
|
||||||
*/
|
*/
|
||||||
if ("EUR".equals(paymentCurrency) &&
|
if ("EUR".equals(paymentCurrency) &&
|
||||||
!invoiceCurrency.equals(paymentCurrency) && invoiceRate != 0) {
|
!invoiceCurrency.equals(paymentCurrency) && invoiceRate != 0) {
|
||||||
invoicePaymentAmount = invoicePaymentAmount*invoiceRate;
|
invoicePaymentAmount = invoicePaymentAmount * invoiceRate;
|
||||||
// runde auf 2 Stellen
|
// runde auf 2 Stellen
|
||||||
invoicePaymentAmount =(float) InvoiceUtil.round(invoicePaymentAmount);
|
invoicePaymentAmount = (float) InvoiceUtil.round(invoicePaymentAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// vergeiche Restsaldo mit payment für diese Rechnung
|
// vergeiche Restsaldo mit payment für diese Rechnung
|
||||||
if (Math.abs(InvoiceUtil.round(invoicePaymentAmount)) > Math.abs(InvoiceUtil.round(invoiceSaldo))) {
|
if (Math.abs(InvoiceUtil.round(invoicePaymentAmount)) > Math.abs(InvoiceUtil.round(invoiceSaldo))) {
|
||||||
throw new PluginException(PluginException.class.getName(),
|
throw new PluginException(PluginException.class.getName(),
|
||||||
|
|
@ -135,9 +132,8 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
|
||||||
|
|
||||||
// jetzt den Rechnungsbetrag verkleinern
|
// jetzt den Rechnungsbetrag verkleinern
|
||||||
invoiceSaldo = invoiceSaldo - invoicePaymentAmount;
|
invoiceSaldo = invoiceSaldo - invoicePaymentAmount;
|
||||||
|
|
||||||
|
invoiceSaldo = (float) InvoiceUtil.round(invoiceSaldo);
|
||||||
invoiceSaldo=(float) InvoiceUtil.round(invoiceSaldo);
|
|
||||||
invoice.setItemValue("invoice.saldo", invoiceSaldo);
|
invoice.setItemValue("invoice.saldo", invoiceSaldo);
|
||||||
invoice.event(ZahlungseingangService.EVENT_UPDATE_INVOICE);
|
invoice.event(ZahlungseingangService.EVENT_UPDATE_INVOICE);
|
||||||
zahlungseingangService.processInvoice(invoice);
|
zahlungseingangService.processInvoice(invoice);
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,6 @@ import java.util.logging.Logger;
|
||||||
import javax.annotation.security.DeclareRoles;
|
import javax.annotation.security.DeclareRoles;
|
||||||
import javax.annotation.security.RolesAllowed;
|
import javax.annotation.security.RolesAllowed;
|
||||||
import javax.annotation.security.RunAs;
|
import javax.annotation.security.RunAs;
|
||||||
import javax.ejb.Singleton;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
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.PluginException;
|
||||||
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
||||||
|
|
||||||
|
import jakarta.ejb.Singleton;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der ZahlungseingangService wird vom ZahlungseingangSaldoAdapter verwendet um
|
* Der ZahlungseingangService wird vom ZahlungseingangSaldoAdapter verwendet um
|
||||||
* Ausgangsrechnungen zu akutalisieren.
|
* Ausgangsrechnungen zu akutalisieren.
|
||||||
|
|
@ -63,7 +64,7 @@ import org.imixs.workflow.exceptions.ProcessingErrorException;
|
||||||
@Singleton
|
@Singleton
|
||||||
@RunAs("org.imixs.ACCESSLEVEL.MANAGERACCESS")
|
@RunAs("org.imixs.ACCESSLEVEL.MANAGERACCESS")
|
||||||
public class ZahlungseingangService {
|
public class ZahlungseingangService {
|
||||||
|
|
||||||
public static final int EVENT_UPDATE_INVOICE = 200;
|
public static final int EVENT_UPDATE_INVOICE = 200;
|
||||||
public static final String ERROR_PAYMENT_BOOKING_FAILED = "PAYMENT_BOOKING_FAILED";
|
public static final String ERROR_PAYMENT_BOOKING_FAILED = "PAYMENT_BOOKING_FAILED";
|
||||||
public static final String ITEM_PAYMENT_DETAILS = "payment.details";
|
public static final String ITEM_PAYMENT_DETAILS = "payment.details";
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,15 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.engine.WorkflowService;
|
import org.imixs.workflow.engine.WorkflowService;
|
||||||
import org.imixs.workflow.faces.data.WorkflowController;
|
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
|
* Der ZollListController dient dazu in einer Zoll Liste die Rechnungen
|
||||||
* anzuzeigen,
|
* anzuzeigen,
|
||||||
|
|
@ -28,70 +28,70 @@ import org.imixs.workflow.faces.data.WorkflowController;
|
||||||
@ConversationScoped
|
@ConversationScoped
|
||||||
public class ZollListController implements Serializable {
|
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 currencyFilter = "-";
|
||||||
private String lastCurrencyFilter = null;
|
private String lastCurrencyFilter = null;
|
||||||
|
|
||||||
private List<ItemCollection> invoiceList = null;
|
private List<ItemCollection> invoiceList = null;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected WorkflowController workflowController;
|
protected WorkflowController workflowController;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected WorkflowService workflowService;
|
protected WorkflowService workflowService;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ZahlungseingangService zahlungseingangService;
|
ZahlungseingangService zahlungseingangService;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected DocumentService documentService;
|
protected DocumentService documentService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Methode ist eine Dummy Methode die nur mal 3 Rechnungen simmuliert.
|
* Diese Methode ist eine Dummy Methode die nur mal 3 Rechnungen simmuliert.
|
||||||
*
|
*
|
||||||
* Später wird diese Methode irgend was anderes machen.
|
* Später wird diese Methode irgend was anderes machen.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public List<ItemCollection> getInvoices() {
|
public List<ItemCollection> getInvoices() {
|
||||||
invoiceList = new ArrayList<ItemCollection>();
|
invoiceList = new ArrayList<ItemCollection>();
|
||||||
|
|
||||||
// dummy1
|
// dummy1
|
||||||
|
|
||||||
invoiceList.add(new ItemCollection()
|
invoiceList.add(new ItemCollection()
|
||||||
.setItemValue("invoice.text", "LA-HOL-2401-002")
|
.setItemValue("invoice.text", "LA-HOL-2401-002")
|
||||||
.setItemValue("invoice.atc", "ATC400058750120242452")
|
.setItemValue("invoice.atc", "ATC400058750120242452")
|
||||||
.setItemValue("dbtr.name", "D18317 Big Belly Solar GmbH")
|
.setItemValue("dbtr.name", "D18317 Big Belly Solar GmbH")
|
||||||
.setItemValue("invoice.ZOLL", 18.45)
|
.setItemValue("invoice.ZOLL", 18.45)
|
||||||
.setItemValue("invoice.EUST", 0)
|
.setItemValue("invoice.EUST", 0)
|
||||||
.setItemValue("invoice.number", ""));
|
.setItemValue("invoice.number", ""));
|
||||||
|
|
||||||
invoiceList.add(new ItemCollection()
|
invoiceList.add(new ItemCollection()
|
||||||
.setItemValue("invoice.text", "LA-HOL-2401-003")
|
.setItemValue("invoice.text", "LA-HOL-2401-003")
|
||||||
.setItemValue("invoice.atc", "ATC400058750120242450")
|
.setItemValue("invoice.atc", "ATC400058750120242450")
|
||||||
.setItemValue("dbtr.name", "D18317 Big Belly Solar GmbH")
|
.setItemValue("dbtr.name", "D18317 Big Belly Solar GmbH")
|
||||||
.setItemValue("invoice.ZOLL", 100.45)
|
.setItemValue("invoice.ZOLL", 100.45)
|
||||||
.setItemValue("invoice.EUST", 0)
|
.setItemValue("invoice.EUST", 0)
|
||||||
.setItemValue("invoice.number", ""));
|
.setItemValue("invoice.number", ""));
|
||||||
|
|
||||||
invoiceList.add(new ItemCollection()
|
invoiceList.add(new ItemCollection()
|
||||||
.setItemValue("invoice.text", "LA-PAP-2401-003")
|
.setItemValue("invoice.text", "LA-PAP-2401-003")
|
||||||
.setItemValue("invoice.atc", "345345")
|
.setItemValue("invoice.atc", "345345")
|
||||||
.setItemValue("dbtr.name", "D18006 GPI BERLIN GMBH")
|
.setItemValue("dbtr.name", "D18006 GPI BERLIN GMBH")
|
||||||
.setItemValue("invoice.ZOLL", 253.4)
|
.setItemValue("invoice.ZOLL", 253.4)
|
||||||
.setItemValue("invoice.EUST", 0)
|
.setItemValue("invoice.EUST", 0)
|
||||||
.setItemValue("invoice.number", ""));
|
.setItemValue("invoice.number", ""));
|
||||||
|
|
||||||
return invoiceList;
|
return invoiceList;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,6 @@ import java.util.List;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ejb.Stateless;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
|
|
@ -70,6 +68,9 @@ import org.xml.sax.SAXException;
|
||||||
import com.alexanderlogistics.InvoiceUtil;
|
import com.alexanderlogistics.InvoiceUtil;
|
||||||
import com.alexanderlogistics.xml.CargosoftXMLInvoiceImportService;
|
import com.alexanderlogistics.xml.CargosoftXMLInvoiceImportService;
|
||||||
|
|
||||||
|
import jakarta.ejb.Stateless;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
** Dieser Service korrigiert falsch importierte Cargosoft daten.
|
** Dieser Service korrigiert falsch importierte Cargosoft daten.
|
||||||
* Ausgangsrechnungen die ein falsches Jahr haben.
|
* Ausgangsrechnungen die ein falsches Jahr haben.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
package com.alexanderlogistics.datev;
|
package com.alexanderlogistics.datev;
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Imixs Workflow Technology
|
* Imixs Workflow Technology
|
||||||
* Copyright (C) 2003, 2008 Imixs Software Solutions GmbH,
|
* Copyright (C) 2003, 2008 Imixs Software Solutions GmbH,
|
||||||
|
|
@ -25,12 +26,11 @@ package com.alexanderlogistics.datev;
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
|
||||||
import javax.inject.Named;
|
|
||||||
|
|
||||||
|
|
||||||
import org.imixs.workflow.engine.scheduler.SchedulerController;
|
import org.imixs.workflow.engine.scheduler.SchedulerController;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.RequestScoped;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The DatevController is used to configure the DatevScheduler. This service is
|
* The DatevController is used to configure the DatevScheduler. This service is
|
||||||
* used to generate datev export workitems.
|
* used to generate datev export workitems.
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,6 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ejb.EJB;
|
|
||||||
|
|
||||||
import org.apache.commons.net.ftp.FTP;
|
import org.apache.commons.net.ftp.FTP;
|
||||||
import org.apache.commons.net.ftp.FTPClient;
|
import org.apache.commons.net.ftp.FTPClient;
|
||||||
import org.apache.commons.net.ftp.FTPSClient;
|
import org.apache.commons.net.ftp.FTPSClient;
|
||||||
|
|
@ -50,6 +48,8 @@ import org.imixs.workflow.engine.scheduler.SchedulerService;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
|
|
||||||
|
import jakarta.ejb.EJB;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The CargosoftExportScheduler exportiert eine csv Datei auf eine FTP Laufwerk
|
* The CargosoftExportScheduler exportiert eine csv Datei auf eine FTP Laufwerk
|
||||||
* mit allen noch offenen Rechnungen. Diese Datei wird von Cargosoft dann
|
* mit allen noch offenen Rechnungen. Diese Datei wird von Cargosoft dann
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,6 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.marty.team.TeamService;
|
import org.imixs.marty.team.TeamService;
|
||||||
import org.imixs.workflow.FileData;
|
import org.imixs.workflow.FileData;
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
|
|
@ -32,6 +30,8 @@ import com.alexanderlogistics.InvoiceUtil;
|
||||||
import com.alexanderlogistics.KreditorDebitorService;
|
import com.alexanderlogistics.KreditorDebitorService;
|
||||||
import com.alexanderlogistics.mahnlauf.MahnlaufService;
|
import com.alexanderlogistics.mahnlauf.MahnlaufService;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der DatevCargosoftImportAdapter liest eine von Cargosoft bereitgestellte
|
* Der DatevCargosoftImportAdapter liest eine von Cargosoft bereitgestellte
|
||||||
* DATEV Datei ein und erzeugt Ausgangsrechnungs Workitems. Die Cargosoft DATEV
|
* DATEV Datei ein und erzeugt Ausgangsrechnungs Workitems. Die Cargosoft DATEV
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,7 @@
|
||||||
package com.alexanderlogistics.dwc;
|
package com.alexanderlogistics.dwc;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.text.DateFormat;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ejb.EJB;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.xml.bind.JAXBException;
|
|
||||||
import javax.xml.transform.TransformerException;
|
|
||||||
|
|
||||||
import org.imixs.workflow.FileData;
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
import org.imixs.workflow.engine.ReportService;
|
import org.imixs.workflow.engine.ReportService;
|
||||||
|
|
@ -21,7 +9,8 @@ import org.imixs.workflow.exceptions.AdapterException;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.sepa.services.SepaWorkflowService;
|
import org.imixs.workflow.sepa.services.SepaWorkflowService;
|
||||||
|
|
||||||
import com.alexanderlogistics.OPListExportAdapterByWeek;
|
import jakarta.ejb.EJB;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TheSEPAExportAdapterNBD is an extension of the SEPAExportAdapter.
|
* TheSEPAExportAdapterNBD is an extension of the SEPAExportAdapter.
|
||||||
|
|
@ -58,95 +47,24 @@ public class SEPAExportAdapterNBD implements SignalAdapter {
|
||||||
|
|
||||||
// Textblock laden
|
// Textblock laden
|
||||||
// load the text block
|
// load the text block
|
||||||
FileData fileData = loadTextBlockFileData(textblockRef, template);
|
// FileData fileData = loadTextBlockFileData(textblockRef, template);
|
||||||
|
|
||||||
// do we found the document?
|
// // do we found the document?
|
||||||
if (fileData == null) {
|
// if (fileData == null) {
|
||||||
throw new PluginException(OPListExportAdapterByWeek.class.getSimpleName(), ERROR_CONFIG,
|
// throw new PluginException(OPListExportAdapterByWeek.class.getSimpleName(),
|
||||||
"invalid op-list configuration in model event - template=" + template + " not found!");
|
// ERROR_CONFIG,
|
||||||
}
|
// "invalid op-list configuration in model event - template=" + template + " not
|
||||||
fileData.setName(targetName);
|
// found!");
|
||||||
// append document
|
// }
|
||||||
logger.info("...append new op-list Template: " + targetName);
|
// fileData.setName(targetName);
|
||||||
|
// // append document
|
||||||
|
// logger.info("...append new op-list Template: " + targetName);
|
||||||
|
|
||||||
document.addFileData(fileData);
|
// document.addFileData(fileData);
|
||||||
|
|
||||||
/* Processing .... */
|
/* Processing .... */
|
||||||
String key = sepaExport.getItemValueString("name");
|
String key = sepaExport.getItemValueString("name");
|
||||||
|
|
||||||
// load the report
|
|
||||||
ItemCollection report = reportService.findReport(event.getItemValueString("txtReportName"));
|
|
||||||
if (report == null) {
|
|
||||||
throw new PluginException(SEPAExportAdapterNBD.class.getName(), SepaWorkflowService.REPORT_ERROR,
|
|
||||||
"Missing report definition. Unable to load report '" + event.getItemValueString("txtReportName")
|
|
||||||
+ "'. Please check model configuration ");
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the data source based on the $workitemref ....
|
|
||||||
List<String> refList = sepaExport.getItemValue("$workitemref");
|
|
||||||
List<ItemCollection> data = new ArrayList<ItemCollection>();
|
|
||||||
ItemCollection configuration = sepaWorkflowService.loadConfiguration();
|
|
||||||
|
|
||||||
logger.info("...SEPA export started - " + refList.size() + " invoices found...");
|
|
||||||
|
|
||||||
for (String ref : refList) {
|
|
||||||
// load invoice
|
|
||||||
ItemCollection invoice = sepaWorkflowService.loadInvoice(ref);
|
|
||||||
if (invoice == null) {
|
|
||||||
logger.warning("Invoice '" + ref + "' not found! SEPA Export can not be executed");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// avoid unsupported characters in sepa fields
|
|
||||||
invoice = sepaWorkflowService.harmonizeSEPAItem(invoice, SepaWorkflowService.ITEM_CDTR_NAME);
|
|
||||||
invoice = sepaWorkflowService.harmonizeSEPAItem(invoice, SepaWorkflowService.ITEM_DBTR_NAME);
|
|
||||||
data.add(invoice);
|
|
||||||
}
|
|
||||||
|
|
||||||
// finally we add the sepa export document to the data collection
|
|
||||||
data.add(sepaExport);
|
|
||||||
|
|
||||||
// create the attachment based on the report definition
|
|
||||||
// attach a file to the current workitem
|
|
||||||
// create a harmonized debitor name for the filename.....
|
|
||||||
String sDepName = sepaExport.getItemValueString(SepaWorkflowService.ITEM_DBTR_NAME);
|
|
||||||
sDepName = sDepName.replace("&", "_");
|
|
||||||
sDepName = sDepName.replace(">", "_");
|
|
||||||
sDepName = sDepName.replace("<", "_");
|
|
||||||
sDepName = sDepName.replace(" ", "_");
|
|
||||||
// build a timestamp for the filename
|
|
||||||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HHmm");
|
|
||||||
String sepaFileName = "sepa_" + sDepName + "_" + df.format(new Date()) + ".xml";
|
|
||||||
try {
|
|
||||||
// now we transform the data source
|
|
||||||
// if an optional report definition was defined, this report is used for XSL
|
|
||||||
// processing if not, than the main report definition is used
|
|
||||||
FileData filedata = null;
|
|
||||||
String optionalSepaReport = sepaExport.getItemValueString(SepaWorkflowService.ITEM_SEPA_REPORT);
|
|
||||||
ItemCollection reportOptional = reportService.findReport(optionalSepaReport);
|
|
||||||
if (reportOptional != null) {
|
|
||||||
// use optional report
|
|
||||||
filedata = reportService.transformDataSource(reportOptional, data, sepaFileName);
|
|
||||||
sepaWorkflowService.logMessage(
|
|
||||||
"...SEPA export report=" + sepaExport.getItemValueString(SepaWorkflowService.ITEM_SEPA_REPORT),
|
|
||||||
configuration, sepaExport);
|
|
||||||
} else {
|
|
||||||
if (!optionalSepaReport.isEmpty()) {
|
|
||||||
sepaWorkflowService.logMessage("...WARNING - SEPA export report " + optionalSepaReport
|
|
||||||
+ " not found! Default report will be used.", configuration, sepaExport);
|
|
||||||
}
|
|
||||||
// use the default report
|
|
||||||
filedata = reportService.transformDataSource(report, data, sepaFileName);
|
|
||||||
}
|
|
||||||
// attach the file
|
|
||||||
sepaExport.addFileData(filedata);
|
|
||||||
} catch (JAXBException | IOException | TransformerException e) {
|
|
||||||
throw new PluginException(SEPAExportAdapterNBD.class.getName(), SepaWorkflowService.REPORT_ERROR,
|
|
||||||
"Failed to generate SEPA File:" + e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
// write log
|
|
||||||
logger.info("...SEPA export " + key + " finished.");
|
|
||||||
|
|
||||||
return sepaExport;
|
return sepaExport;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@ package com.alexanderlogistics.mahnlauf;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
import org.imixs.workflow.engine.WorkflowService;
|
import org.imixs.workflow.engine.WorkflowService;
|
||||||
|
|
@ -15,8 +13,11 @@ import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der InkassoAppendAdapter verknüpft eine Rechnung mit einem Inkasso Workflow zum
|
* Der InkassoAppendAdapter verknüpft eine Rechnung mit einem Inkasso Workflow
|
||||||
|
* zum
|
||||||
* aktuellen Debitor. Existiert aktuell kein Inkasso für diesen
|
* aktuellen Debitor. Existiert aktuell kein Inkasso für diesen
|
||||||
* Debitor erzeugt der Adapter automatisch eine neue Prozessinstanz.
|
* Debitor erzeugt der Adapter automatisch eine neue Prozessinstanz.
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -50,15 +51,16 @@ public class InkassoAppendAdapter implements SignalAdapter {
|
||||||
public ItemCollection execute(ItemCollection document, ItemCollection event)
|
public ItemCollection execute(ItemCollection document, ItemCollection event)
|
||||||
throws AdapterException, PluginException {
|
throws AdapterException, PluginException {
|
||||||
|
|
||||||
ItemCollection inkassoWorkitem=appendInvoice(document);
|
ItemCollection inkassoWorkitem = appendInvoice(document);
|
||||||
|
|
||||||
document.setItemValue("debtcollection.ref", inkassoWorkitem.getUniqueID());
|
document.setItemValue("debtcollection.ref", inkassoWorkitem.getUniqueID());
|
||||||
|
|
||||||
return document;
|
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.
|
* Die method liefert das Inkasso Workitem zurück.
|
||||||
*
|
*
|
||||||
* @param document
|
* @param document
|
||||||
|
|
@ -72,12 +74,11 @@ public class InkassoAppendAdapter implements SignalAdapter {
|
||||||
throw new PluginException(PluginException.class.getName(), ERROR_MISSING_DATA,
|
throw new PluginException(PluginException.class.getName(), ERROR_MISSING_DATA,
|
||||||
"Inkasso kann nicht erzeugt werden. Bitte wählen Sie zuerst einen Debitor aus.");
|
"Inkasso kann nicht erzeugt werden. Bitte wählen Sie zuerst einen Debitor aus.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
logger.info("......Search Inkasso '" + dbtrNumber + "'...");
|
logger.info("......Search Inkasso '" + dbtrNumber + "'...");
|
||||||
ItemCollection inkasso;
|
ItemCollection inkasso;
|
||||||
try {
|
try {
|
||||||
inkasso = findInkasso(dbtrNumber,currency);
|
inkasso = findInkasso(dbtrNumber, currency);
|
||||||
if (inkasso == null) {
|
if (inkasso == null) {
|
||||||
// create a new one
|
// create a new one
|
||||||
inkasso = new ItemCollection().workflowGroup("Inkasso").task(1000).event(100);
|
inkasso = new ItemCollection().workflowGroup("Inkasso").task(1000).event(100);
|
||||||
|
|
@ -108,14 +109,13 @@ public class InkassoAppendAdapter implements SignalAdapter {
|
||||||
* @return
|
* @return
|
||||||
* @throws QueryException
|
* @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*) ";
|
String query = "(type:workitem) AND ($modelversion:inkasso*) ";
|
||||||
List<ItemCollection> resultList = workflowService.getDocumentService().find(query, 999, 0, "$modified", true);
|
List<ItemCollection> resultList = workflowService.getDocumentService().find(query, 999, 0, "$modified", true);
|
||||||
|
|
||||||
for (ItemCollection inkasso : resultList) {
|
for (ItemCollection inkasso : resultList) {
|
||||||
if (dbtrNumber.equals(inkasso.getItemValueString(ITEM_DBTR_NUMBER))
|
if (dbtrNumber.equals(inkasso.getItemValueString(ITEM_DBTR_NUMBER))
|
||||||
&& currency.equals(inkasso.getItemValueString("invoice.currency"))
|
&& currency.equals(inkasso.getItemValueString("invoice.currency"))) {
|
||||||
) {
|
|
||||||
return inkasso;
|
return inkasso;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,16 @@ import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.faces.data.WorkflowController;
|
import org.imixs.workflow.faces.data.WorkflowController;
|
||||||
|
|
||||||
import com.alexanderlogistics.InvoiceUtil;
|
import com.alexanderlogistics.InvoiceUtil;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.ConversationScoped;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der InkassoController dient dazu eine bereits zugewiesene Rechnung
|
* Der InkassoController dient dazu eine bereits zugewiesene Rechnung
|
||||||
* wieder aus dem Inkasso zu entfernen.
|
* wieder aus dem Inkasso zu entfernen.
|
||||||
|
|
@ -54,7 +54,7 @@ public class InkassoController implements Serializable {
|
||||||
ItemCollection doc = documentService.load(id);
|
ItemCollection doc = documentService.load(id);
|
||||||
if (doc != null) {
|
if (doc != null) {
|
||||||
result = result + doc.getItemValueDouble(item);
|
result = result + doc.getItemValueDouble(item);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
logger.warning("invalid read access to calculate sum");
|
logger.warning("invalid read access to calculate sum");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@ import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
||||||
import org.apache.poi.ss.util.CellReference;
|
import org.apache.poi.ss.util.CellReference;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
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.AdapterException;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
|
|
||||||
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der ZahlungsavisAdapter importiert eine Excel Datei aus einem Textblock
|
* Der ZahlungsavisAdapter importiert eine Excel Datei aus einem Textblock
|
||||||
*
|
*
|
||||||
|
|
@ -43,7 +42,7 @@ import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
||||||
* <p>
|
* <p>
|
||||||
* Der Adapter kopiert die Rechnungsdaten in neue Zeilen, welche ab Zeilnenummer
|
* Der Adapter kopiert die Rechnungsdaten in neue Zeilen, welche ab Zeilnenummer
|
||||||
* 16 eingefügt werden.
|
* 16 eingefügt werden.
|
||||||
* <p>
|
* <p>
|
||||||
* Dabei werden Gutschriften in spalte E und Rechnungen in Spalte F eingetrgen.
|
* Dabei werden Gutschriften in spalte E und Rechnungen in Spalte F eingetrgen.
|
||||||
* <p>
|
* <p>
|
||||||
* Abschliessend wird die Zelle 'TOTAL' noch aktualisiert.
|
* Abschliessend wird die Zelle 'TOTAL' noch aktualisiert.
|
||||||
|
|
@ -139,9 +138,9 @@ public class InkassoExportAdapter extends POIFindReplaceAdapter {
|
||||||
XSSFRow referenceRow = sheet.getRow(cr.getRow());
|
XSSFRow referenceRow = sheet.getRow(cr.getRow());
|
||||||
int referenceRowPos = 16;
|
int referenceRowPos = 16;
|
||||||
int rowPos = 16;
|
int rowPos = 16;
|
||||||
//int lastRow = sheet.getLastRowNum();
|
// int lastRow = sheet.getLastRowNum();
|
||||||
int lastRow = 999;
|
int lastRow = 999;
|
||||||
logger.finest("Last rownum="+lastRow);
|
logger.finest("Last rownum=" + lastRow);
|
||||||
sheet.shiftRows(rowPos, lastRow, invoiceIDs.size(), true, true);
|
sheet.shiftRows(rowPos, lastRow, invoiceIDs.size(), true, true);
|
||||||
|
|
||||||
for (String invoiceID : invoiceIDs) {
|
for (String invoiceID : invoiceIDs) {
|
||||||
|
|
|
||||||
|
|
@ -2,16 +2,12 @@ package com.alexanderlogistics.mahnlauf;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ejb.EJB;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.Model;
|
import org.imixs.workflow.Model;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
|
|
@ -23,6 +19,9 @@ import org.imixs.workflow.exceptions.PluginException;
|
||||||
|
|
||||||
import com.alexanderlogistics.InvoiceUtil;
|
import com.alexanderlogistics.InvoiceUtil;
|
||||||
|
|
||||||
|
import jakarta.ejb.EJB;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The MahnlaufExecuteAdapter triggers the event 300 for all linked invoices
|
* The MahnlaufExecuteAdapter triggers the event 300 for all linked invoices
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -30,7 +29,7 @@ import com.alexanderlogistics.InvoiceUtil;
|
||||||
* processed invoices. This item is used in the Workflow Model to construct a
|
* processed invoices. This item is used in the Workflow Model to construct a
|
||||||
* HTML Table wen sending the mail.
|
* HTML Table wen sending the mail.
|
||||||
* <p>
|
* <p>
|
||||||
* 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.
|
* the value contains email addresses separated with new lines.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
@ -108,9 +107,9 @@ public class MahnlaufExecuteAdapter implements SignalAdapter {
|
||||||
Calendar cal = Calendar.getInstance();
|
Calendar cal = Calendar.getInstance();
|
||||||
cal.setTime(new Date());
|
cal.setTime(new Date());
|
||||||
cal.add(Calendar.DATE, period);
|
cal.add(Calendar.DATE, period);
|
||||||
cal.set(Calendar.HOUR,0);
|
cal.set(Calendar.HOUR, 0);
|
||||||
cal.set(Calendar.MINUTE,0);
|
cal.set(Calendar.MINUTE, 0);
|
||||||
cal.set(Calendar.SECOND,0);
|
cal.set(Calendar.SECOND, 0);
|
||||||
invoice.setItemValue("invoice.reminder", cal.getTime());
|
invoice.setItemValue("invoice.reminder", cal.getTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -121,24 +120,24 @@ public class MahnlaufExecuteAdapter implements SignalAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (invoice.getTaskID()) {
|
switch (invoice.getTaskID()) {
|
||||||
case 5200:
|
case 5200:
|
||||||
case 5201:
|
case 5201:
|
||||||
if (dunningLevel < 1)
|
if (dunningLevel < 1)
|
||||||
dunningLevel = 1;
|
dunningLevel = 1;
|
||||||
break;
|
break;
|
||||||
case 5210:
|
case 5210:
|
||||||
case 5211:
|
case 5211:
|
||||||
if (dunningLevel < 2)
|
if (dunningLevel < 2)
|
||||||
dunningLevel = 2;
|
dunningLevel = 2;
|
||||||
break;
|
break;
|
||||||
case 5220:
|
case 5220:
|
||||||
if (dunningLevel < 3)
|
if (dunningLevel < 3)
|
||||||
dunningLevel = 3;
|
dunningLevel = 3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (dunningLevel < 1)
|
if (dunningLevel < 1)
|
||||||
dunningLevel = 1;
|
dunningLevel = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a workitem stub for the mail message
|
// create a workitem stub for the mail message
|
||||||
|
|
@ -175,29 +174,29 @@ public class MahnlaufExecuteAdapter implements SignalAdapter {
|
||||||
// compute subject
|
// compute subject
|
||||||
switch (dunningLevel) {
|
switch (dunningLevel) {
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
mahnLaufWorkitem.setItemValue("mail.subject_de", "2. MAHNUNG");
|
mahnLaufWorkitem.setItemValue("mail.subject_de", "2. MAHNUNG");
|
||||||
mahnLaufWorkitem.setItemValue("mail.subject_en", "2. REMINDER");
|
mahnLaufWorkitem.setItemValue("mail.subject_en", "2. REMINDER");
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
mahnLaufWorkitem.setItemValue("mail.subject_de", "LETZTE AUSSERGERICHTLICHE MAHNUNG");
|
mahnLaufWorkitem.setItemValue("mail.subject_de", "LETZTE AUSSERGERICHTLICHE MAHNUNG");
|
||||||
mahnLaufWorkitem.setItemValue("mail.subject_en", "LAST REMINDER");
|
mahnLaufWorkitem.setItemValue("mail.subject_en", "LAST REMINDER");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mahnLaufWorkitem.setItemValue("mail.subject_de", "1. MAHNUNG");
|
mahnLaufWorkitem.setItemValue("mail.subject_de", "1. MAHNUNG");
|
||||||
mahnLaufWorkitem.setItemValue("mail.subject_en", "1. REMINDER");
|
mahnLaufWorkitem.setItemValue("mail.subject_en", "1. REMINDER");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Verify the dbtr.mail item (split into multi value)
|
// Verify the dbtr.mail item (split into multi value)
|
||||||
List<String> mailListe =mahnLaufWorkitem.getItemValue("dbtr.mail");
|
List<String> mailListe = mahnLaufWorkitem.getItemValue("dbtr.mail");
|
||||||
for (String mail: mailListe) {
|
for (String mail : mailListe) {
|
||||||
logger.info(" teste mail:'" + mail + "'");
|
logger.info(" teste mail:'" + mail + "'");
|
||||||
if (!InvoiceUtil.validateEmail(mail)) {
|
if (!InvoiceUtil.validateEmail(mail)) {
|
||||||
throw new PluginException(MahnlaufExecuteAdapter.class.getName(),
|
throw new PluginException(MahnlaufExecuteAdapter.class.getName(),
|
||||||
"INVALID_EMAIL", "Die Daten konnten nicht aktualisiert werden! Bitte geben Sie eine gültige E-Mail Adresse ein!");
|
"INVALID_EMAIL",
|
||||||
}
|
"Die Daten konnten nicht aktualisiert werden! Bitte geben Sie eine gültige E-Mail Adresse ein!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return mahnLaufWorkitem;
|
return mahnLaufWorkitem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,6 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ejb.EJB;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.Model;
|
import org.imixs.workflow.Model;
|
||||||
import org.imixs.workflow.SignalAdapter;
|
import org.imixs.workflow.SignalAdapter;
|
||||||
|
|
@ -21,6 +18,9 @@ import org.imixs.workflow.sepa.services.SepaWorkflowService;
|
||||||
|
|
||||||
import com.alexanderlogistics.KreditorDebitorService;
|
import com.alexanderlogistics.KreditorDebitorService;
|
||||||
|
|
||||||
|
import jakarta.ejb.EJB;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The MahnlaufRefAddAdapter links an invoice with a Mahnlauf for the
|
* The MahnlaufRefAddAdapter links an invoice with a Mahnlauf for the
|
||||||
* dbtr.number item . If there is currently no open Mahnlauf for this key, the
|
* dbtr.number item . If there is currently no open Mahnlauf for this key, the
|
||||||
|
|
@ -39,7 +39,7 @@ public class MahnlaufRefAddAdapter implements SignalAdapter {
|
||||||
|
|
||||||
@EJB
|
@EJB
|
||||||
ModelService modelService;
|
ModelService modelService;
|
||||||
|
|
||||||
@EJB
|
@EJB
|
||||||
KreditorDebitorService kreditorDebitorService;
|
KreditorDebitorService kreditorDebitorService;
|
||||||
|
|
||||||
|
|
@ -60,12 +60,13 @@ public class MahnlaufRefAddAdapter implements SignalAdapter {
|
||||||
public ItemCollection execute(ItemCollection invoice, ItemCollection event)
|
public ItemCollection execute(ItemCollection invoice, ItemCollection event)
|
||||||
throws AdapterException, PluginException {
|
throws AdapterException, PluginException {
|
||||||
|
|
||||||
|
if (invoice.getTaskID() < MahnlaufService.TASK_MAHNLAUF_START
|
||||||
if (invoice.getTaskID()<MahnlaufService.TASK_MAHNLAUF_START || invoice.getTaskID()>MahnlaufService.TASK_MAHNLAUF_END) {
|
|| invoice.getTaskID() > MahnlaufService.TASK_MAHNLAUF_END) {
|
||||||
throw new PluginException(MahnlaufRefAddAdapter.class.getName(),
|
throw new PluginException(MahnlaufRefAddAdapter.class.getName(),
|
||||||
MahnlaufService.ERROR_CONFIG, "Der Mahnlauf kann nur für Rechnungen erstellt werden die bereits die Fälligkeit erreicht haben.");
|
MahnlaufService.ERROR_CONFIG,
|
||||||
|
"Der Mahnlauf kann nur für Rechnungen erstellt werden die bereits die Fälligkeit erreicht haben.");
|
||||||
}
|
}
|
||||||
|
|
||||||
String dbtrNumber = invoice.getItemValueString(MahnlaufService.ITEM_DBTR_NUMBER);
|
String dbtrNumber = invoice.getItemValueString(MahnlaufService.ITEM_DBTR_NUMBER);
|
||||||
ItemCollection mahnLaufWorkitem;
|
ItemCollection mahnLaufWorkitem;
|
||||||
try {
|
try {
|
||||||
|
|
@ -85,7 +86,7 @@ public class MahnlaufRefAddAdapter implements SignalAdapter {
|
||||||
// set event 100 and process
|
// set event 100 and process
|
||||||
ItemCollection mahnlaufConfig = workflowService.evalWorkflowResult(event, "mahnlauf", invoice, true);
|
ItemCollection mahnlaufConfig = workflowService.evalWorkflowResult(event, "mahnlauf", invoice, true);
|
||||||
int eventID = mahnlaufConfig.getItemValueInteger("event");
|
int eventID = mahnlaufConfig.getItemValueInteger("event");
|
||||||
|
|
||||||
mahnLaufWorkitem.event(eventID);
|
mahnLaufWorkitem.event(eventID);
|
||||||
workflowService.processWorkItem(mahnLaufWorkitem);
|
workflowService.processWorkItem(mahnLaufWorkitem);
|
||||||
|
|
||||||
|
|
@ -93,7 +94,7 @@ public class MahnlaufRefAddAdapter implements SignalAdapter {
|
||||||
throw new PluginException(MahnlaufRefAddAdapter.class.getName(),
|
throw new PluginException(MahnlaufRefAddAdapter.class.getName(),
|
||||||
MahnlaufService.ERROR_CONFIG, "Unable to create Mahnlauf", e);
|
MahnlaufService.ERROR_CONFIG, "Unable to create Mahnlauf", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set mahnlauf ref
|
// set mahnlauf ref
|
||||||
invoice.setItemValue("dunning.ref", mahnLaufWorkitem.getUniqueID());
|
invoice.setItemValue("dunning.ref", mahnLaufWorkitem.getUniqueID());
|
||||||
return invoice;
|
return invoice;
|
||||||
|
|
@ -127,11 +128,11 @@ public class MahnlaufRefAddAdapter implements SignalAdapter {
|
||||||
* @throws PluginException
|
* @throws PluginException
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public ItemCollection createNewMahnlauf(String key, ItemCollection invoice, ItemCollection event)
|
public ItemCollection createNewMahnlauf(String key, ItemCollection invoice, ItemCollection event)
|
||||||
throws ModelException, PluginException {
|
throws ModelException, PluginException {
|
||||||
String modelVersion = null;
|
String modelVersion = null;
|
||||||
int taskID = -1;
|
int taskID = -1;
|
||||||
int eventID=-1;
|
int eventID = -1;
|
||||||
// test if the event provides a sepa export configuration
|
// test if the event provides a sepa export configuration
|
||||||
ItemCollection mahnlaufConfig = workflowService.evalWorkflowResult(event, "mahnlauf", invoice, true);
|
ItemCollection mahnlaufConfig = workflowService.evalWorkflowResult(event, "mahnlauf", invoice, true);
|
||||||
if (mahnlaufConfig != null && mahnlaufConfig.hasItem("modelversion") && mahnlaufConfig.hasItem("task")) {
|
if (mahnlaufConfig != null && mahnlaufConfig.hasItem("modelversion") && mahnlaufConfig.hasItem("task")) {
|
||||||
|
|
@ -150,17 +151,18 @@ public class MahnlaufRefAddAdapter implements SignalAdapter {
|
||||||
mahnlaufWorkitem.setItemValue(WorkflowKernel.UNIQUEID, WorkflowKernel.generateUniqueID());
|
mahnlaufWorkitem.setItemValue(WorkflowKernel.UNIQUEID, WorkflowKernel.generateUniqueID());
|
||||||
|
|
||||||
// copy dbtr_iban
|
// copy dbtr_iban
|
||||||
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_NAME, invoice.getItemValue(MahnlaufService.ITEM_DBTR_NAME));
|
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_NAME,
|
||||||
|
invoice.getItemValue(MahnlaufService.ITEM_DBTR_NAME));
|
||||||
|
|
||||||
// lookup email....
|
// lookup email....
|
||||||
String dbtrNumber=invoice.getItemValueString("dbtr.number");
|
String dbtrNumber = invoice.getItemValueString("dbtr.number");
|
||||||
ItemCollection dbtrItemCol=kreditorDebitorService.findDebitor("D"+dbtrNumber);
|
ItemCollection dbtrItemCol = kreditorDebitorService.findDebitor("D" + dbtrNumber);
|
||||||
if (dbtrItemCol!=null) {
|
if (dbtrItemCol != null) {
|
||||||
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_EMAIL, dbtrItemCol.getItemValue("cdtr.mail"));// dbtr.mail
|
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_EMAIL, dbtrItemCol.getItemValue("cdtr.mail"));// dbtr.mail
|
||||||
}
|
}
|
||||||
|
|
||||||
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_NUMBER, invoice.getItemValue(MahnlaufService.ITEM_DBTR_NUMBER));
|
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_NUMBER,
|
||||||
|
invoice.getItemValue(MahnlaufService.ITEM_DBTR_NUMBER));
|
||||||
mahnlaufWorkitem.setItemValue("invoice.language", invoice.getItemValue("invoice.language"));
|
mahnlaufWorkitem.setItemValue("invoice.language", invoice.getItemValue("invoice.language"));
|
||||||
|
|
||||||
// set workflow group name from the Task Element to identify document in xslt
|
// set workflow group name from the Task Element to identify document in xslt
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,6 @@ import java.util.Map;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
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.marty.team.TeamService;
|
import org.imixs.marty.team.TeamService;
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
|
|
@ -48,6 +42,12 @@ import org.imixs.workflow.exceptions.ModelException;
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
import org.imixs.workflow.exceptions.PluginException;
|
||||||
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
||||||
|
|
||||||
|
import jakarta.annotation.security.DeclareRoles;
|
||||||
|
import jakarta.annotation.security.RolesAllowed;
|
||||||
|
import jakarta.annotation.security.RunAs;
|
||||||
|
import jakarta.ejb.Singleton;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der MahnlaufService wird vom MahnlaufExecuteAdapter um
|
* Der MahnlaufService wird vom MahnlaufExecuteAdapter um
|
||||||
* Ausgangsrechnungen zu akutalisieren.
|
* Ausgangsrechnungen zu akutalisieren.
|
||||||
|
|
|
||||||
|
|
@ -43,10 +43,6 @@ import java.util.Properties;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ejb.EJB;
|
|
||||||
import javax.ejb.Stateless;
|
|
||||||
import javax.enterprise.event.Observes;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
|
|
@ -87,6 +83,11 @@ import com.alexanderlogistics.InvoiceUtil;
|
||||||
import com.alexanderlogistics.KreditorDebitorService;
|
import com.alexanderlogistics.KreditorDebitorService;
|
||||||
import com.alexanderlogistics.mahnlauf.MahnlaufService;
|
import com.alexanderlogistics.mahnlauf.MahnlaufService;
|
||||||
|
|
||||||
|
import jakarta.ejb.EJB;
|
||||||
|
import jakarta.ejb.Stateless;
|
||||||
|
import jakarta.enterprise.event.Observes;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der CargosoftXMLInvoiceImportImportService erweitert den FTPImportService und
|
* Der CargosoftXMLInvoiceImportImportService erweitert den FTPImportService und
|
||||||
* kann XML Invoice Dokumente von Cargosoft importieren.
|
* kann XML Invoice Dokumente von Cargosoft importieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<beans xmlns="https://jakarta.ee/xml/ns/jakartaee"
|
||||||
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd"
|
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_3_0.xsd"
|
||||||
bean-discovery-mode="all" version="2.0">
|
bean-discovery-mode="all" version="3.0">
|
||||||
</beans>
|
</beans>
|
||||||
|
|
@ -4,11 +4,7 @@ import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.mail.Folder;
|
import org.eclipse.angus.mail.imap.IMAPFolder;
|
||||||
import javax.mail.Message;
|
|
||||||
import javax.mail.MessagingException;
|
|
||||||
import javax.mail.Store;
|
|
||||||
|
|
||||||
import org.imixs.archive.importer.DocumentImportService;
|
import org.imixs.archive.importer.DocumentImportService;
|
||||||
import org.imixs.archive.importer.mail.IMAPBasicAuthenticator;
|
import org.imixs.archive.importer.mail.IMAPBasicAuthenticator;
|
||||||
import org.imixs.archive.importer.mail.IMAPOutlookAuthenticator;
|
import org.imixs.archive.importer.mail.IMAPOutlookAuthenticator;
|
||||||
|
|
@ -16,8 +12,10 @@ import org.imixs.workflow.ItemCollection;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.sun.mail.imap.IMAPFolder;
|
import jakarta.mail.Folder;
|
||||||
|
import jakarta.mail.Message;
|
||||||
|
import jakarta.mail.MessagingException;
|
||||||
|
import jakarta.mail.Store;
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.imixs.melman.FormAuthenticator;
|
import org.imixs.melman.FormAuthenticator;
|
||||||
|
import org.imixs.melman.RestAPIException;
|
||||||
import org.imixs.melman.WorkflowClient;
|
import org.imixs.melman.WorkflowClient;
|
||||||
import org.imixs.workflow.ItemCollection;
|
import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.datev.imports.DatevImportAdapter;
|
import org.imixs.workflow.datev.imports.DatevImportAdapter;
|
||||||
|
|
@ -34,8 +35,15 @@ public class DueDateBugfix {
|
||||||
public void setup() throws PluginException {
|
public void setup() throws PluginException {
|
||||||
// Init Workflow Client
|
// Init Workflow Client
|
||||||
workflowCLient = new WorkflowClient(restAPI);
|
workflowCLient = new WorkflowClient(restAPI);
|
||||||
FormAuthenticator formAuth = new FormAuthenticator(restAPI, user, ps);
|
FormAuthenticator formAuth;
|
||||||
workflowCLient.registerClientRequestFilter(formAuth);
|
try {
|
||||||
|
formAuth = new FormAuthenticator(restAPI, user, ps);
|
||||||
|
workflowCLient.registerClientRequestFilter(formAuth);
|
||||||
|
} catch (RestAPIException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
Assert.fail();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
92
pom.xml
92
pom.xml
|
|
@ -5,7 +5,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.alexander-logistics</groupId>
|
<groupId>com.alexander-logistics</groupId>
|
||||||
<artifactId>office-alexander-logistics</artifactId>
|
<artifactId>office-alexander-logistics</artifactId>
|
||||||
<version>1.2.21</version>
|
<version>1.3.0</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Imixs Office Workflow - Custom Build</name>
|
<name>Imixs Office Workflow - Custom Build</name>
|
||||||
|
|
||||||
|
|
@ -14,24 +14,28 @@
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
<java.source>11</java.source>
|
||||||
|
<java.target>11</java.target>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
|
||||||
<!-- Build Time -->
|
<!-- Build Time -->
|
||||||
<org.imixs.build.timestamp>${maven.build.timestamp}</org.imixs.build.timestamp>
|
<org.imixs.build.timestamp>${maven.build.timestamp}</org.imixs.build.timestamp>
|
||||||
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
|
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
|
||||||
|
|
||||||
<!-- Versions -->
|
<!-- Dependency Versions -->
|
||||||
<org.imixs.workflow.version>5.2.18</org.imixs.workflow.version>
|
<jakarta.version>10.0.0</jakarta.version>
|
||||||
<org.imixs.marty.version>4.2.3</org.imixs.marty.version>
|
<org.imixs.office.version>5.0.2-SNAPSHOT</org.imixs.office.version>
|
||||||
<!-- 4.5.3 -->
|
<org.imixs.workflow.version>6.0.7-SNAPSHOT</org.imixs.workflow.version>
|
||||||
<org.imixs.office.version>4.6.2</org.imixs.office.version>
|
<org.imixs.marty.version>5.0.0</org.imixs.marty.version>
|
||||||
<org.imixs.adapters.version>2.3.3</org.imixs.adapters.version>
|
<org.imixs.archive.version>3.0.2-SNAPSHOT</org.imixs.archive.version>
|
||||||
<!-- 2.2.14 -->
|
<org.imixs.adapters.version>3.0.0</org.imixs.adapters.version>
|
||||||
<org.imixs.archive.version>2.4.2</org.imixs.archive.version>
|
<org.imixs.melman.version>2.0.0-SNAPSHOT</org.imixs.melman.version>
|
||||||
<org.imixs.melman.version>1.0.22</org.imixs.melman.version>
|
<microprofile.version>6.0</microprofile.version>
|
||||||
<org.imixs.ml.version>1.1.6</org.imixs.ml.version>
|
<net.sf.saxon.version>9.9.1-4</net.sf.saxon.version>
|
||||||
<microprofile.version>2.2</microprofile.version>
|
<apache.pdfbox.version>2.0.26</apache.pdfbox.version>
|
||||||
|
<!-- -->
|
||||||
|
<org.imixs.ai.version>1.1.0-SNAPSHOT</org.imixs.ai.version>
|
||||||
<custom.webResources>src/main/webapp</custom.webResources>
|
<custom.webResources>src/main/webapp</custom.webResources>
|
||||||
|
|
||||||
<!-- Environment Settings -->
|
<!-- Environment Settings -->
|
||||||
|
|
@ -41,11 +45,12 @@
|
||||||
<imixs-office.IndexDir>lucene/office-index</imixs-office.IndexDir>
|
<imixs-office.IndexDir>lucene/office-index</imixs-office.IndexDir>
|
||||||
<imixs-office.applicationname>office-alexander-logistics</imixs-office.applicationname>
|
<imixs-office.applicationname>office-alexander-logistics</imixs-office.applicationname>
|
||||||
|
|
||||||
|
<imixs-mail-res-ref-name>java:/mail/org.imixs.workflow.mail</imixs-mail-res-ref-name>
|
||||||
|
|
||||||
|
|
||||||
<!-- Wildfly unpack war -->
|
<!-- Wildfly unpack war -->
|
||||||
<custom.unpackTypes>war</custom.unpackTypes>
|
<custom.unpackTypes>war</custom.unpackTypes>
|
||||||
|
|
||||||
<imixs-office.applicationname>office-alexander-logistics</imixs-office.applicationname>
|
|
||||||
|
|
||||||
<!-- jndi Mail res-ref name -->
|
<!-- jndi Mail res-ref name -->
|
||||||
<imixs-mail-res-ref-name>java:/mail/org.imixs.workflow.mail</imixs-mail-res-ref-name>
|
<imixs-mail-res-ref-name>java:/mail/org.imixs.workflow.mail</imixs-mail-res-ref-name>
|
||||||
|
|
||||||
|
|
@ -59,14 +64,11 @@
|
||||||
<id>sonatype-snaptshots</id>
|
<id>sonatype-snaptshots</id>
|
||||||
<name>Sonatype Snapshot repository</name>
|
<name>Sonatype Snapshot repository</name>
|
||||||
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
|
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
|
||||||
</repository>
|
<releases>
|
||||||
<!-- Imixs repository -->
|
|
||||||
<repository>
|
|
||||||
<id>imixs-mvn-repo</id>
|
|
||||||
<url>https://raw.githubusercontent.com/imixs/imixs-mvn-repo/master/</url>
|
|
||||||
<snapshots>
|
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
<updatePolicy>always</updatePolicy>
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>true</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
@ -96,15 +98,23 @@
|
||||||
</resource>
|
</resource>
|
||||||
</resources>
|
</resources>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<!-- use JDK settings for compiling -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>2.3.2</version>
|
<version>3.8.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>${java.source}</source>
|
||||||
<target>1.8</target>
|
<target>${java.target}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<version>2.6</version>
|
||||||
|
<configuration>
|
||||||
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
||||||
<finalName>office-alexander-logistics</finalName>
|
<finalName>office-alexander-logistics</finalName>
|
||||||
|
|
@ -146,6 +156,7 @@
|
||||||
<groupId>org.imixs.workflow</groupId>
|
<groupId>org.imixs.workflow</groupId>
|
||||||
<artifactId>imixs-marty</artifactId>
|
<artifactId>imixs-marty</artifactId>
|
||||||
<version>${org.imixs.marty.version}</version>
|
<version>${org.imixs.marty.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Office Workflow -->
|
<!-- Office Workflow -->
|
||||||
|
|
@ -206,7 +217,7 @@
|
||||||
<groupId>org.imixs.workflow</groupId>
|
<groupId>org.imixs.workflow</groupId>
|
||||||
<artifactId>imixs-archive-documents</artifactId>
|
<artifactId>imixs-archive-documents</artifactId>
|
||||||
<version>${org.imixs.archive.version}</version>
|
<version>${org.imixs.archive.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- Imxixs-Archive Importer -->
|
<!-- Imxixs-Archive Importer -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -215,17 +226,34 @@
|
||||||
<version>${org.imixs.archive.version}</version>
|
<version>${org.imixs.archive.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Imixs AI -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.imixs.workflow</groupId>
|
||||||
|
<artifactId>imixs-ai-workflow</artifactId>
|
||||||
|
<version>${org.imixs.ai.version}</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- xsl 2.0 support for Reporting / Chart Diagrams -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.sf.saxon</groupId>
|
||||||
|
<artifactId>Saxon-HE</artifactId>
|
||||||
|
<version>${net.sf.saxon.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- JEE Dependencies -->
|
<!-- Jakarta EE -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax</groupId>
|
<groupId>jakarta.platform</groupId>
|
||||||
<artifactId>javaee-api</artifactId>
|
<artifactId>jakarta.jakartaee-api</artifactId>
|
||||||
<version>7.0</version>
|
<version>${jakarta.version}</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- Microprofile -->
|
<!-- Microprofile -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.microprofile</groupId>
|
<groupId>org.eclipse.microprofile</groupId>
|
||||||
|
|
@ -249,4 +277,4 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
Loading…
Reference in a new issue