update
This commit is contained in:
parent
5c6f48d44c
commit
c62ba0ebc1
13 changed files with 4168 additions and 1 deletions
|
|
@ -273,6 +273,12 @@
|
|||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- SEPA Adapter -->
|
||||
<dependency>
|
||||
<groupId>org.imixs.workflow</groupId>
|
||||
<artifactId>imixs-adapters-sepa</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Imixs-ML -->
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
<f:subview 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">
|
||||
|
||||
<ul>
|
||||
<li><h:link outcome="/pages/admin/document_import">Dokument Import</h:link></li>
|
||||
<!--
|
||||
<li><h:link outcome="/pages/admin/sepa_config">SEPA</h:link></li>
|
||||
-->
|
||||
</ul>
|
||||
</f:subview>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,342 @@
|
|||
<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:pt="http://xmlns.jcp.org/jsf/passthrough"
|
||||
xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty"
|
||||
template="/layout/template.xhtml">
|
||||
|
||||
<ui:define name="content">
|
||||
<f:view>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
/*<![CDATA[*/
|
||||
$(document).ready(function() {
|
||||
//$('.imixsdatatable').layoutImixsTable();
|
||||
});
|
||||
|
||||
|
||||
// This method refreshs the layout
|
||||
function updateOptions(data) {
|
||||
if (data.status === 'success') {
|
||||
$('[id$=Optionlist]').imixsLayout();
|
||||
|
||||
/* var id='#'+data.source.id;
|
||||
if (id.indexOf("input")>-1) {
|
||||
$(id).focus();
|
||||
} */
|
||||
}
|
||||
}
|
||||
|
||||
/*]]>*/
|
||||
</script>
|
||||
|
||||
|
||||
<h:form id="import_form_id">
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="imixs-form">
|
||||
<div class="imixs-header">
|
||||
<h1>Dokument Import</h1>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="imixs-body">
|
||||
|
||||
|
||||
<div class="imixs-tabs">
|
||||
<ul>
|
||||
<li><a href="#tab-1">Timer Setting</a></li>
|
||||
<li><a href="#tab-2">Data Sources</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- ### Timer ### -->
|
||||
<div id="tab-1">
|
||||
|
||||
<div class="ui-state-highlight ui-corner-all"
|
||||
style="margin-bottom: 10px; padding: .5em;">
|
||||
<p><span class="typcn typcn-lightbulb"></span> Define a crontab to schedule the import processor.</p>
|
||||
</div>
|
||||
<ui:include src="sub_scheduler_control.xhtml">
|
||||
<ui:param name="schedulerController"
|
||||
value="#{documentImportController}" />
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<!-- ### SMTP ### -->
|
||||
<div id="tab-2">
|
||||
|
||||
<div class="ui-state-highlight ui-corner-all"
|
||||
style="margin-bottom: 10px; padding: .5em;">
|
||||
<p><span class="typcn typcn-lightbulb"></span> Define a destination IMAP server and assign mail addresses to specific workflow groups.</p>
|
||||
</div>
|
||||
<div class="imixs-form-panel">
|
||||
|
||||
<!-- ### Sources ### -->
|
||||
<h:panelGroup layout="block"
|
||||
id="imapOptionlist" binding="#{imapOptionlistContainer}">
|
||||
<f:ajax onevent="updateOptions">
|
||||
<table class="imixsdatatable"
|
||||
style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10px;text-align: center;">Pos</th>
|
||||
<th style="width: 100px;text-align: center;">Type</th>
|
||||
<th style="">Workflowgroup</th>
|
||||
<th style="">Modelversion</th>
|
||||
<th style="">Task</th>
|
||||
<th style="">Event</th>
|
||||
<th style="width: 110px;">
|
||||
<!-- delete -->
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<ui:repeat var="source" value="#{documentImportController.sources}">
|
||||
|
||||
<tr>
|
||||
<!-- pos -->
|
||||
<td style=" text-align: center;">
|
||||
<h:commandLink
|
||||
actionListener="#{documentImportController.selectSource(source.item['index'])}">#<h:outputText
|
||||
value="#{source.item['index']}" />
|
||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
||||
onevent="updateOptions" />
|
||||
</h:commandLink>
|
||||
</td>
|
||||
|
||||
<!-- type -->
|
||||
<td style="text-align: center;">
|
||||
<h:outputText value="#{source.item['type']}" />
|
||||
</td>
|
||||
<!-- Workflowgroup -->
|
||||
<td><h:outputText
|
||||
value="#{source.item['workflowgroup']}" />
|
||||
</td>
|
||||
|
||||
<td><h:outputText
|
||||
value="#{source.item['modelversion']}" />
|
||||
</td>
|
||||
<td><h:outputText
|
||||
value="#{source.item['task']}" />
|
||||
</td>
|
||||
<td><h:outputText
|
||||
value="#{source.item['event']}" />
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<h:commandLink
|
||||
actionListener="#{documentImportController.moveSourceDown(source.item['index'])}">
|
||||
<span class="typcn typcn-arrow-down-thick imixs-state-info"></span>
|
||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
||||
onevent="updateOptions" />
|
||||
</h:commandLink>
|
||||
<h:commandLink
|
||||
actionListener="#{documentImportController.moveSourceUp(source.item['index'])}">
|
||||
<span class="typcn typcn-arrow-up-thick imixs-state-info"></span>
|
||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
||||
onevent="updateOptions" />
|
||||
</h:commandLink>
|
||||
|
||||
<h:commandLink
|
||||
actionListener="#{documentImportController.removeSource(source.item['index'])}">
|
||||
<span class="typcn typcn-trash imixs-state-info"></span>
|
||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
||||
onevent="updateOptions" />
|
||||
</h:commandLink></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</ui:repeat>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
<!-- add button -->
|
||||
<h:commandButton
|
||||
value="#{message.add}"
|
||||
actionListener="#{documentImportController.addSource()}">
|
||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
||||
onevent="updateOptions" />
|
||||
</h:commandButton>
|
||||
|
||||
|
||||
|
||||
<!-- ### Subform for selected source ### -->
|
||||
|
||||
<h:panelGroup layout="block" rendered="#{! empty documentImportController.source}" styleClass="imixs-form-panel">
|
||||
<h3>Order ID #<h:outputText value="#{documentImportController.source.item['index']}"/></h3>
|
||||
<div class="imixs-form-section-3">
|
||||
<dl>
|
||||
<dt>Type</dt>
|
||||
<dd>
|
||||
<h:selectOneRadio value="#{documentImportController.source.item['type']}">
|
||||
<f:selectItem itemLabel="IMAP" itemValue="IMAP"/>
|
||||
<f:selectItem itemLabel="FTP" itemValue="FTP"/>
|
||||
</h:selectOneRadio>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
<dt>Workflowgroup</dt>
|
||||
<dd>
|
||||
<h:selectOneMenu
|
||||
value="#{documentImportController.source.item['workflowgroup']}">
|
||||
<c:forEach items="#{modelController.workflowGroups}" var="group">
|
||||
<f:selectItem itemLabel="#{group}" itemValue="#{group}" />
|
||||
</c:forEach>
|
||||
</h:selectOneMenu>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="imixs-form-section-3">
|
||||
|
||||
<dl>
|
||||
<dt>Workflowmodel</dt>
|
||||
<dd>
|
||||
<h:inputText
|
||||
value="#{documentImportController.source.item['workflowmodel']}"/>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Task ID</dt>
|
||||
<dd>
|
||||
<h:inputText
|
||||
value="#{documentImportController.source.item['task']}"/>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Event ID</dt>
|
||||
<dd>
|
||||
<h:inputText
|
||||
value="#{documentImportController.source.item['event']}"/>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<!-- IMAP -->
|
||||
<div class="imixs-form-section-3">
|
||||
<dl>
|
||||
<dt>Server : Port</dt>
|
||||
<dd>
|
||||
<h:inputText style="width:80%;"
|
||||
value="#{documentImportController.source.item['server']}">
|
||||
</h:inputText> : <h:inputText style="width:15%;"
|
||||
value="#{documentImportController.source.item['port']}">
|
||||
</h:inputText>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>User</dt>
|
||||
<dd>
|
||||
<h:inputText required="false"
|
||||
value="#{documentImportController.source.item['user']}">
|
||||
</h:inputText>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
<dt>Password</dt>
|
||||
<dd>
|
||||
<h:inputSecret required="false" redisplay="true"
|
||||
value="#{documentImportController.source.item['password']}">
|
||||
</h:inputSecret>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="imixs-form-section">
|
||||
<dl>
|
||||
<dt>Selector</dt>
|
||||
<dd>
|
||||
<h:inputText required="false"
|
||||
value="#{documentImportController.source.item['selector']}">
|
||||
</h:inputText>
|
||||
<p class="small">A selector can be an optional regular expression to be used to select a subset of data</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Options</dt>
|
||||
<dd>
|
||||
<h:inputTextarea required="false"
|
||||
style="height: 5em; width: 100%;"
|
||||
value="#{documentImportController.source.item['options']}">
|
||||
</h:inputTextarea>
|
||||
<p class="small">You can apply custom properties here.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</h:panelGroup> <!-- end of source subform -->
|
||||
|
||||
|
||||
|
||||
|
||||
</f:ajax>
|
||||
|
||||
|
||||
</h:panelGroup>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="imixs-footer">
|
||||
<h:outputLabel value="#{message.modified}: " />
|
||||
<h:outputText
|
||||
value="#{documentImportController.configuration.item['$modified']}">
|
||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
||||
pattern="#{message.dateTimePattern}" />
|
||||
</h:outputText>
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
<h:commandButton
|
||||
actionListener="#{documentImportController.saveConfiguration()}"
|
||||
action="/pages/admin/document_import"
|
||||
value="#{message.save}">
|
||||
</h:commandButton>
|
||||
|
||||
|
||||
<h:commandButton value="#{message.close}" action="notes" />
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</h:form>
|
||||
</f:view>
|
||||
</ui:define>
|
||||
|
||||
|
||||
|
||||
</ui:composition>
|
||||
|
|
@ -0,0 +1,180 @@
|
|||
<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>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
/*<![CDATA[*/
|
||||
|
||||
function updateStatustPanel(data) {
|
||||
//initUserInput($('#userselector_id'));
|
||||
if (data.status === 'success') {
|
||||
// select with wildcard operator
|
||||
$('[id$=status_panel]').imixsLayout();
|
||||
}
|
||||
}
|
||||
|
||||
/*]]>*/
|
||||
</script>
|
||||
|
||||
|
||||
<h:form id="import_form_id">
|
||||
<!-- ########## Error ########## -->
|
||||
<ui:include src="/pages/error_message.xhtml" />
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="imixs-form">
|
||||
<div class="imixs-header">
|
||||
<h1>SEPA</h1>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="imixs-body">
|
||||
<!-- **** General info ***** -->
|
||||
|
||||
<div class="imixs-form-panel">
|
||||
<h1>Configuration</h1>
|
||||
<div class="imixs-form-section-2">
|
||||
<dl>
|
||||
<dt>
|
||||
Company: <span class="imixs-required">* </span>
|
||||
</dt>
|
||||
<dd>
|
||||
<h:inputText required="true"
|
||||
value="#{sepaController.configuration.item['_dbtr_name']}">
|
||||
</h:inputText>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
<dt>
|
||||
IBAN <span class="imixs-required">* <h:message
|
||||
for="iban" /></span>
|
||||
</dt>
|
||||
<dd>
|
||||
<h:inputText value="#{sepaController.dbtrIban}"
|
||||
id="iban" required="false"
|
||||
validatorMessage="#{app.IBAN_INVALID}" />
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>
|
||||
BIC <span class="imixs-required">* <h:message for="bic" /></span>
|
||||
</dt>
|
||||
<dd>
|
||||
<h:inputText value="#{sepaController.dbtrBic}" id="bic"
|
||||
required="false" validatorMessage="#{app.BIC_INVALID}" />
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="imixs-form-section-2">
|
||||
<dl>
|
||||
<dt>SEPA Model Version</dt>
|
||||
<dd>
|
||||
<h:inputText required="false"
|
||||
value="#{sepaController.configuration.item['_model_version']}">
|
||||
</h:inputText>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>SEPA Initial Task</dt>
|
||||
<dd>
|
||||
<h:inputText required="false"
|
||||
value="#{sepaController.configuration.item['_initial_task']}">
|
||||
</h:inputText>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="imixs-form-section">
|
||||
<p>
|
||||
<span class="typcn typcn-lightbulb"></span> The initial task
|
||||
must define a report containing the query and style sheet
|
||||
information. Invoices will be automatically grouped by the
|
||||
attribute "_sepa_iban". If this attribute is not set, the
|
||||
default sepa_iban will be assigned to the invoice before
|
||||
processed. The SEPA workflow may optional include a
|
||||
"invoice_update" item definition.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- include timer control -->
|
||||
|
||||
<ui:include src="sub_scheduler_control.xhtml">
|
||||
<ui:param name="schedulerController" value="#{sepaController}" />
|
||||
</ui:include>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="imixs-footer">
|
||||
<h:outputLabel value="#{message.modified}: " />
|
||||
<h:outputText
|
||||
value="#{sepaController.configuration.item['$modified']}">
|
||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
||||
pattern="#{message.dateTimePattern}" />
|
||||
</h:outputText>
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
<h:commandButton
|
||||
actionListener="#{sepaController.saveConfiguration()}"
|
||||
value="#{message.save}">
|
||||
</h:commandButton>
|
||||
|
||||
<h:commandButton value="#{message.close}" action="notes" />
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</h:form>
|
||||
</f:view>
|
||||
</ui:define>
|
||||
|
||||
|
||||
|
||||
</ui:composition>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty">
|
||||
|
||||
|
||||
<div class="imixs-form-section">
|
||||
<h1>Log</h1>
|
||||
<div class="ui-state-highlight ui-corner-all imixs-instruction">
|
||||
<pre>
|
||||
<ui:repeat var="logentry"
|
||||
value="#{workitem.itemList['_scheduler_logmessage']}">
|
||||
<h:outputText escape="false" value="#{logentry}" /><br />
|
||||
</ui:repeat>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ui:composition>
|
||||
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
<f:subview xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
|
||||
xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions">
|
||||
|
||||
<script type="text/javascript">
|
||||
/*<![CDATA[*/
|
||||
|
||||
function updateStatustPanel(data) {
|
||||
//initUserInput($('#userselector_id'));
|
||||
if (data.status === 'success') {
|
||||
$('[id$=status_panel]').imixsLayout();
|
||||
}
|
||||
}
|
||||
|
||||
/*]]>*/
|
||||
</script>
|
||||
|
||||
|
||||
<!-- **** General info ***** -->
|
||||
<div class="imixs-form-panel">
|
||||
<h:inputTextarea required="false"
|
||||
converter="org.imixs.VectorConverter"
|
||||
style="height: 8em; width: 100%;"
|
||||
value="#{schedulerController.configuration.itemList['_scheduler_definition']}">
|
||||
</h:inputTextarea>
|
||||
</div>
|
||||
|
||||
<!-- **** Timer Status ***** -->
|
||||
<h:panelGroup layout="block" class="imixs-form-panel" id="status_panel">
|
||||
<h:panelGroup layout="block" id="timer_details"
|
||||
class="imixs-form-section">
|
||||
|
||||
<h2>
|
||||
<h:outputText id="timer_status"
|
||||
value="Status ⇢ #{schedulerController.configuration.item['_scheduler_status']}" />
|
||||
|
||||
<h:panelGroup
|
||||
rendered="#{! empty schedulerController.configuration.item['_scheduler_errormessage']}"
|
||||
class="small" style="color:red">
|
||||
<br />Error: #{schedulerController.configuration.item['_scheduler_errormessage']}
|
||||
</h:panelGroup>
|
||||
</h2>
|
||||
|
||||
<h:panelGrid columns="2">
|
||||
|
||||
<h:panelGroup layout="block" style="width:100px;">
|
||||
<h:outputLabel value="ID: " />
|
||||
</h:panelGroup>
|
||||
<h:panelGroup>
|
||||
<h:outputText
|
||||
value="#{schedulerController.configuration.item['$UniqueID']}" />
|
||||
</h:panelGroup>
|
||||
|
||||
|
||||
<h:outputLabel value="Schedule: " />
|
||||
<h:outputText
|
||||
value="#{schedulerController.configuration.item['Schedule']}" />
|
||||
|
||||
|
||||
|
||||
<h:outputLabel value="Next Timeout: " />
|
||||
<h:panelGroup>
|
||||
<h:outputText
|
||||
value="#{schedulerController.configuration.item['nextTimeout']}"
|
||||
rendered="#{! empty schedulerController.configuration.item['nextTimeout']}">
|
||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
||||
pattern="#{message.dateTimePattern}" />
|
||||
|
||||
|
||||
</h:outputText>
|
||||
<h:outputText value=" " />
|
||||
</h:panelGroup>
|
||||
|
||||
<h:outputLabel value="TimeRemaining: " />
|
||||
<h:outputText
|
||||
value="#{schedulerController.millisToShortDHMS(schedulerController.configuration.item['timeRemaining'])}" />
|
||||
|
||||
|
||||
|
||||
|
||||
</h:panelGrid>
|
||||
|
||||
<h:outputLabel value="Last Run: " />
|
||||
<h:panelGroup layout="block" class="ui-state-highlight ui-corner-all"
|
||||
style="padding: .5em;">
|
||||
<ui:fragment
|
||||
rendered="#{! empty schedulerController.configuration.item['_scheduler_logmessage']}">
|
||||
<ui:repeat var="logentry"
|
||||
value="#{schedulerController.configuration.itemList['_scheduler_logmessage']}">
|
||||
<h:outputText escape="false" value="#{logentry}" />
|
||||
<br />
|
||||
</ui:repeat>
|
||||
</ui:fragment>
|
||||
<ui:fragment
|
||||
rendered="#{empty schedulerController.configuration.item['_scheduler_logmessage']}">
|
||||
No Data.
|
||||
</ui:fragment>
|
||||
|
||||
</h:panelGroup>
|
||||
|
||||
</h:panelGroup>
|
||||
|
||||
|
||||
<!-- Timer Actions -->
|
||||
<h:commandButton value="#{message.refresh}"
|
||||
actionListener="#{schedulerController.refresh}">
|
||||
<f:ajax render="status_panel" onevent="updateStatustPanel" />
|
||||
</h:commandButton>
|
||||
|
||||
|
||||
<h:commandButton
|
||||
actionListener="#{schedulerController.startScheduler}" value="start">
|
||||
</h:commandButton>
|
||||
<h:commandButton actionListener="#{schedulerController.stopScheduler}"
|
||||
value="stop">
|
||||
</h:commandButton>
|
||||
<h:commandButton
|
||||
actionListener="#{schedulerController.restartScheduler}"
|
||||
value="restart">
|
||||
</h:commandButton>
|
||||
|
||||
|
||||
|
||||
</h:panelGroup>
|
||||
|
||||
</f:subview>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
|
||||
xmlns:marty="http://xmlns.jcp.org/jsf/composite/marty"
|
||||
xmlns:i="http://xmlns.jcp.org/jsf/composite/imixs">
|
||||
|
||||
<!-- the following code computes the txtworkflow abstract from the current modelversion and processid -->
|
||||
<ui:param name="instruction"
|
||||
value="#{modelController.getProcessDescription(workflowController.workitem.item['$taskid'],workflowController.workitem.item['$ModelVersion'],workflowController.workitem)}"></ui:param>
|
||||
<h:panelGroup layout="block" styleClass="imixs-instruction"
|
||||
rendered="#{! empty instruction}">
|
||||
<h:outputText escape="false" value="#{instruction}"/>
|
||||
</h:panelGroup>
|
||||
|
||||
<!-- Custom Form -->
|
||||
<f:subview>
|
||||
<ui:include src="/pages/workitems/forms/custom_read.xhtml">
|
||||
<ui:param name="workitem" value="#{workflowController.workitem}" />
|
||||
</ui:include>
|
||||
</f:subview>
|
||||
|
||||
|
||||
<!-- Dispatch Form -->
|
||||
<ui:param name="spaces" value="#{teamController.spaces}" />
|
||||
<h:panelGroup layout="block" styleClass="imixs-form-section"
|
||||
rendered="#{!empty spaces}">
|
||||
<h3>#{app.sub_dispatch}</h3>
|
||||
<dl>
|
||||
<dt>#{message['form.space']}</dt>
|
||||
<dd>
|
||||
<h:selectOneMenu style="width:20em;" required="false"
|
||||
value="#{workflowController.workitem.item['space.ref']}">
|
||||
<f:selectItem itemLabel=""></f:selectItem>
|
||||
<c:forEach items="#{teamController.spaces}" var="space">
|
||||
<f:selectItem itemLabel="#{space.item['name']}"
|
||||
itemValue="#{space.item['$UniqueID']}">
|
||||
</f:selectItem>
|
||||
</c:forEach>
|
||||
</h:selectOneMenu>
|
||||
</dd>
|
||||
</dl>
|
||||
</h:panelGroup>
|
||||
|
||||
|
||||
<!-- sub forms (optional) -->
|
||||
<c:forEach items="#{formController.formDefinition.sections}"
|
||||
var="section">
|
||||
<div class="imixs-form-panel">
|
||||
<h3>
|
||||
<h:outputText value="#{section.name}" />
|
||||
</h3>
|
||||
<f:subview>
|
||||
<ui:include src="/pages/workitems/forms/#{section.path}.xhtml">
|
||||
<ui:param name="workitem" value="#{workflowController.workitem}" />
|
||||
</ui:include>
|
||||
</f:subview>
|
||||
</div>
|
||||
</c:forEach>
|
||||
|
||||
</ui:composition>
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:i="http://java.sun.com/jsf/composite/imixs"
|
||||
xmlns:marty="http://java.sun.com/jsf/composite/marty">
|
||||
|
||||
|
||||
<div class="imixs-form-section-2">
|
||||
<dl>
|
||||
<dt>IBAN</dt>
|
||||
<dd>
|
||||
<h:outputText value="#{workitem.item['_dbtr_iban']}" />
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>BIC</dt>
|
||||
<dd>
|
||||
<h:outputText value="#{workitem.item['_dbtr_bic']}" />
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="imixs-form-section">
|
||||
<h3>Invoices</h3>
|
||||
|
||||
<table class="">
|
||||
<tr>
|
||||
<th style="">#{custom.creditor_name}</th>
|
||||
<th style="">#{custom.invoicenumber}</th>
|
||||
<th style="">#{custom.invoicedate}</th>
|
||||
<th style="">#{custom.amount}</th>
|
||||
<th style=""></th>
|
||||
<th style="">IBAN</th>
|
||||
<th style="">BIC</th>
|
||||
</tr>
|
||||
<c:forEach items="#{workitem.itemList['txtworkitemref']}" var="id">
|
||||
<!-- load inovice data by documentController: #{documentController.load(id)} -->
|
||||
<ui:param name="invoice" value="#{documentController.getDocument()}"></ui:param>
|
||||
<tr>
|
||||
<td>#{invoice.item['_kreditor']}</td>
|
||||
<td>#{invoice.item['_invoicenumber']}</td>
|
||||
<td><h:outputText value="#{invoice.item['_invoicedate']}">
|
||||
<f:convertDateTime pattern="#{message.datePatternShort}"
|
||||
timeZone="#{message.timeZone}" />
|
||||
</h:outputText></td>
|
||||
<td style="text-align: right;"><h:outputText
|
||||
value="#{invoice.item['_amount_brutto']}">
|
||||
<f:convertNumber minFractionDigits="2" locale="de" />
|
||||
</h:outputText></td>
|
||||
|
||||
<td>#{invoice.item['_currency']}</td>
|
||||
<td>#{invoice.item ['_cdtr_iban']}</td>
|
||||
<td>#{invoice.item['_cdtr_bic']}</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
|
||||
<tr style="border-top: 1px solid #ccc;">
|
||||
<td />
|
||||
<td />
|
||||
<td><strong>Summary</strong></td>
|
||||
<td style="text-align: right;"><strong><h:outputText
|
||||
value="#{sepaController.calculateSum(workitem.itemList['txtworkitemref'], '_amount_brutto')}">
|
||||
<f:convertNumber minFractionDigits="2" locale="de" />
|
||||
</h:outputText></strong></td>
|
||||
<td><strong>#{invoice.item['_currency']}</strong></td>
|
||||
<td />
|
||||
<td />
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
</ui:composition>
|
||||
|
||||
7
pom.xml
7
pom.xml
|
|
@ -176,6 +176,13 @@
|
|||
</dependency>
|
||||
|
||||
|
||||
<!-- SEPA Adapter -->
|
||||
<dependency>
|
||||
<groupId>org.imixs.workflow</groupId>
|
||||
<artifactId>imixs-adapters-sepa</artifactId>
|
||||
<version>${org.imixs.adapters.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Imixs-Archive -->
|
||||
<dependency>
|
||||
|
|
|
|||
1
reports/sepa/sepa-2.0.1.imixs-report
Normal file
1
reports/sepa/sepa-2.0.1.imixs-report
Normal file
File diff suppressed because one or more lines are too long
174
reports/sepa/sepa.xsl
Normal file
174
reports/sepa/sepa.xsl
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
version="2.0">
|
||||
<xsl:strip-space elements="*" />
|
||||
<xsl:output method="xml" indent="yes" encoding="UTF-8" standalone="yes" />
|
||||
|
||||
<xsl:template match="/">
|
||||
|
||||
<xsl:variable name="now" select="current-dateTime()" />
|
||||
|
||||
|
||||
<Document
|
||||
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 pain.001.003.03.xsd">
|
||||
<CstmrCdtTrfInitn>
|
||||
|
||||
<!-- generate header info -->
|
||||
<!-- compute count of invoices -->
|
||||
<xsl:variable name="count"
|
||||
select="count(/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'Rechnungseingang']/item[@name='$uniqueid']/value)" />
|
||||
<!-- compute total amount -->
|
||||
<xsl:variable name="totalsum"
|
||||
select="xs:decimal(sum(/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'Rechnungseingang']/item[@name='_amount_brutto']/value))" />
|
||||
<!-- round to 2 digits -->
|
||||
<xsl:variable name="total"
|
||||
select="xs:decimal(round-half-to-even($totalsum, 2))" />
|
||||
|
||||
<!-- shortcut for the sepa export document -->
|
||||
<xsl:variable name="exportWorkitem"
|
||||
select="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'SEPA-Export']" />
|
||||
|
||||
<GrpHdr>
|
||||
<MsgId>
|
||||
<xsl:value-of
|
||||
select="replace($exportWorkitem/item[@name='$uniqueid']/value, '-', '')" />
|
||||
</MsgId>
|
||||
<CreDtTm><xsl:value-of
|
||||
select="format-dateTime($now, '[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]')" /></CreDtTm>
|
||||
<NbOfTxs>
|
||||
<xsl:value-of select="$count" />
|
||||
</NbOfTxs>
|
||||
<CtrlSum>
|
||||
<xsl:value-of select="$total" />
|
||||
</CtrlSum>
|
||||
<InitgPty>
|
||||
<Nm>
|
||||
<xsl:value-of
|
||||
select="$exportWorkitem/item[@name='_dbtr_name']/value" />
|
||||
</Nm>
|
||||
</InitgPty>
|
||||
</GrpHdr>
|
||||
|
||||
<PmtInf>
|
||||
<PmtInfId>
|
||||
<xsl:value-of
|
||||
select="replace($exportWorkitem/item[@name='$uniqueid']/value, '-', '')" /><xsl:text>-1</xsl:text>
|
||||
</PmtInfId>
|
||||
<PmtMtd>TRF</PmtMtd>
|
||||
<NbOfTxs>
|
||||
<xsl:value-of select="$count" />
|
||||
</NbOfTxs>
|
||||
<CtrlSum>
|
||||
<xsl:value-of select="$total" />
|
||||
</CtrlSum>
|
||||
<PmtTpInf>
|
||||
<SvcLvl>
|
||||
<Cd>SEPA</Cd>
|
||||
</SvcLvl>
|
||||
</PmtTpInf>
|
||||
<ReqdExctnDt><xsl:value-of
|
||||
select="format-dateTime($now, '[Y0001]-[M01]-[D01]')" /></ReqdExctnDt>
|
||||
<Dbtr>
|
||||
<Nm>
|
||||
<xsl:value-of
|
||||
select="$exportWorkitem/item[@name='_dbtr_name']/value" />
|
||||
</Nm>
|
||||
</Dbtr>
|
||||
<DbtrAcct>
|
||||
<Id>
|
||||
<IBAN>
|
||||
<xsl:value-of
|
||||
select="replace($exportWorkitem/item[@name='_dbtr_iban']/value, ' ', '')" />
|
||||
</IBAN>
|
||||
</Id>
|
||||
</DbtrAcct>
|
||||
<DbtrAgt>
|
||||
<FinInstnId>
|
||||
<BIC>
|
||||
<xsl:value-of
|
||||
select="$exportWorkitem/item[@name='_dbtr_bic']/value" />
|
||||
</BIC>
|
||||
</FinInstnId>
|
||||
</DbtrAgt>
|
||||
<ChrgBr>SLEV</ChrgBr>
|
||||
|
||||
|
||||
|
||||
<!-- generate CdtTrfTxInf for each invoice -->
|
||||
<xsl:apply-templates
|
||||
select="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'Rechnungseingang']" />
|
||||
|
||||
|
||||
|
||||
</PmtInf>
|
||||
</CstmrCdtTrfInitn>
|
||||
</Document>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- This template builds sepa header info -->
|
||||
<xsl:template
|
||||
match="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'SEPA-Export']">
|
||||
<!-- not in use -->
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- This template builds sepa payment info for each invoice -->
|
||||
<xsl:template
|
||||
match="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'Rechnungseingang']">
|
||||
|
||||
|
||||
<CdtTrfTxInf xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03">
|
||||
<PmtId>
|
||||
<EndToEndId>NOTPROVIDED</EndToEndId>
|
||||
</PmtId>
|
||||
<Amt>
|
||||
<InstdAmt>
|
||||
<xsl:attribute name="Ccy"><xsl:value-of
|
||||
select="item[@name='_currency']/value" /></xsl:attribute>
|
||||
<xsl:value-of
|
||||
select="item[@name='_amount_brutto']/value" />
|
||||
</InstdAmt>
|
||||
</Amt>
|
||||
<CdtrAgt>
|
||||
<FinInstnId>
|
||||
<BIC>
|
||||
<xsl:value-of select="item[@name='_cdtr_bic']/value" />
|
||||
</BIC>
|
||||
</FinInstnId>
|
||||
</CdtrAgt>
|
||||
<Cdtr>
|
||||
<Nm>
|
||||
<xsl:value-of select="item[@name='_cdtr_name']/value" />
|
||||
</Nm>
|
||||
</Cdtr>
|
||||
<CdtrAcct>
|
||||
<Id>
|
||||
<IBAN>
|
||||
<xsl:value-of select="replace(item[@name='_cdtr_iban']/value, ' ', '')" />
|
||||
</IBAN>
|
||||
</Id>
|
||||
</CdtrAcct>
|
||||
<RmtInf>
|
||||
<Ustrd>
|
||||
<xsl:value-of select="item[@name='_subject']/value" />
|
||||
</Ustrd>
|
||||
</RmtInf>
|
||||
</CdtTrfTxInf>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</xsl:template>
|
||||
|
||||
|
||||
</xsl:stylesheet>
|
||||
2000
workflow/rechnungseingang-de-1.0.0-test-ralph.bpmn
Normal file
2000
workflow/rechnungseingang-de-1.0.0-test-ralph.bpmn
Normal file
File diff suppressed because it is too large
Load diff
1143
workflow/sepa-export-3.0.1.bpmn
Normal file
1143
workflow/sepa-export-3.0.1.bpmn
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue