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