fixes - imixs-ai upadte
This commit is contained in:
parent
fbfc141298
commit
e6a234bcb8
19 changed files with 332 additions and 387 deletions
|
|
@ -8,6 +8,7 @@
|
|||
- Upgrade Imixs-Workflow 6.7
|
||||
- Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
|
||||
- Währungsunabhängigkeit
|
||||
- Lucen Index: item 'cdtr.name' wurde in den index aufgenommen wegen AI Examples Adapter
|
||||
|
||||
|
||||
**Migration**
|
||||
|
|
|
|||
|
|
@ -71,10 +71,10 @@ services:
|
|||
###############################################
|
||||
# Imixs-Admin
|
||||
###############################################
|
||||
#imixsadmin:
|
||||
# image: imixs/imixs-admin
|
||||
# ports:
|
||||
# - "8888:8080"
|
||||
imixsadmin:
|
||||
image: imixs/imixs-admin
|
||||
ports:
|
||||
- "8888:8080"
|
||||
|
||||
###############################################
|
||||
# Mailgateway
|
||||
|
|
|
|||
|
|
@ -0,0 +1,170 @@
|
|||
package com.alexanderlogistics.ai;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.imixs.ai.workflow.ImixsAIPromptEvent;
|
||||
import org.imixs.workflow.ItemCollection;
|
||||
import org.imixs.workflow.engine.DocumentService;
|
||||
import org.imixs.workflow.exceptions.QueryException;
|
||||
|
||||
import jakarta.enterprise.event.Observes;
|
||||
import jakarta.inject.Inject;
|
||||
|
||||
/**
|
||||
* The PromptExampleAdapterXML is a CDI bean that creates XML examples based
|
||||
* on the last 3 invoices.
|
||||
*
|
||||
* The adapter only runs if the prompt template contains
|
||||
*
|
||||
* <<EXAMPLES_XML>>
|
||||
*
|
||||
* Prompt example generated by this Adapter:
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* <pre>
|
||||
* {@code
|
||||
* 1. Company Data:
|
||||
* - Name and address of the supplier
|
||||
* - Supplier contact information (phone number, email, etc.)
|
||||
*
|
||||
* 2. Invoice Data:
|
||||
* - Invoice number
|
||||
* - Invoice date
|
||||
* - Order number
|
||||
* - Customer number
|
||||
* - Total invoice amount
|
||||
*
|
||||
* <invoice>
|
||||
* <cdtr.name>...</cdtr.name>
|
||||
* <invoice.number>...</invoice.number>
|
||||
* <invoice.date>2024-12-31</invoice.date>
|
||||
* <payment.date>2024-12-31</payment.date>
|
||||
* <invoice.total type="double">1234.00</invoice.total>
|
||||
* <cdtr.iban>...</cdtr.iban>
|
||||
* <cdtr.bic>...</cdtr.bic>
|
||||
* </invoice>
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
public class PromptExampleAdapterXML {
|
||||
private static Logger logger = Logger.getLogger(PromptExampleAdapterXML.class.getName());
|
||||
|
||||
@Inject
|
||||
DocumentService documentService;
|
||||
|
||||
/**
|
||||
* @param event
|
||||
*/
|
||||
public void onEvent(@Observes ImixsAIPromptEvent event) {
|
||||
if (event.getWorkitem() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
String prompt = event.getPromptTemplate();
|
||||
if (!prompt.contains("<<EXAMPLES_XML>>")) {
|
||||
return;
|
||||
}
|
||||
|
||||
String exampleHeaderData = "\n\n### Example Invoice Data:\n\n";
|
||||
String exampleHeaderXML = "\n\n### Example XML Object:\n\n";
|
||||
String cdtrName = event.getWorkitem().getItemValueString("document.company");
|
||||
List<ItemCollection> invoices = findLastInvoices(cdtrName, event.getWorkitem().getUniqueID());
|
||||
String promptExamples = "";
|
||||
if (invoices != null && invoices.size() > 0) {
|
||||
// Build an example for each invoice
|
||||
for (ItemCollection invoice : invoices) {
|
||||
promptExamples = promptExamples + buildExampleDE(invoice, exampleHeaderData,
|
||||
exampleHeaderXML);
|
||||
}
|
||||
}
|
||||
prompt = prompt.replace("<<EXAMPLES_XML>>", "" + promptExamples);
|
||||
|
||||
// System.out.println(prompt);
|
||||
event.setPromptTemplate(prompt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper Method that builds a prompt example out of an existing invoice:
|
||||
*
|
||||
* <pre>
|
||||
* {@code
|
||||
*
|
||||
* <invoice>
|
||||
* <cdtr.name>...</cdtr.name>
|
||||
* <invoice.number>...</invoice.number>
|
||||
* <invoice.date>2024-12-31</invoice.date>
|
||||
* <payment.date>2024-12-31</payment.date>
|
||||
* <invoice.total type="double">1234.00</invoice.total>
|
||||
* <cdtr.iban>...</cdtr.iban>
|
||||
* <cdtr.bic>...</cdtr.bic>
|
||||
* </invoice>
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @param invoice
|
||||
* @return
|
||||
*/
|
||||
private String buildExampleDE(ItemCollection invoice, String dataExampleHeader, String xmlExampleHeader) {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
StringBuffer example = new StringBuffer();
|
||||
|
||||
// add the invoice summary and the example code
|
||||
if (invoice.hasItem("invoice.summary")) {
|
||||
example.append(dataExampleHeader);
|
||||
example.append(invoice.getItemValueString("invoice.summary"));
|
||||
example.append(xmlExampleHeader);
|
||||
// add JSON result object:
|
||||
example.append("<invoice>\n");
|
||||
example.append(" <cdtr.name>" + invoice.getItemValueString("cdtr.name") + "</cdtr.name>\n");
|
||||
example.append(
|
||||
" <invoice.number>" + invoice.getItemValueString("invoice.number") + "</invoice.number>\n");
|
||||
if (invoice.getItemValueDate("invoice.date") != null) {
|
||||
example.append(
|
||||
" <invoice.date>" + dateFormat.format(invoice.getItemValueDate("invoice.date"))
|
||||
+ "</invoice.date>\n");
|
||||
}
|
||||
if (invoice.getItemValueDate("payment.date") != null) {
|
||||
example.append(
|
||||
" <payment.date>" + dateFormat.format(invoice.getItemValueDate("payment.date"))
|
||||
+ "</payment.date>\n");
|
||||
}
|
||||
example.append(" <invoice.total type=\"double\">" + invoice.getItemValueDouble("invoice.total")
|
||||
+ "</invoice.total>\n");
|
||||
example.append(" <cdtr.iban>" + invoice.getItemValueString("cdtr.iban") + "</cdtr.iban>\n");
|
||||
example.append(" <cdtr.bic>" + invoice.getItemValueString("cdtr.bic") + "</cdtr.bic>\n");
|
||||
example.append("</invoice>\n");
|
||||
}
|
||||
return example.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to find the last 3 invoices by cdtr.name
|
||||
*
|
||||
* @param cdtrName
|
||||
* @return
|
||||
*/
|
||||
private List<ItemCollection> findLastInvoices(String cdtrName, String currentID) {
|
||||
List<ItemCollection> result = new ArrayList<>();
|
||||
|
||||
String searchTerm = "(type:workitemarchive) AND ($modelversion:rechnungseingang*) AND ($taskid:5900) AND NOT ($uniqueid:"
|
||||
+ currentID + ") AND (cdtr.name:\""
|
||||
+ cdtrName + "\")";
|
||||
try {
|
||||
result = documentService.find(searchTerm, 3, 0, "$modified", true);
|
||||
} catch (QueryException e) {
|
||||
logger.log(Level.SEVERE, "findLastInvoices - invalid query: {0}", e.getMessage());
|
||||
}
|
||||
|
||||
logger.info("Found " + result.size() + " examples for '" + cdtrName + "'");
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
lucence.indexDir=${imixs-office.IndexDir}
|
||||
index.fields=txtsearchstring,txtSubject,txtname,txtEmail,txtUserName,namCreator,txtworkflowgroup,txtworkflowstatus,txtWorkflowAbstract,txtWorkflowSummary,txtworkflowhistory,txtspacename,txtprocessname,_subject,_description,_name,_projectnumber,_projectname,_ordernumber,_contractnumber,datDueDate,txtcommentlog,htmldescription,htmldocumentation,dms,dms_names,invoice.number.stripped,_childitems,$file.names,_VENDOR_NAME,dbtr.number,cdtr.number,invoice.positions
|
||||
index.fields.analyze=txtUsername
|
||||
index.fields.noanalyze=type,$UniqueIDRef,$created,$modified,$ModelVersion,$participants,namCreator,$ProcessID,datDate,txtWorkflowGroup,txtemail, datdate, datfrom, datto, numsequencenumber,sequencenumber,dms_count,invoice.number,invoice.number.stripped,invoice.date,invoice.duedate,taxonomy.verteilung.stop,taxonomy.sachpruefung.stop,taxonomy.verteilung.start,taxonomy.sachpruefung.start,taxonomy.buchhaltung.start,taxonomy.buchhaltung.stop,dbtr.number,cdtr.number,payment.date,invoice.total,invoice.currency,invoice.positions,$lasteventdate,payment.type
|
||||
index.fields.noanalyze=type,$UniqueIDRef,$created,$modified,$ModelVersion,$participants,namCreator,$ProcessID,datDate,txtWorkflowGroup,txtemail, datdate, datfrom, datto, numsequencenumber,sequencenumber,dms_count,invoice.number,invoice.number.stripped,invoice.date,invoice.duedate,taxonomy.verteilung.stop,taxonomy.sachpruefung.stop,taxonomy.verteilung.start,taxonomy.sachpruefung.start,taxonomy.buchhaltung.start,taxonomy.buchhaltung.stop,dbtr.number,cdtr.number,payment.date,invoice.total,invoice.currency,invoice.positions,$lasteventdate,payment.type,cdtr.name
|
||||
index.fields.store=process.name,txtProcessName,txtWorkflowImageURL,payment.date,invoice.number,invoice.date,invoice.duedate
|
||||
index.fields.category=space.name,space.ref,taxonomy.verteilung.stop.by,taxonomy.sachpruefung.stop.by,taxonomy.buchhaltung.stop.by
|
||||
office.search.noanalyze=invoice.number,invoice.number.stripped,invoice.positions
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<h:form id="import_form_id">
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
<div class="imixs-form">
|
||||
<div class="imixs-header">
|
||||
<h1>Parameter</h1>
|
||||
|
|
|
|||
|
|
@ -35,10 +35,7 @@
|
|||
|
||||
<h:form id="import_form_id">
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
|
||||
|
||||
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
|
||||
<div class="imixs-form">
|
||||
<div class="imixs-header">
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs"
|
||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty"
|
||||
template="/layout/template.xhtml">
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs" xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty" template="/layout/template.xhtml">
|
||||
|
||||
<ui:define name="content">
|
||||
<f:view>
|
||||
|
|
@ -30,7 +26,7 @@
|
|||
<h1>Ausgangsrechnungen</h1>
|
||||
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -76,8 +72,7 @@
|
|||
</h:inputText>
|
||||
|
||||
/
|
||||
<h:inputSecret required="false" style="width:47%;"
|
||||
redisplay="true"
|
||||
<h:inputSecret required="false" style="width:47%;" redisplay="true"
|
||||
value="#{cargosoftExportController.configuration.item['_datev_ftp_password']}">
|
||||
</h:inputSecret>
|
||||
</dd>
|
||||
|
|
@ -96,15 +91,15 @@
|
|||
</dl>
|
||||
|
||||
<p>
|
||||
<span class="typcn typcn-lightbulb"></span> In diesem Verzeichniss werden die Belegdaten
|
||||
<span class="typcn typcn-lightbulb"></span> In diesem Verzeichniss werden
|
||||
die Belegdaten
|
||||
im DATEV Format abgelegt.
|
||||
</p>
|
||||
</div>
|
||||
<h2>Scheduler</h2>
|
||||
<!-- include timer control -->
|
||||
<ui:include src="sub_scheduler_control.xhtml">
|
||||
<ui:param name="schedulerController"
|
||||
value="#{cargosoftExportController}" />
|
||||
<ui:param name="schedulerController" value="#{cargosoftExportController}" />
|
||||
</ui:include>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -113,8 +108,7 @@
|
|||
|
||||
<div class="imixs-footer">
|
||||
<h:outputLabel value="#{message.modified}: " />
|
||||
<h:outputText
|
||||
value="#{cargosoftExportController.configuration.item['$modified']}">
|
||||
<h:outputText value="#{cargosoftExportController.configuration.item['$modified']}">
|
||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
||||
pattern="#{message.dateTimePattern}" />
|
||||
</h:outputText>
|
||||
|
|
@ -122,8 +116,7 @@
|
|||
|
||||
<br />
|
||||
|
||||
<h:commandButton
|
||||
actionListener="#{cargosoftExportController.saveConfiguration()}"
|
||||
<h:commandButton actionListener="#{cargosoftExportController.saveConfiguration()}"
|
||||
value="#{message.save}">
|
||||
</h:commandButton>
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
<h:form id="import_form_id">
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<f:view>
|
||||
<h:form id="zahlungsziel_form_id">
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
|
||||
<!-- Cargosoft Creditor Search integration -->
|
||||
<ui:include src="/pages/workitems/forms/alexander/cargsoft-creditor-search.xhtml">
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
|
||||
<div class="imixs-body">
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs"
|
||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty"
|
||||
template="/layout/template.xhtml">
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs" xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty" template="/layout/template.xhtml">
|
||||
|
||||
<ui:define name="content">
|
||||
<f:view>
|
||||
|
|
@ -30,15 +26,15 @@
|
|||
<h1>OP-Listen Verwaltung</h1>
|
||||
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
|
||||
</div>
|
||||
<div class="imixs-body">
|
||||
<div class="ui-state-highlight ui-corner-all"
|
||||
style="margin-bottom: 10px; padding: .5em;">
|
||||
<div class="ui-state-highlight ui-corner-all" style="margin-bottom: 10px; padding: .5em;">
|
||||
<p>
|
||||
<span class="typcn typcn-lightbulb"></span> Die OP-Listen Verwaltung erzeugt regelmäßig
|
||||
Workitems mit einem aktuellen Abbild der offenen Ausgangsrechnungen, sortiert nach Bereichen.
|
||||
Workitems mit einem aktuellen Abbild der offenen Ausgangsrechnungen, sortiert nach
|
||||
Bereichen.
|
||||
</p>
|
||||
</div>
|
||||
<!-- **** Export OP-Listen ***** -->
|
||||
|
|
@ -46,8 +42,7 @@
|
|||
<h2>Scheduler</h2>
|
||||
<!-- include timer control -->
|
||||
<ui:include src="sub_scheduler_control.xhtml">
|
||||
<ui:param name="schedulerController"
|
||||
value="#{oplistExportController}" />
|
||||
<ui:param name="schedulerController" value="#{oplistExportController}" />
|
||||
</ui:include>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -55,8 +50,7 @@
|
|||
|
||||
<div class="imixs-footer">
|
||||
<h:outputLabel value="#{message.modified}: " />
|
||||
<h:outputText
|
||||
value="#{oplistExportController.configuration.item['$modified']}">
|
||||
<h:outputText value="#{oplistExportController.configuration.item['$modified']}">
|
||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
||||
pattern="#{message.dateTimePattern}" />
|
||||
</h:outputText>
|
||||
|
|
@ -65,8 +59,7 @@
|
|||
<br />
|
||||
|
||||
|
||||
<h:commandButton
|
||||
actionListener="#{oplistExportController.saveConfiguration()}"
|
||||
<h:commandButton actionListener="#{oplistExportController.saveConfiguration()}"
|
||||
value="#{message.save}">
|
||||
</h:commandButton>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs"
|
||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty"
|
||||
xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs" xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty" xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
|
||||
template="/layout/template.xhtml">
|
||||
|
||||
<ui:define name="content">
|
||||
|
|
@ -23,12 +19,12 @@
|
|||
}
|
||||
|
||||
// display summary
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function () {
|
||||
// erste Zeile hinzufügen, falls tabelle noch leer ist
|
||||
var posTableEmpty=#{empty sepaController.dbtrList};
|
||||
var posTableEmpty =#{ empty sepaController.dbtrList };
|
||||
if (posTableEmpty) {
|
||||
// click on add button
|
||||
posButton=$("[data-id='addposbutton_id']");
|
||||
posButton = $("[data-id='addposbutton_id']");
|
||||
if (posButton) {
|
||||
$(posButton).click();
|
||||
}
|
||||
|
|
@ -49,7 +45,7 @@
|
|||
|
||||
<h:form id="import_form_id">
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
|
||||
<div class="imixs-form">
|
||||
<div class="imixs-header">
|
||||
|
|
@ -59,7 +55,8 @@
|
|||
<div class="imixs-body">
|
||||
<!-- **** General info ***** -->
|
||||
<div class="imixs-form-panel">
|
||||
<h:panelGroup layout="block" styleClass="imixs-form-section" id="dbtrlist" binding="#{dbtrlistContainer}">
|
||||
<h:panelGroup layout="block" styleClass="imixs-form-section" id="dbtrlist"
|
||||
binding="#{dbtrlistContainer}">
|
||||
<h1>Debitor IBAN/BIC</h1>
|
||||
<p>
|
||||
<span class="typcn typcn-lightbulb"></span> The Debitor IBAN/BIC configuration list
|
||||
|
|
@ -79,36 +76,43 @@
|
|||
</th>
|
||||
</tr>
|
||||
|
||||
<ui:repeat var="dbtr"
|
||||
value="#{sepaController.dbtrList}">
|
||||
<ui:repeat var="dbtr" value="#{sepaController.dbtrList}">
|
||||
<tr>
|
||||
<!-- ID -->
|
||||
<td><h:inputText value="#{dbtr.item['name']}"
|
||||
style="width:100%;" /></td>
|
||||
<td>
|
||||
<h:inputText value="#{dbtr.item['name']}" style="width:100%;" />
|
||||
</td>
|
||||
|
||||
<!-- dbtr.name -->
|
||||
<td><h:inputText value="#{dbtr.item['dbtr.name']}"
|
||||
style="width:100%;" /></td>
|
||||
<td>
|
||||
<h:inputText value="#{dbtr.item['dbtr.name']}"
|
||||
style="width:100%;" />
|
||||
</td>
|
||||
|
||||
<!-- dbtr.iban -->
|
||||
<td><h:inputText value="#{dbtr.item['dbtr.iban']}"
|
||||
style="width:100%;" /></td>
|
||||
<td>
|
||||
<h:inputText value="#{dbtr.item['dbtr.iban']}"
|
||||
style="width:100%;" />
|
||||
</td>
|
||||
|
||||
<!-- dbtr.bic -->
|
||||
<td><h:inputText value="#{dbtr.item['dbtr.bic']}"
|
||||
style="width:100%;" /></td>
|
||||
<td>
|
||||
<h:inputText value="#{dbtr.item['dbtr.bic']}" style="width:100%;" />
|
||||
</td>
|
||||
<!-- dbtr.bic -->
|
||||
<td>
|
||||
<h:inputText value="#{dbtr.item['report']}" style="width:100%;" />
|
||||
</td>
|
||||
|
||||
|
||||
<td><h:commandLink
|
||||
<td>
|
||||
<h:commandLink
|
||||
actionListener="#{sepaController.removeDbtr(dbtr.item['name'])}">
|
||||
<span class="typcn typcn-trash imixs-state-info"></span>
|
||||
<f:ajax render="#{dbtrlistContainer.clientId}"
|
||||
onevent="updateSepaList" />
|
||||
</h:commandLink></td>
|
||||
</h:commandLink>
|
||||
</td>
|
||||
</tr>
|
||||
</ui:repeat>
|
||||
|
||||
|
|
@ -116,13 +120,13 @@
|
|||
|
||||
|
||||
<!-- add button -->
|
||||
<h:commandButton value="#{message.add}"
|
||||
a:data-id="addposbutton_id"
|
||||
<h:commandButton value="#{message.add}" a:data-id="addposbutton_id"
|
||||
actionListener="#{sepaController.addDbtr}">
|
||||
</h:commandButton>
|
||||
</f:ajax>
|
||||
</h:panelGroup>
|
||||
<h:panelGroup layout="block" styleClass="imixs-form-section" id="cdtrlist" binding="#{cdtrlistContainer}">
|
||||
<h:panelGroup layout="block" styleClass="imixs-form-section" id="cdtrlist"
|
||||
binding="#{cdtrlistContainer}">
|
||||
<h1>Creditor IBAN/BIC</h1>
|
||||
<p>
|
||||
<span class="typcn typcn-lightbulb"></span> The Creditor IBAN/BIC configuration list
|
||||
|
|
@ -151,12 +155,14 @@
|
|||
|
||||
<!-- cdtr.name -->
|
||||
<td>
|
||||
<h:inputText value="#{cdtr.item['cdtr.name']}" style="width:100%;" />
|
||||
<h:inputText value="#{cdtr.item['cdtr.name']}"
|
||||
style="width:100%;" />
|
||||
</td>
|
||||
|
||||
<!-- cdtr.iban -->
|
||||
<td>
|
||||
<h:inputText value="#{cdtr.item['cdtr.iban']}" style="width:100%;" />
|
||||
<h:inputText value="#{cdtr.item['cdtr.iban']}"
|
||||
style="width:100%;" />
|
||||
</td>
|
||||
|
||||
<!-- cdtr.bic -->
|
||||
|
|
@ -171,9 +177,11 @@
|
|||
|
||||
|
||||
<td>
|
||||
<h:commandLink actionListener="#{sepaController.removeCdtr(cdtr.item['name'])}">
|
||||
<h:commandLink
|
||||
actionListener="#{sepaController.removeCdtr(cdtr.item['name'])}">
|
||||
<span class="typcn typcn-trash imixs-state-info"></span>
|
||||
<f:ajax render="#{cdtrlistContainer.clientId}" onevent="updateSepaList" />
|
||||
<f:ajax render="#{cdtrlistContainer.clientId}"
|
||||
onevent="updateSepaList" />
|
||||
</h:commandLink>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -183,7 +191,8 @@
|
|||
|
||||
|
||||
<!-- add button -->
|
||||
<h:commandButton value="#{message.add}" a:data-id="addposbutton_id" actionListener="#{sepaController.addCdtr}">
|
||||
<h:commandButton value="#{message.add}" a:data-id="addposbutton_id"
|
||||
actionListener="#{sepaController.addCdtr}">
|
||||
</h:commandButton>
|
||||
</f:ajax>
|
||||
</h:panelGroup>
|
||||
|
|
@ -207,7 +216,8 @@
|
|||
<dl>
|
||||
<dt>SEPA Model Version</dt>
|
||||
<dd>
|
||||
<h:inputText required="false" value="#{sepaController.configuration.item['_model_version']}">
|
||||
<h:inputText required="false"
|
||||
value="#{sepaController.configuration.item['_model_version']}">
|
||||
</h:inputText>
|
||||
</dd>
|
||||
</dl>
|
||||
|
|
@ -216,7 +226,8 @@
|
|||
<dl>
|
||||
<dt>SEPA Initial Task</dt>
|
||||
<dd>
|
||||
<h:inputText required="false" value="#{sepaController.configuration.item['_initial_task']}">
|
||||
<h:inputText required="false"
|
||||
value="#{sepaController.configuration.item['_initial_task']}">
|
||||
</h:inputText>
|
||||
</dd>
|
||||
</dl>
|
||||
|
|
@ -238,8 +249,7 @@
|
|||
|
||||
<div class="imixs-footer">
|
||||
<h:outputLabel value="#{message.modified}: " />
|
||||
<h:outputText
|
||||
value="#{sepaController.configuration.item['$modified']}">
|
||||
<h:outputText value="#{sepaController.configuration.item['$modified']}">
|
||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
||||
pattern="#{message.dateTimePattern}" />
|
||||
</h:outputText>
|
||||
|
|
@ -247,9 +257,7 @@
|
|||
|
||||
<br />
|
||||
|
||||
<h:commandButton
|
||||
actionListener="#{sepaController.saveConfiguration()}"
|
||||
value="#{message.save}">
|
||||
<h:commandButton actionListener="#{sepaController.saveConfiguration()}" value="#{message.save}">
|
||||
</h:commandButton>
|
||||
|
||||
<h:commandButton value="#{message.close}" action="notes" />
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
</ui:define>
|
||||
|
||||
<ui:define name="content">
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
<ui:include src="/error_message.xhtml" />
|
||||
<f:view>
|
||||
<h:form>
|
||||
<ui:param name="searchresult" value="#{viewHandler.getData(searchController)}"></ui:param>
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
|
||||
|
||||
<ui:fragment rendered="#{!readonly}">
|
||||
<h:selectOneMenu required="#{required?validationController.required:false}" value="#{workitem.item[itemname]}">
|
||||
<h:selectOneMenu required="#{required?validationController.required:false}" value="#{workitem.item[item.name]}">
|
||||
<f:selectItems value="#{aglConfigController.getSelectItems('currency.in')}" />
|
||||
</h:selectOneMenu>
|
||||
</ui:fragment>
|
||||
<ui:fragment rendered="#{readonly}">
|
||||
<h:outputText value="#{workitem.item[itemname]}" />
|
||||
<h:outputText value="#{workitem.item[item.name]}" />
|
||||
</ui:fragment>
|
||||
|
||||
</ui:composition>
|
||||
2
pom.xml
2
pom.xml
|
|
@ -29,7 +29,7 @@
|
|||
<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.adapters.version>3.0.2-SNAPSHOT</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>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<CstmrCdtTrfInitn>
|
||||
<GrpHdr>
|
||||
<MsgId>bf073e72asdf512c4d60af7740872036</MsgId>
|
||||
<CreDtTm>2024-07-25T19:03:13</CreDtTm>
|
||||
<CreDtTm>2024-07-26T12:04:59</CreDtTm>
|
||||
<NbOfTxs>3</NbOfTxs>
|
||||
<CtrlSum>655.90</CtrlSum>
|
||||
<InitgPty>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<Cd>SEPA</Cd>
|
||||
</SvcLvl>
|
||||
</PmtTpInf>
|
||||
<ReqdExctnDt>2024-07-25</ReqdExctnDt>
|
||||
<ReqdExctnDt>2024-07-26</ReqdExctnDt>
|
||||
<Dbtr>
|
||||
<Nm>Targo Bank</Nm>
|
||||
</Dbtr>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<CstmrCdtTrfInitn>
|
||||
<GrpHdr>
|
||||
<MsgId>bf073e72asdf512c4d60af7740872036</MsgId>
|
||||
<CreDtTm>2024-07-25T19:03:14</CreDtTm>
|
||||
<CreDtTm>2024-07-26T12:04:59</CreDtTm>
|
||||
<NbOfTxs>3</NbOfTxs>
|
||||
<CtrlSum>655.90</CtrlSum>
|
||||
<InitgPty>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<Cd>SEPA</Cd>
|
||||
</SvcLvl>
|
||||
</PmtTpInf>
|
||||
<ReqdExctnDt>2024-07-25</ReqdExctnDt>
|
||||
<ReqdExctnDt>2024-07-26</ReqdExctnDt>
|
||||
<Dbtr>
|
||||
<Nm>Targo Bank</Nm>
|
||||
</Dbtr>
|
||||
|
|
|
|||
|
|
@ -81,16 +81,13 @@ Possible ImageTypes are:
|
|||
<bpmn2:documentation id="documentation_tW5ivg"/>
|
||||
<bpmn2:flowNodeRef>dataObject_FS1r0Q</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>task_uB6BGQ</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_1Vp9Fg</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>textAnnotation_CtU05A</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>task_PsBytg</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>dataObject_CRa7xA</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_HhuoiQ</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_bYlo0w</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_za0KnA</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_Zxhr0w</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>dataObject_vVKXIg</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_esmWYg</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_yQLmNA</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>task_0YaQ2w</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>dataObject_HHM58Q</bpmn2:flowNodeRef>
|
||||
|
|
@ -338,7 +335,6 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_17"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||
<bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
|
||||
<bpmn2:incoming>sequenceFlow_zA065w</bpmn2:incoming>
|
||||
<bpmn2:incoming>sequenceFlow_gXJm0w</bpmn2:incoming>
|
||||
</bpmn2:task>
|
||||
<bpmn2:endEvent id="EndEvent_1" name="End">
|
||||
|
|
@ -388,80 +384,10 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_A2VzkA"/>
|
||||
<bpmn2:incoming>sequenceFlow_30s7vA</bpmn2:incoming>
|
||||
<bpmn2:incoming>sequenceFlow_VlPVJg</bpmn2:incoming>
|
||||
<bpmn2:incoming>sequenceFlow_0N8cOQ</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_fN22Gg</bpmn2:outgoing>
|
||||
</bpmn2:task>
|
||||
<bpmn2:intermediateCatchEvent id="event_1Vp9Fg" imixs:activityid="1" name="Save">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="keylogtimeformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyarchive" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtmailsubject" type="xs:string">
|
||||
<imixs:value><![CDATA[Eingangsrechnung erhalten: <itemvalue>_subject</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaccessmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyscheduledactivity" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfmailbody" type="xs:string">
|
||||
<imixs:value><![CDATA[Wir haben folgende Rechnung erhalten: bitte freigeben.
|
||||
|
||||
Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</itemvalue>)
|
||||
<itemvalue>_description</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keymailreceiverfields" type="xs:string"/>
|
||||
<imixs:item name="keyversion" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaddwritefields" type="xs:string"/>
|
||||
<imixs:item name="numnextactivityid" type="xs:int">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyfollowup" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keypublicresult" type="xs:string">
|
||||
<imixs:value><![CDATA[1]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keylogdateformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipfields" type="xs:string"/>
|
||||
<imixs:item name="numnextid" type="xs:int">
|
||||
<imixs:value><![CDATA[5005]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtnextprocesstree" type="xs:string">
|
||||
<imixs:value/>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="action">home</item>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Freigabe einholen]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Rechnungseingang]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_I6w0fw"><![CDATA[Digitalisierung einer neuen Eingangsrechnung]]></bpmn2:documentation>
|
||||
<bpmn2:outgoing>sequenceFlow_30s7vA</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_30s7vA" sourceRef="event_1Vp9Fg" targetRef="task_uB6BGQ">
|
||||
<bpmn2:documentation id="documentation_AGCEgw"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:textAnnotation id="textAnnotation_CtU05A" textFormat="">
|
||||
<bpmn2:text id="text_ykDpyw"><![CDATA[Support for llama-cpp http server]]></bpmn2:text>
|
||||
<bpmn2:documentation id="documentation_vNKNMA"/>
|
||||
|
|
@ -507,7 +433,6 @@ Company: <itemvalue>document.company</itemvalue><br />]]></imixs:value>
|
|||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_7BnjJw"/>
|
||||
<bpmn2:incoming>sequenceFlow_JpNUKg</bpmn2:incoming>
|
||||
<bpmn2:incoming>sequenceFlow_Fdk05g</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_lmU9IA</bpmn2:outgoing>
|
||||
<bpmn2:incoming>sequenceFlow_naZnAA</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_8SpIiA</bpmn2:outgoing>
|
||||
|
|
@ -529,75 +454,6 @@ Company: <itemvalue>document.company</itemvalue><br />]]></imixs:value>
|
|||
<bpmn2:association id="association_hZu4qg" sourceRef="dataObject_CRa7xA" targetRef="task_PsBytg">
|
||||
<bpmn2:documentation id="documentation_du0vPw"/>
|
||||
</bpmn2:association>
|
||||
<bpmn2:intermediateCatchEvent id="event_HhuoiQ" imixs:activityid="1" name="Save">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="keylogtimeformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyarchive" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtmailsubject" type="xs:string">
|
||||
<imixs:value><![CDATA[Eingangsrechnung erhalten: <itemvalue>_subject</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaccessmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyscheduledactivity" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfmailbody" type="xs:string">
|
||||
<imixs:value><![CDATA[Wir haben folgende Rechnung erhalten: bitte freigeben.
|
||||
|
||||
Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</itemvalue>)
|
||||
<itemvalue>_description</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keymailreceiverfields" type="xs:string"/>
|
||||
<imixs:item name="keyversion" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaddwritefields" type="xs:string"/>
|
||||
<imixs:item name="numnextactivityid" type="xs:int">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyfollowup" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keypublicresult" type="xs:string">
|
||||
<imixs:value><![CDATA[1]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keylogdateformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipfields" type="xs:string"/>
|
||||
<imixs:item name="numnextid" type="xs:int">
|
||||
<imixs:value><![CDATA[5005]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtnextprocesstree" type="xs:string">
|
||||
<imixs:value/>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="action">home</item>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Freigabe einholen]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Rechnungseingang]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_HvyhlA"><![CDATA[Digitalisierung einer neuen Eingangsrechnung]]></bpmn2:documentation>
|
||||
<bpmn2:outgoing>sequenceFlow_Fdk05g</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_Fdk05g" sourceRef="event_HhuoiQ" targetRef="task_PsBytg">
|
||||
<bpmn2:documentation id="documentation_9dc0sg"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:intermediateCatchEvent id="event_bYlo0w" imixs:activityid="40" name="Back">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="keylogtimeformat" type="xs:string">
|
||||
|
|
@ -694,75 +550,6 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
</imixs-form-section>
|
||||
</imixs-form>]]></bpmn2:documentation>
|
||||
</bpmn2:dataObject>
|
||||
<bpmn2:intermediateCatchEvent id="event_esmWYg" imixs:activityid="1" name="Save">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="keylogtimeformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyarchive" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtmailsubject" type="xs:string">
|
||||
<imixs:value><![CDATA[Eingangsrechnung erhalten: <itemvalue>_subject</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaccessmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyscheduledactivity" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfmailbody" type="xs:string">
|
||||
<imixs:value><![CDATA[Wir haben folgende Rechnung erhalten: bitte freigeben.
|
||||
|
||||
Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</itemvalue>)
|
||||
<itemvalue>_description</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keymailreceiverfields" type="xs:string"/>
|
||||
<imixs:item name="keyversion" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaddwritefields" type="xs:string"/>
|
||||
<imixs:item name="numnextactivityid" type="xs:int">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyfollowup" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keypublicresult" type="xs:string">
|
||||
<imixs:value><![CDATA[1]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keylogdateformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipfields" type="xs:string"/>
|
||||
<imixs:item name="numnextid" type="xs:int">
|
||||
<imixs:value><![CDATA[5005]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtnextprocesstree" type="xs:string">
|
||||
<imixs:value/>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="action">home</item>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Freigabe einholen]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Rechnungseingang]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_N7xgRQ"><![CDATA[Digitalisierung einer neuen Eingangsrechnung]]></bpmn2:documentation>
|
||||
<bpmn2:outgoing>sequenceFlow_zA065w</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_zA065w" sourceRef="event_esmWYg" targetRef="Task_4">
|
||||
<bpmn2:documentation id="documentation_ACT8Kw"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:association id="association_NqDnFA" sourceRef="dataObject_vVKXIg" targetRef="Task_4">
|
||||
<bpmn2:documentation id="documentation_y2gHkg"/>
|
||||
</bpmn2:association>
|
||||
|
|
@ -833,7 +620,13 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<imixs:value><![CDATA[<imixs-ai name="PROMPT">
|
||||
<endpoint>https://llama.cpp.imixs.com/</endpoint>
|
||||
<result-event>XML</result-event>
|
||||
<debug>true</debug>
|
||||
</imixs-ai>
|
||||
<imixs-ai name="SUGGEST">
|
||||
<items>cdtr.name,invoice.number,invoice.date,invoice.total,payment.date,cdtr.iban,cdtr.bic,total</items>
|
||||
<mode>ON</mode>
|
||||
</imixs-ai>
|
||||
<validation name="required">false</validation>
|
||||
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
|
|
@ -916,7 +709,7 @@ Transfer the individual invoice data to the XML tags, taking into account the fo
|
|||
|
||||
- Invoice number ==> "invoice.number"
|
||||
- Invoice Date ==> "invoice.date"
|
||||
- Total ==> "invoice.total"
|
||||
- Total ==> "invoice.total" (in EUR or if not available in USD or PLN)
|
||||
|
||||
- IBAN ==> "cdtr.iban"
|
||||
- BIC or SWIFT ==> "cdtr.bic"
|
||||
|
|
@ -1001,7 +794,7 @@ Transfer the individual invoice data to the XML tags, taking into account the fo
|
|||
<version>rechnungseingang-de-1.2</version>
|
||||
<task>5000</task>
|
||||
<event>990</event>
|
||||
</model>
|
||||
</model>
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
|
|
@ -1083,7 +876,8 @@ Transfer the individual invoice data to the XML tags, taking into account the fo
|
|||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<imixs-ai name="PROMPT">
|
||||
<imixs:value><![CDATA[<validation name="required">false</validation>
|
||||
<imixs-ai name="PROMPT">
|
||||
<endpoint>https://llama.cpp.imixs.com/</endpoint>
|
||||
<result-event>XML</result-event>
|
||||
</imixs-ai>
|
||||
|
|
@ -1214,7 +1008,7 @@ Note: Do not generate any other information instead of the XML object.
|
|||
<endpoint>https://llama.cpp.imixs.com/</endpoint>
|
||||
<result-item>invoice.summary</result-item>
|
||||
</imixs-ai>
|
||||
<item name="cdtr.name"><itemvalue>document.company</itemvalue></item>
|
||||
<validation name="required">false</validation>
|
||||
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
|
|
@ -1436,16 +1230,6 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<bpmndi:BPMNShape bpmnElement="task_uB6BGQ" id="BPMNShape_027JKQ">
|
||||
<dc:Bounds height="50.0" width="110.0" x="630.0" y="520.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="event_1Vp9Fg" id="BPMNShape_Lc826w">
|
||||
<dc:Bounds height="36.0" width="36.0" x="667.0" y="617.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_mM6Waw">
|
||||
<dc:Bounds height="20.0" width="100.0" x="634.0" y="658.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_30s7vA" id="BPMNEdge_Y0UmOg" sourceElement="BPMNShape_Lc826w" targetElement="BPMNShape_027JKQ">
|
||||
<di:waypoint x="685.0" y="617.0"/>
|
||||
<di:waypoint x="685.0" y="570.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="textAnnotation_CtU05A" id="BPMNShape_b8pQXg">
|
||||
<dc:Bounds height="107.0" width="403.0" x="210.0" y="160.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
|
|
@ -1482,16 +1266,6 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<di:waypoint x="945.0" y="605.0"/>
|
||||
<di:waypoint x="945.0" y="570.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="event_HhuoiQ" id="BPMNShape_kxS7KQ">
|
||||
<dc:Bounds height="36.0" width="36.0" x="927.0" y="417.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_6sp38g">
|
||||
<dc:Bounds height="20.0" width="100.0" x="894.0" y="458.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_Fdk05g" id="BPMNEdge_lPAWcg" sourceElement="BPMNShape_kxS7KQ" targetElement="BPMNShape_AJWuJw">
|
||||
<di:waypoint x="945.0" y="453.0"/>
|
||||
<di:waypoint x="945.0" y="520.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="event_bYlo0w" id="BPMNShape_S9nkfw">
|
||||
<dc:Bounds height="36.0" width="36.0" x="927.0" y="707.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_2yo8Aw">
|
||||
|
|
@ -1528,16 +1302,6 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<dc:Bounds height="20.0" width="100.0" x="1577.5" y="465.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="event_esmWYg" id="BPMNShape_6eMLSQ">
|
||||
<dc:Bounds height="36.0" width="36.0" x="1607.0" y="627.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_bdCEaw">
|
||||
<dc:Bounds height="20.0" width="100.0" x="1574.0" y="668.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_zA065w" id="BPMNEdge_b00LnQ" sourceElement="BPMNShape_6eMLSQ" targetElement="BPMNShape_Task_4">
|
||||
<di:waypoint x="1625.0" y="627.0"/>
|
||||
<di:waypoint x="1625.0" y="570.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="association_NqDnFA" id="BPMNEdge_Hu80mg" sourceElement="BPMNShape_xQVfDw" targetElement="BPMNShape_Task_4">
|
||||
<di:waypoint x="1627.5" y="460.0"/>
|
||||
<di:waypoint x="1627.5" y="490.0"/>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ Transfer the individual invoice data to the XML tags, taking into account the fo
|
|||
|
||||
- Invoice number ==> "invoice.number"
|
||||
- Invoice Date ==> "invoice.date"
|
||||
- Total ==> "invoice.total"
|
||||
- Total ==> "invoice.total" (in EUR or if not available in USD or PLN)
|
||||
|
||||
- IBAN ==> "cdtr.iban"
|
||||
- BIC or SWIFT ==> "cdtr.bic"
|
||||
|
|
|
|||
|
|
@ -812,6 +812,18 @@ result.isValid=true;
|
|||
<item name="document.type" type="text" label="Doument Type: " />
|
||||
<item name="document.language" type="text" label="Language: " />
|
||||
</imixs-form-section>
|
||||
<imixs-form-section columns="3">
|
||||
<item name="invoice.number" type="text" label="Invoice No.:" />
|
||||
<item name="invoice.date" type="date" label="Invoice Date:" />
|
||||
<item name="invoice.duedate" type="date" label="Due date:" />
|
||||
|
||||
<item name="invoice.total" type="currency" required="true" label="Total:" />
|
||||
<item name="invoice.currency" type="text" label="Currency:" />
|
||||
</imixs-form-section>
|
||||
<imixs-form-section columns="3">
|
||||
<item name="cdtr.iban" type="text" label="IBAN:" />
|
||||
<item name="cdtr.bic" type="text" label="BIC:" />
|
||||
</imixs-form-section>
|
||||
|
||||
<imixs-form-section columns="1" label="Document Summary" readonly="true" >
|
||||
<item name="invoice.summary" type="custom" path="markdown" />
|
||||
|
|
@ -1092,20 +1104,23 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtbusinessrule" type="CDATA">
|
||||
<imixs:item name="txtbusinessrule" type="xs:string">
|
||||
<imixs:value><![CDATA[var result={};
|
||||
result.isValid=true;
|
||||
result.errorMessage="";
|
||||
var paymentType=workitem.getItemValueString('payment.type');
|
||||
var iban=workitem.getItemValueString('cdtr.iban');
|
||||
var bic=workitem.getItemValueString('cdtr.bic');
|
||||
// SEPA ?
|
||||
if (workitem['payment.type'][0]!="direct_debit" && workitem['payment.type'][0]!="no_sepa" ) {
|
||||
if ( workitem['cdtr.iban'][0]=='' || workitem['cdtr.bic'][0]=='' ) {
|
||||
if (paymentType!="direct_debit" && paymentType!="no_sepa" ) {
|
||||
if ( iban=='' || bic=='' ) {
|
||||
result.isValid=false;
|
||||
result.errorMessage='Bitte geben Sie eine gültige IBAN/BIC ein.';
|
||||
}
|
||||
// waerung?
|
||||
if ( workitem['invoice.currency'][0]!='EUR' ) {
|
||||
if ( workitem.getItemValueString('invoice.currency')!='EUR' ) {
|
||||
result.isValid=false;
|
||||
result.errorMessage=result.errorMessage+' Bei SEPA Zahlungen muss als Währung EUR angegeben werden.';
|
||||
result.errorMessage=result.errorMessage+' Bei SEPA Zahlungen muss als Währung EUR angegeben werden. ='+ workitem.getItemValueString('invoice.currency') ;
|
||||
}
|
||||
}]]></imixs:value>
|
||||
</imixs:item>
|
||||
|
|
@ -1458,7 +1473,11 @@ Bei Fragen wenden Sie sich bitte an info@imixs.com
|
|||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="comment" ignore="true"/>
|
||||
<item name="process">Rechnungscontrolling</item>]]></imixs:value>
|
||||
<item name="process">Rechnungscontrolling</item>
|
||||
<imixs-ai name="SUGGEST">
|
||||
<items>cdtr.name,invoice.number,invoice.date,invoice.total,payment.date,cdtr.iban,cdtr.bic,total</items>
|
||||
<mode>ON</mode>
|
||||
</imixs-ai>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Speichern]]></imixs:value>
|
||||
|
|
|
|||
Loading…
Reference in a new issue