agl Analyse Steuerbescheide
This commit is contained in:
parent
abfb0704e0
commit
b3d0efad64
7 changed files with 1025 additions and 0 deletions
|
|
@ -0,0 +1,245 @@
|
||||||
|
package com.alexanderlogistics;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.imixs.workflow.ItemCollection;
|
||||||
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.RequestScoped;
|
||||||
|
import jakarta.enterprise.event.Observes;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
import jakarta.json.Json;
|
||||||
|
import jakarta.json.JsonArrayBuilder;
|
||||||
|
import jakarta.json.JsonObject;
|
||||||
|
import jakarta.json.JsonObjectBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Der AGLAnalyticController berechnet verschiedene Analyse Daten
|
||||||
|
*
|
||||||
|
* @author rsoika
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Named
|
||||||
|
@RequestScoped
|
||||||
|
public class AGLAnalyticController implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private static Logger logger = Logger.getLogger(AnalyticController.class.getName());
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected DocumentService documentService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected DebitorStatistikController debitorStatistikController;
|
||||||
|
|
||||||
|
List<ItemCollection> steuerbescheide = null;
|
||||||
|
|
||||||
|
public void onEvent(@Observes AnalyticEvent event) {
|
||||||
|
if ("analytic.steuer.eust".equals(event.getKey())) {
|
||||||
|
event.setValue(computeSteuerbescheideEUST());
|
||||||
|
event.setLabel("EUR");
|
||||||
|
event.setDescription("Gesamt Einfuhrumsatzsteuer (EUSt)");
|
||||||
|
event.getWorkitem().setItemValue("eust.total", event.getValue());
|
||||||
|
|
||||||
|
}
|
||||||
|
if ("analytic.steuer.zoll".equals(event.getKey())) {
|
||||||
|
event.setValue(computeSteuerbescheideZoll());
|
||||||
|
event.setLabel("EUR");
|
||||||
|
event.setDescription("Gesamt Zölle (ZOLLEU)");
|
||||||
|
}
|
||||||
|
if ("analytic.steuer.due".equals(event.getKey())) {
|
||||||
|
event.setValue(computeSteuerbescheideUeberfaellig());
|
||||||
|
event.setLabel("EUR");
|
||||||
|
event.setDescription("Überfällige Steuerbescheide die noch nicht abgerechnet wurden.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("analytic.steuer.trend".equals(event.getKey())) {
|
||||||
|
event.setValue(computeSteuerbescheideByWeek());
|
||||||
|
event.setLabel("Zoll & EUST");
|
||||||
|
event.setDescription("Fälligkeiten nach KW");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Berechnet die Summe aller offenen EUST Beträge
|
||||||
|
* // tax.code=[0], amount=[3885.16], activity.type=[EUST],
|
||||||
|
* // filenumber=[LA-PAP-2408-024]}
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private double computeSteuerbescheideEUST() {
|
||||||
|
logger.info("compute EUST...");
|
||||||
|
List<ItemCollection> list = getSteuerbescheide();
|
||||||
|
double result = 0;
|
||||||
|
|
||||||
|
for (ItemCollection steuerItemCol : list) {
|
||||||
|
List<ItemCollection> positionsTabelle = InvoiceUtil.explodeChildList(steuerItemCol);
|
||||||
|
for (ItemCollection pos : positionsTabelle) {
|
||||||
|
if ("EUST".equalsIgnoreCase(pos.getItemValueString("activity.type"))) {
|
||||||
|
result = result + pos.getItemValueDouble("amount");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return InvoiceUtil.round(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Berechnet die Summe aller überfälligen steuer Beträge $taskID=1200
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private double computeSteuerbescheideUeberfaellig() {
|
||||||
|
logger.info("compute EUST...");
|
||||||
|
List<ItemCollection> list = getSteuerbescheide();
|
||||||
|
double result = 0;
|
||||||
|
for (ItemCollection steuerItemCol : list) {
|
||||||
|
if (steuerItemCol.getTaskID() == 1200) {
|
||||||
|
result = result + steuerItemCol.getItemValueDouble("invoice.saldo");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return InvoiceUtil.round(result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Berechnet die Summe aller offenen Zoll Beträge
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private double computeSteuerbescheideZoll() {
|
||||||
|
logger.info("compute Zoll...");
|
||||||
|
List<ItemCollection> list = getSteuerbescheide();
|
||||||
|
double result = 0;
|
||||||
|
|
||||||
|
for (ItemCollection steuerItemCol : list) {
|
||||||
|
List<ItemCollection> positionsTabelle = InvoiceUtil.explodeChildList(steuerItemCol);
|
||||||
|
for (ItemCollection pos : positionsTabelle) {
|
||||||
|
if ("ZOLL".equalsIgnoreCase(pos.getItemValueString("activity.type"))) {
|
||||||
|
result = result + pos.getItemValueDouble("amount");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return InvoiceUtil.round(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ItemCollection> getSteuerbescheide() {
|
||||||
|
if (steuerbescheide != null) {
|
||||||
|
return steuerbescheide;
|
||||||
|
}
|
||||||
|
// compute steuerbescheide....
|
||||||
|
logger.info("Load Steuerbescheide for analytics....");
|
||||||
|
String query = "(type:workitem ) AND ($workflowgroup:\"Steuerbescheid\")";
|
||||||
|
try {
|
||||||
|
steuerbescheide = documentService.find(query, 999, 0, "$created", false);
|
||||||
|
return steuerbescheide;
|
||||||
|
} catch (QueryException e) {
|
||||||
|
logger.severe("Failed to get invoices: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Berechnet Chart daten aller Steuerbescheide bei KW
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
chartCfg = {
|
||||||
|
type: 'bar',
|
||||||
|
data: {
|
||||||
|
datasets: [{
|
||||||
|
data: [20, 10],
|
||||||
|
}],
|
||||||
|
labels: ['1', '2']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String computeSteuerbescheideByWeek() {
|
||||||
|
logger.info("compute steuer by kw...");
|
||||||
|
|
||||||
|
List<ItemCollection> list = getSteuerbescheide();
|
||||||
|
|
||||||
|
Map<Integer, Double> saldoByWeek = new HashMap<>();
|
||||||
|
// SimpleDateFormat weekFormat = new SimpleDateFormat("w"); // 'w' gives the
|
||||||
|
// week number
|
||||||
|
// SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy"); // 'yyyy' for the
|
||||||
|
// year
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
int earliestWeek = Integer.MAX_VALUE;
|
||||||
|
int latestWeek = Integer.MIN_VALUE;
|
||||||
|
|
||||||
|
// Step 1: Group saldo by week
|
||||||
|
for (ItemCollection steuerItemCol : list) {
|
||||||
|
double saldo = steuerItemCol.getItemValueDouble("invoice.saldo");
|
||||||
|
Date date = steuerItemCol.getItemValueDate("invoice.date");
|
||||||
|
|
||||||
|
// Get the week number and year from the date
|
||||||
|
calendar.setTime(date);
|
||||||
|
int weekNumber = calendar.get(Calendar.WEEK_OF_YEAR);
|
||||||
|
int year = calendar.get(Calendar.YEAR);
|
||||||
|
int yearWeek = year * 100 + weekNumber; // Unique key for each year + week combination
|
||||||
|
|
||||||
|
// Accumulate the saldo per week
|
||||||
|
saldoByWeek.put(yearWeek, saldoByWeek.getOrDefault(yearWeek, 0.0) + saldo);
|
||||||
|
|
||||||
|
// Track the earliest and latest weeks
|
||||||
|
earliestWeek = Math.min(earliestWeek, yearWeek);
|
||||||
|
latestWeek = Math.max(latestWeek, yearWeek);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 2: Prepare the JSON structure and ensure we have all weeks from earliest
|
||||||
|
// to latest
|
||||||
|
JsonArrayBuilder dataBuilder = Json.createArrayBuilder();
|
||||||
|
JsonArrayBuilder labelsBuilder = Json.createArrayBuilder();
|
||||||
|
|
||||||
|
Calendar startCal = Calendar.getInstance();
|
||||||
|
startCal.set(Calendar.YEAR, earliestWeek / 100);
|
||||||
|
startCal.set(Calendar.WEEK_OF_YEAR, earliestWeek % 100);
|
||||||
|
|
||||||
|
Calendar endCal = Calendar.getInstance();
|
||||||
|
endCal.set(Calendar.YEAR, latestWeek / 100);
|
||||||
|
endCal.set(Calendar.WEEK_OF_YEAR, latestWeek % 100);
|
||||||
|
|
||||||
|
while (!startCal.after(endCal)) {
|
||||||
|
int weekNumber = startCal.get(Calendar.WEEK_OF_YEAR);
|
||||||
|
int year = startCal.get(Calendar.YEAR);
|
||||||
|
int yearWeek = year * 100 + weekNumber;
|
||||||
|
|
||||||
|
// Add the saldo for the week or 0.0 if no data
|
||||||
|
dataBuilder.add(saldoByWeek.getOrDefault(yearWeek, 0.0));
|
||||||
|
labelsBuilder.add(weekNumber + "/" + year); // Label as 'week/year'
|
||||||
|
|
||||||
|
// Move to the next week
|
||||||
|
startCal.add(Calendar.WEEK_OF_YEAR, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 3: Prepare the JSON structure
|
||||||
|
JsonObjectBuilder jsonBuilder = Json.createObjectBuilder()
|
||||||
|
.add("type", "bar")
|
||||||
|
.add("data", Json.createObjectBuilder()
|
||||||
|
.add("datasets", Json.createArrayBuilder()
|
||||||
|
.add(Json.createObjectBuilder()
|
||||||
|
.add("data", dataBuilder)))
|
||||||
|
.add("labels", labelsBuilder));
|
||||||
|
|
||||||
|
// Step 4: Return the JSON structure as a string
|
||||||
|
JsonObject chartCfg = jsonBuilder.build();
|
||||||
|
return chartCfg.toString(); // JSON as string
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,121 @@
|
||||||
|
package com.alexanderlogistics;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.imixs.workflow.faces.data.WorkflowController;
|
||||||
|
|
||||||
|
import jakarta.enterprise.context.ConversationScoped;
|
||||||
|
import jakarta.enterprise.event.Event;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import jakarta.inject.Named;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The AnalyticController is a conversationScoped controller that provides
|
||||||
|
* values for the analytic-custom parts.
|
||||||
|
* <p>
|
||||||
|
* A custom implementation can react on AnalyticEvent to compute values and
|
||||||
|
* datasets.
|
||||||
|
* <p>
|
||||||
|
* The controller implements a caching mechanism to avoid repeated calls for new
|
||||||
|
* analytic values. If the analytic value is already stored in the current
|
||||||
|
* workitem, no new value will be fired.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author rsoika
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Named
|
||||||
|
@ConversationScoped
|
||||||
|
public class AnalyticController implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private static Logger logger = Logger.getLogger(AnalyticController.class.getName());
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected Event<AnalyticEvent> analyticEvents;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected WorkflowController workflowController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a analytic value as a String for a given key.
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getAsString(String key) {
|
||||||
|
computeValue(key);
|
||||||
|
return workflowController.getWorkitem().getItemValueString("analytic." + key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a analytic value as a Double for a given key.
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public double getAsDouble(String key) {
|
||||||
|
computeValue(key);
|
||||||
|
return workflowController.getWorkitem().getItemValueDouble("analytic." + key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the analytic label for a given key
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getLabel(String key) {
|
||||||
|
computeValue(key);
|
||||||
|
return workflowController.getWorkitem().getItemValueString("analytic." + key + ".label");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the analytic description for a given key
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getDescription(String key) {
|
||||||
|
computeValue(key);
|
||||||
|
return workflowController.getWorkitem().getItemValueString("analytic." + key + ".description");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes am analytic value. The method cache the value in the item
|
||||||
|
* 'analytic.KEY' to avoid feierring repeated AnalyticEvents.
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
protected void computeValue(String key) {
|
||||||
|
if (workflowController.getWorkitem() != null) {
|
||||||
|
// try to fetch value from cache
|
||||||
|
if (!workflowController.getWorkitem().hasItem("analytic." + key)) {
|
||||||
|
logger.info("fire analytic event for key '" + key + "'");
|
||||||
|
// Fire the Analytics Event for this key
|
||||||
|
AnalyticEvent event = new AnalyticEvent(key, workflowController.getWorkitem());
|
||||||
|
if (analyticEvents != null) {
|
||||||
|
|
||||||
|
analyticEvents.fire(event);
|
||||||
|
workflowController.getWorkitem().setItemValue("analytic." + key, event.getValue());
|
||||||
|
workflowController.getWorkitem().setItemValue("analytic." + key + ".label", event.getLabel());
|
||||||
|
workflowController.getWorkitem().setItemValue("analytic." + key + ".description",
|
||||||
|
event.getDescription());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.getValue() == null) {
|
||||||
|
// set dummy value
|
||||||
|
workflowController.getWorkitem().setItemValue("analytic." + key, "");
|
||||||
|
workflowController.getWorkitem().setItemValue("analytic." + key + ".label", "- undefined -");
|
||||||
|
workflowController.getWorkitem().setItemValue("analytic." + key + ".description",
|
||||||
|
"No data available");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// analytic value is already cached!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
package com.alexanderlogistics;
|
||||||
|
|
||||||
|
import org.imixs.workflow.ItemCollection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An AnalyticEvent is send by the AnalyticController during initialization
|
||||||
|
*/
|
||||||
|
public class AnalyticEvent {
|
||||||
|
|
||||||
|
private String key;
|
||||||
|
private Object value = null;
|
||||||
|
private String label = "";
|
||||||
|
private String description = "";
|
||||||
|
private ItemCollection workitem = null;
|
||||||
|
|
||||||
|
public AnalyticEvent(String key, ItemCollection workitem) {
|
||||||
|
this.key = key;
|
||||||
|
this.workitem = workitem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemCollection getWorkitem() {
|
||||||
|
return workitem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(Object value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLabel(String label) {
|
||||||
|
this.label = label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,69 @@
|
||||||
|
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||||
|
xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:h="http://xmlns.jcp.org/jsf/html">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Chart Diagramm -->
|
||||||
|
<style>
|
||||||
|
.analytic-card {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column;
|
||||||
|
|
||||||
|
min-height: 200px;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
border-radius: 5px;
|
||||||
|
-webkit-box-shadow: 0 0 5px 0 rgba(43, 43, 43, .1), 0 11px 6px -7px rgba(43, 43, 43, .1);
|
||||||
|
box-shadow: 0 0 5px 0 rgba(43, 43, 43, .1), 0 11px 6px -7px rgba(43, 43, 43, .1);
|
||||||
|
border: none;
|
||||||
|
-webkit-transition: all .3s ease-in-out;
|
||||||
|
transition: all .3s ease-in-out;
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #4398f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.analytic-card-header {}
|
||||||
|
|
||||||
|
.analytic-card-footer {
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.analytic-card-content {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="analytic-card">
|
||||||
|
<div id="container">
|
||||||
|
<canvas id="analytics_canvas" style="min-width: 600px;height:200px;"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="#{facesContext.externalContext.requestContextPath}/js/chartjs/chart.min.js?build=#{app.application_build_timestamp}"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
/*<![CDATA[*/
|
||||||
|
$(document).ready(
|
||||||
|
function () {
|
||||||
|
// update the diagram
|
||||||
|
var ctx = document.getElementById("analytics_canvas").getContext("2d");
|
||||||
|
var chartData = #{ analyticController.getAsString(item.name)
|
||||||
|
};
|
||||||
|
console.log(chartData);
|
||||||
|
//jsObject = JSON.parse(chartData);
|
||||||
|
window.myBar = new Chart(ctx, chartData);
|
||||||
|
});
|
||||||
|
|
||||||
|
/*]]>*/
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||||
|
xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:h="http://xmlns.jcp.org/jsf/html">
|
||||||
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.analytic-card {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column;
|
||||||
|
|
||||||
|
min-height: 200px;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
border-radius: 5px;
|
||||||
|
-webkit-box-shadow: 0 0 5px 0 rgba(43, 43, 43, .1), 0 11px 6px -7px rgba(43, 43, 43, .1);
|
||||||
|
box-shadow: 0 0 5px 0 rgba(43, 43, 43, .1), 0 11px 6px -7px rgba(43, 43, 43, .1);
|
||||||
|
border: none;
|
||||||
|
-webkit-transition: all .3s ease-in-out;
|
||||||
|
transition: all .3s ease-in-out;
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #4398f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.analytic-card-header {}
|
||||||
|
|
||||||
|
.analytic-card-footer {
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.analytic-card-content {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="analytic-card">
|
||||||
|
<div class="analytic-card-header">
|
||||||
|
<h:outputText value="#{analyticController.getAsDouble(item.name)}">
|
||||||
|
<f:convertNumber minFractionDigits="2" locale="de" />
|
||||||
|
</h:outputText>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="analytic-card-content">#{analyticController.getLabel(item.name)}</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="analytic-card-footer">#{analyticController.getDescription(item.name)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CargoSoftEFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="https://xsd.cargosoft.de/CargoSoftEFile/CargoSoftEFile-2023.2.xsd">
|
||||||
|
<Message>
|
||||||
|
<SenderID>CARGOSOFT</SenderID>
|
||||||
|
<ReceiverID>ATLSTB</ReceiverID>
|
||||||
|
<MessageID>20240912064210939</MessageID>
|
||||||
|
<MessageDate>
|
||||||
|
<DateTime>2024-09-12T06:42:10</DateTime>
|
||||||
|
</MessageDate>
|
||||||
|
<Provider>
|
||||||
|
<CargoSoftDatabaseVersion>2023.2g</CargoSoftDatabaseVersion>
|
||||||
|
<CargoServiceVersion>2023.2-1415</CargoServiceVersion>
|
||||||
|
</Provider>
|
||||||
|
</Message>
|
||||||
|
<EFile id="2244063">
|
||||||
|
<Description>
|
||||||
|
<DocDate>
|
||||||
|
<DateTime>2024-09-12T06:31:43</DateTime>
|
||||||
|
</DocDate>
|
||||||
|
<DocType>ATLAS</DocType>
|
||||||
|
<Title>STEUERBESCHEID NEU</Title>
|
||||||
|
</Description>
|
||||||
|
<Attachments>
|
||||||
|
<Attachment id="2306944">
|
||||||
|
<Version>1</Version>
|
||||||
|
<Filename>Abgabenbescheid-IM-GCA-2409-021N-005-ATC401471770920244851.pdf</Filename>
|
||||||
|
<MimeType>application/pdf</MimeType>
|
||||||
|
<FileDate>
|
||||||
|
<DateTime>2024-09-12T19:22:46</DateTime>
|
||||||
|
</FileDate>
|
||||||
|
<Md5>9D8A288A724FF91ED6FB688F66092B</Md5>
|
||||||
|
<FileSize>69533</FileSize>
|
||||||
|
</Attachment>
|
||||||
|
</Attachments>
|
||||||
|
<References>
|
||||||
|
<Reference type="client">001</Reference>
|
||||||
|
<Reference type="cs_voucher_number">254374</Reference>
|
||||||
|
<Reference type="cs_voucher_type">LR</Reference>
|
||||||
|
<Reference type="cs_address_number">70259</Reference>
|
||||||
|
<Reference type="currency">EUR</Reference>
|
||||||
|
<Reference type="voucherdate">2024-09-12T00:00:00</Reference>
|
||||||
|
<Reference type="total_net_amount">19049.41</Reference>
|
||||||
|
<Reference type="total_tax_amount">0.00</Reference>
|
||||||
|
<Reference type="currency_rate" />
|
||||||
|
<Reference type="reference">ATC401471770920244851</Reference>
|
||||||
|
<Reference type="booking_period">202409</Reference>
|
||||||
|
<Reference type="booking_date">2024-09-12T00:00:00</Reference>
|
||||||
|
<Reference type="booking_text">ATLAS Steuerbescheid</Reference>
|
||||||
|
<Reference type="row_1_activity_type">ZOLL</Reference>
|
||||||
|
<Reference type="row_1_amount">3501.76</Reference>
|
||||||
|
<Reference type="row_1_tax_code">0</Reference>
|
||||||
|
<Reference type="row_1_cs_filenumber">IM-GCA-2409-021</Reference>
|
||||||
|
<Reference type="row_2_activity_type">EUST</Reference>
|
||||||
|
<Reference type="row_2_amount">15547.65</Reference>
|
||||||
|
<Reference type="row_2_tax_code">0</Reference>
|
||||||
|
<Reference type="row_2_cs_filenumber">IM-GCA-2409-021</Reference>
|
||||||
|
</References>
|
||||||
|
</EFile>
|
||||||
|
</CargoSoftEFile>
|
||||||
420
workflow/analyse-de-1.0.0.bpmn
Normal file
420
workflow/analyse-de-1.0.0.bpmn
Normal file
|
|
@ -0,0 +1,420 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- origin at X=0.0 Y=0.0 --><bpmn2:definitions xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:imixs="http://www.imixs.org/bpmn2" xmlns:open-bpmn="http://open-bpmn.org/XMLSchema" xmlns:tl="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="org.eclipse.bpmn2.modeler.core" exporterVersion="1.5.4.RC1-v20220528-0836-B1" id="Definitions_1" name="Definitions 1" targetNamespace="http://www.imixs.org/bpmn2">
|
||||||
|
<bpmn2:extensionElements>
|
||||||
|
<imixs:item name="txtworkflowmodelversion" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[mahnlauf-de-1.0]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtfieldmapping" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[Prozess-Verantwortliche| namprocessmanager]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[Prozess-Assistenz | namprocessassist]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[Buchhaltung | namprocessteam]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[Debitor-Mail|dbtr.mail]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txttimefieldmapping" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[Wiedervorlage | datDate]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[Start | datFrom]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[Ende | datTo]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtplugins" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.ResultPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.RulePlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.marty.profile.ProfilePlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.marty.plugins.SequenceNumberPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.marty.team.TeamPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.marty.profile.DeputyPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.OwnerPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.HistoryPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.LogPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.ApplicationPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.marty.plugins.CommentPlugin]]></imixs:value>
|
||||||
|
<imixs:value><![CDATA[org.imixs.marty.profile.MailPlugin]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<open-bpmn:auto-align>true</open-bpmn:auto-align>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:signal id="Signal_1" name="com.alexanderlogistics.ZahlungsavisExportAdapter"/>
|
||||||
|
<bpmn2:signal id="Signal_2" name="com.alexanderlogistics.ZahlungseingangSaldoAdapter"/>
|
||||||
|
<bpmn2:signal id="Signal_3" name="com.alexanderlogistics.mahnlauf.MahnlaufExecuteAdapter"/>
|
||||||
|
<bpmn2:message id="Message_2" name="Html-Header">
|
||||||
|
<bpmn2:documentation id="Documentation_22"><![CDATA[<html>
|
||||||
|
<head>
|
||||||
|
<style type="text/css">
|
||||||
|
html, body, div, p, pre, h1, h2, h3, ul, ol, span, a, table, td, form, img,
|
||||||
|
li {
|
||||||
|
font-family: Arial;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 11pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 1em;
|
||||||
|
min-width: 41em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 12pt;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
td { border:none;min-width:120px; }
|
||||||
|
th { font-weight: bold;}
|
||||||
|
</style>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||||
|
<title><itemvalue>$workflowstatus</itemvalue></title>
|
||||||
|
</head>
|
||||||
|
<body>]]></bpmn2:documentation>
|
||||||
|
</bpmn2:message>
|
||||||
|
<bpmn2:message id="Message_7" name="Html-Footer">
|
||||||
|
<bpmn2:documentation id="Documentation_15"><![CDATA[</body>
|
||||||
|
</html>]]></bpmn2:documentation>
|
||||||
|
</bpmn2:message>
|
||||||
|
<bpmn2:collaboration id="Collaboration_1" name="Mahnlauf">
|
||||||
|
<bpmn2:participant id="Participant_1" name="Analyse" processRef="Process_1">
|
||||||
|
<bpmn2:documentation id="documentation_sqQYFQ"/>
|
||||||
|
</bpmn2:participant>
|
||||||
|
<bpmn2:participant id="Participant_2" name="SEPA-Export Pool" processRef="eingangsrechnung-de"/>
|
||||||
|
</bpmn2:collaboration>
|
||||||
|
<bpmn2:process id="eingangsrechnung-de" isExecutable="false" name="Default Process">
|
||||||
|
<bpmn2:documentation id="documentation_sxNNHw"/>
|
||||||
|
</bpmn2:process>
|
||||||
|
<bpmn2:process definitionalCollaborationRef="Collaboration_1" id="Process_1" isExecutable="false" name="Analyse">
|
||||||
|
<bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
|
||||||
|
<bpmn2:lane id="Lane_1" name="Buchhaltung">
|
||||||
|
<bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Task_1</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>IntermediateCatchEvent_3</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>EndEvent_3</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Task_2</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>IntermediateCatchEvent_8</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:documentation id="documentation_WBGJTA"/>
|
||||||
|
<bpmn2:flowNodeRef>DataObject_1</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
</bpmn2:laneSet>
|
||||||
|
<bpmn2:startEvent id="StartEvent_1" name="Start">
|
||||||
|
<bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
|
||||||
|
<bpmn2:documentation id="documentation_5CHRCQ"/>
|
||||||
|
</bpmn2:startEvent>
|
||||||
|
<bpmn2:task id="Task_2" imixs:processid="1900" name="Archiviert">
|
||||||
|
<bpmn2:extensionElements>
|
||||||
|
<imixs:item name="txtworkflowsummary" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[<itemvalue format="dd.MM.yyyy">$lasteventdate</itemvalue> - <itemvalue>dbtr.name</itemvalue> (<itemvalue>dbtr.number</itemvalue>)]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||||
|
<imixs:value>true</imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="keyownershipfields" type="xs:string"/>
|
||||||
|
<imixs:item name="keyaddwritefields" type="xs:string"/>
|
||||||
|
<imixs:item name="keyaddreadfields" type="xs:string"/>
|
||||||
|
<imixs:item name="txtimageurl" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[typcn-mail||||typcn-tick,imixs-success]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txteditorid" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[form_basic_readonly]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txttype" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[workitemarchive]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="namaddreadaccess" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[{process:?:member}]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:documentation id="Documentation_4"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||||
|
<bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
|
||||||
|
<bpmn2:incoming>sequenceFlow_OL83kQ</bpmn2:incoming>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:sequenceFlow id="SequenceFlow_10" sourceRef="Task_2" targetRef="EndEvent_3">
|
||||||
|
<bpmn2:documentation id="documentation_WzPj2A"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:endEvent id="EndEvent_3" name="End">
|
||||||
|
<bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
|
||||||
|
<bpmn2:documentation id="documentation_sMnhoQ"/>
|
||||||
|
</bpmn2:endEvent>
|
||||||
|
<bpmn2:task id="Task_1" imixs:processid="1000" name="Erfassung">
|
||||||
|
<bpmn2:extensionElements>
|
||||||
|
<imixs:item name="txtworkflowsummary" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[<itemvalue format="dd.MM.yyyy">$lasteventdate</itemvalue> - <itemvalue>dbtr.name</itemvalue> (<itemvalue>dbtr.number</itemvalue>)]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txteditorid" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[alexander/form_basic]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtimageurl" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[typcn-chart-pie||]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txttype" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[workitem]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||||
|
<imixs:value>true</imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="keyownershipfields" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[namprocessteam]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="keyaddreadfields" type="xs:string"/>
|
||||||
|
<imixs:item name="keyaddwritefields" type="xs:string"/>
|
||||||
|
<imixs:item name="namaddreadaccess" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[{process:?:member}]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="namaddwriteaccess" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[{process:?:member}]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:documentation id="Documentation_3"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_17AQjg</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_3" imixs:activityid="10" name="Aktualisieren">
|
||||||
|
<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/>
|
||||||
|
</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/>
|
||||||
|
</imixs:item>
|
||||||
|
<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[5000]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtnextprocesstree" type="xs:string">
|
||||||
|
<imixs:value/>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtactivityresult" type="xs:string">
|
||||||
|
<imixs:value/>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtname" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[Speichern]]></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[Daten aktualisiert.]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||||
|
<imixs:value>false</imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtbusinessrule" type="xs:string">
|
||||||
|
<imixs:value/>
|
||||||
|
</imixs:item>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:documentation id="Documentation_12"><![CDATA[Datenaktualisierung anfordern]]></bpmn2:documentation>
|
||||||
|
<bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="SequenceFlow_14" sourceRef="IntermediateCatchEvent_3" targetRef="Task_1">
|
||||||
|
<bpmn2:documentation id="documentation_V0hcPw"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="SequenceFlow_4" sourceRef="StartEvent_1" targetRef="Task_1">
|
||||||
|
<bpmn2:documentation id="documentation_p6trwA"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:dataObject id="DataObject_1" name="Form">
|
||||||
|
<bpmn2:documentation id="Documentation_17"><![CDATA[<?xml version="1.0"?>
|
||||||
|
<imixs-form>
|
||||||
|
|
||||||
|
<imixs-form-section columns="3" label="Monitoring - Steuerbescheide">
|
||||||
|
<item name="analytic.steuer.zoll" type="custom" path="alexander/analyze_plain" label="Zoll:" />
|
||||||
|
<item name="analytic.steuer.eust" type="custom" path="alexander/analyze_plain" label="EUST:" />
|
||||||
|
<item name="analytic.steuer.due" type="custom" path="alexander/analyze_plain" label="Überfällig:" />
|
||||||
|
</imixs-form-section>
|
||||||
|
|
||||||
|
<imixs-form-section columns="2">
|
||||||
|
<item name="analytic.steuer.trend" type="custom" path="alexander/analyze_chart" label="Forderungen:" />
|
||||||
|
</imixs-form-section>
|
||||||
|
|
||||||
|
</imixs-form>]]></bpmn2:documentation>
|
||||||
|
<bpmn2:dataState id="DataState_1"/>
|
||||||
|
</bpmn2:dataObject>
|
||||||
|
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_8" imixs:activityid="20" name="Abschließen">
|
||||||
|
<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/>
|
||||||
|
</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/>
|
||||||
|
</imixs:item>
|
||||||
|
<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[5000]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtnextprocesstree" type="xs:string">
|
||||||
|
<imixs:value/>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="txtname" type="xs:string">
|
||||||
|
<imixs:value><![CDATA[Speichern]]></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[Analysedaten archiviert]]></imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||||
|
<imixs:value>false</imixs:value>
|
||||||
|
</imixs:item>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:documentation id="Documentation_2"><![CDATA[Zwischenspeichern]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_17AQjg</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_OL83kQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:association id="Association_2" sourceRef="DataObject_1" targetRef="Task_1">
|
||||||
|
<bpmn2:documentation id="documentation_pDK6DQ"/>
|
||||||
|
</bpmn2:association>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_17AQjg" sourceRef="Task_1" targetRef="IntermediateCatchEvent_8">
|
||||||
|
<bpmn2:documentation id="documentation_c8gvZg"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_OL83kQ" sourceRef="IntermediateCatchEvent_8" targetRef="Task_2">
|
||||||
|
<bpmn2:documentation id="documentation_j2zUkw"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
</bpmn2:process>
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram">
|
||||||
|
<bpmndi:BPMNPlane bpmnElement="Collaboration_1" id="BPMNPlane_1">
|
||||||
|
<bpmndi:BPMNShape bpmnElement="Participant_1" id="BPMNShape_Participant_1" isHorizontal="true">
|
||||||
|
<dc:Bounds height="450.0" width="1180.0" x="100.0" y="150.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="Lane_1" id="BPMNShape_Lane_1" isHorizontal="true">
|
||||||
|
<dc:Bounds height="450.0" width="1150.0" x="130.0" y="150.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="StartEvent_1" id="BPMNShape_1">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="197.0" y="297.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_1" labelStyle="BPMNLabelStyle_1">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="169.5" y="337.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="Task_1" id="BPMNShape_Task_1">
|
||||||
|
<dc:Bounds height="50.0" width="110.0" x="290.0" y="290.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="EndEvent_3" id="BPMNShape_EndEvent_2">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="927.0" y="297.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_85" labelStyle="BPMNLabelStyle_1">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="898.0" y="337.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="Task_2" id="BPMNShape_Task_2">
|
||||||
|
<dc:Bounds height="50.0" width="110.0" x="760.0" y="290.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_3" id="BPMNShape_IntermediateCatchEvent_3">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="327.0" y="387.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_21" labelStyle="BPMNLabelStyle_1">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="295.0" y="426.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="DataObject_1" id="BPMNShape_DataObject_1">
|
||||||
|
<dc:Bounds height="50.0" width="35.0" x="290.0" y="190.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_13">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="258.0" y="240.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="Message_2" id="BPMNShape_Message_1">
|
||||||
|
<dc:Bounds height="20.0" width="30.0" x="119.0" y="59.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_35">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="84.0" y="79.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="Message_7" id="BPMNShape_Message_4">
|
||||||
|
<dc:Bounds height="20.0" width="30.0" x="213.0" y="59.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_40">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="178.0" y="79.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_8" id="BPMNShape_IntermediateCatchEvent_8">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="507.0" y="297.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_24">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="474.5" y="337.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_10" id="BPMNEdge_SequenceFlow_10" sourceElement="BPMNShape_Task_2" targetElement="BPMNShape_EndEvent_2">
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_26"/>
|
||||||
|
<di:waypoint x="870.0" y="315.0"/>
|
||||||
|
<di:waypoint x="927.0" y="315.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_14" id="BPMNEdge_SequenceFlow_14" sourceElement="BPMNShape_IntermediateCatchEvent_3" targetElement="BPMNShape_Task_1">
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_22"/>
|
||||||
|
<di:waypoint x="345.0" y="387.0"/>
|
||||||
|
<di:waypoint x="345.0" y="344.0"/>
|
||||||
|
<di:waypoint x="345.0" y="340.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_4" id="BPMNEdge_SequenceFlow_4" sourceElement="BPMNShape_1" targetElement="BPMNShape_Task_1">
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_11"/>
|
||||||
|
<di:waypoint x="233.0" y="315.0"/>
|
||||||
|
<di:waypoint x="290.0" y="315.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="Association_2" id="BPMNEdge_Association_2" sourceElement="BPMNShape_DataObject_1" targetElement="BPMNShape_Task_1">
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_17"/>
|
||||||
|
<di:waypoint x="325.0" y="213.0"/>
|
||||||
|
<di:waypoint x="345.0" y="213.0"/>
|
||||||
|
<di:waypoint x="345.0" y="290.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_17AQjg" id="BPMNEdge_oSvh0w" sourceElement="BPMNShape_Task_1" targetElement="BPMNShape_IntermediateCatchEvent_8">
|
||||||
|
<di:waypoint x="400.0" y="315.0"/>
|
||||||
|
<di:waypoint x="507.0" y="315.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_OL83kQ" id="BPMNEdge_lwO0vA" sourceElement="BPMNShape_IntermediateCatchEvent_8" targetElement="BPMNShape_Task_2">
|
||||||
|
<di:waypoint x="543.0" y="315.0"/>
|
||||||
|
<di:waypoint x="760.0" y="315.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
|
||||||
|
<dc:Font name="arial" size="9.0"/>
|
||||||
|
</bpmndi:BPMNLabelStyle>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</bpmn2:definitions>
|
||||||
Loading…
Reference in a new issue