started version 1.2.13 - debitor statistik

This commit is contained in:
Ralph Soika 2023-07-17 15:54:18 +02:00
parent 0d7e4d40b6
commit ef8833dd59
6 changed files with 442 additions and 31 deletions

View file

@ -4,7 +4,7 @@
<parent>
<artifactId>office-alexander-logistics</artifactId>
<groupId>com.alexander-logistics</groupId>
<version>1.2.12</version>
<version>1.2.13</version>
</parent>
<artifactId>office-alexander-logistics-app</artifactId>
<packaging>war</packaging>

View file

@ -0,0 +1,135 @@
package com.alexanderlogistics;
import java.io.Serializable;
import java.util.logging.Logger;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.faces.data.WorkflowController;
/**
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
* Schritte. Die Analyse Seite ist büer das Admin Menü erreichbar.
*
* @author rsoika
*
*/
@Named
@ConversationScoped
public class DebitorStatistikController implements Serializable {
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(DebitorStatistikController.class.getName());
@Inject
protected DocumentService documentService;
@Inject
protected WorkflowController workflowController;
public int getZahlungsmoral() {
return 0;
}
public int getRechnungen() {
int result = 0;
String dbtNr = workflowController.getWorkitem().getItemValueString("dbtr.number");
if (dbtNr.startsWith("D") || dbtNr.startsWith("K")) {
dbtNr = dbtNr.substring(1);
}
try {
result = documentService
.count("(type:workitem OR type:workitemarchive) AND dbtr.number:" + dbtNr
+ " AND $workflowgroup:\"Rechnungsausgang\"");
} catch (QueryException e) {
logger.severe("Failed to get statistic: " + e.getMessage());
}
return result;
}
public int getRechnungenBezahlt() {
int result = 0;
String dbtNr = workflowController.getWorkitem().getItemValueString("dbtr.number");
if (dbtNr.startsWith("D") || dbtNr.startsWith("K")) {
dbtNr = dbtNr.substring(1);
}
try {
result = documentService
.count("(type:workitem OR type:workitemarchive) AND dbtr.number:" + dbtNr
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5900 TO 5999])");
} catch (QueryException e) {
logger.severe("Failed to get statistic: " + e.getMessage());
}
return result;
}
public int getRechnungenOffen() {
int result = 0;
String dbtNr = workflowController.getWorkitem().getItemValueString("dbtr.number");
if (dbtNr.startsWith("D") || dbtNr.startsWith("K")) {
dbtNr = dbtNr.substring(1);
}
try {
result = documentService
.count("(type:workitem) AND dbtr.number:" + dbtNr
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5000 TO 5099])");
} catch (QueryException e) {
logger.severe("Failed to get statistic: " + e.getMessage());
}
return result;
}
public int getRechnungenFaellig() {
int result = 0;
String dbtNr = workflowController.getWorkitem().getItemValueString("dbtr.number");
if (dbtNr.startsWith("D") || dbtNr.startsWith("K")) {
dbtNr = dbtNr.substring(1);
}
try {
result = documentService
.count("(type:workitem) AND dbtr.number:" + dbtNr
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5100 TO 5199])");
} catch (QueryException e) {
logger.severe("Failed to get statistic: " + e.getMessage());
}
return result;
}
public int getRechnungenGemahnt() {
int result = 0;
String dbtNr = workflowController.getWorkitem().getItemValueString("dbtr.number");
if (dbtNr.startsWith("D") || dbtNr.startsWith("K")) {
dbtNr = dbtNr.substring(1);
}
try {
result = documentService
.count("(type:workitem ) AND dbtr.number:" + dbtNr
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5200 TO 5299])");
} catch (QueryException e) {
logger.severe("Failed to get statistic: " + e.getMessage());
}
return result;
}
public int getRechnungenInkasso() {
int result = 0;
String dbtNr = workflowController.getWorkitem().getItemValueString("dbtr.number");
if (dbtNr.startsWith("D") || dbtNr.startsWith("K")) {
dbtNr = dbtNr.substring(1);
}
try {
result = documentService
.count("(type:workitem OR type:workitemarchive) AND dbtr.number:" + dbtNr
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5300 TO 5399])");
} catch (QueryException e) {
logger.severe("Failed to get statistic: " + e.getMessage());
}
return result;
}
}

View file

@ -0,0 +1,77 @@
<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">
<!-- Shows the op liste fo rthe current dbtr.number -->
<h:panelGroup id="spacelist" layout="block" styleClass="imixs-form-section-3">
<dl>
<dt>Anzahl Rechnungen</dt>
<dd>
#{debitorStatistikController.rechnungen}
</dd>
</dl>
<dl>
<dt>Anzahl Offen</dt>
<dd>
#{debitorStatistikController.rechnungenOffen}
</dd>
</dl>
<dl>
<dt>Anzahl Offen</dt>
<dd>
#{debitorStatistikController.rechnungenFaellig}
</dd>
</dl>
<dl>
<dt>Anzahl Rechnungen in Mahnung</dt>
<dd>
#{debitorStatistikController.rechnungenGemahnt}
</dd>
</dl>
<dl>
<dt>Anzahl Rechnungen in Inkasso</dt>
<dd>
#{debitorStatistikController.rechnungenInkasso}
</dd>
</dl>
<dl>
<dt>Anzahl Rechnungen Bezahlt</dt>
<dd>
#{debitorStatistikController.rechnungenBezahlt}
</dd>
</dl>
</h:panelGroup>
<script type="text/javascript">
/*<![CDATA[*/
$(document).ready(
function () {
// update the checkboxes of the stored invoice uniqueIDs
// updateInvoiceSelection();
});
/*
/*]]>*/
</script>
</ui:composition>

View file

@ -0,0 +1,186 @@
<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">
<!-- Shows the op liste fo rthe current dbtr.number -->
<h:commandScript name="calculateOpSummary" execute="invoiceRefHolder_ID" render="opcalculater_id" />
<h:panelGroup layout="block" styleClass="imixs-form-section" id="oplist-table" binding="#{opListContainer}">
<table style="width: 100%; margin: 5px;">
<tr>
<th style="text-align: left;">Rg-Nr.</th>
<th style="text-align: left;">#{message['form.date']}</th>
<th style="text-align: left;">#{message['form.deadline']}</th>
<th style="text-align: left;">Status</th>
<th style="text-align: right;">S/H</th>
<th style="width: 40px;"></th>
<th style="width: 70px; text-align: right;">Kurs</th>
<th style="width: 100px; text-align: right;">Basisumsatz</th>
<th />
<th style="width: 100px;">Saldo</th>
<th />
</tr>
<ui:param name="invoices" value="#{opListController.getInvoices(workitem.item['dbtr.number'])}"></ui:param>
<ui:repeat value="#{invoices}" var="invoice">
<tr>
<td>
<h:link outcome="/pages/workitems/workitem">
#{invoice.item['invoice.number']}
<f:param name="id" value="#{invoice.item['$uniqueid']}" />
</h:link>
<h:outputText escape="false" value="#{invoice.item['_img']}" />
</td>
<td>
<h:outputText value="#{invoice.item['invoice.date']}">
<f:convertDateTime pattern="#{message.datePatternShort}" timeZone="#{message.timeZone}" />
</h:outputText>
</td>
<td>
<h:outputText value="#{invoice.item['invoice.duedate']}">
<f:convertDateTime pattern="#{message.datePatternShort}" timeZone="#{message.timeZone}" />
</h:outputText>
</td>
<td>
<h:outputText value="#{invoice.item['$workflowstatus']}" />
</td>
<!-- Rechnngsbetrag -->
<td style="text-align: right;">
<h:outputText value="#{invoice.item['invoice.total']}">
<f:convertNumber minFractionDigits="2" locale="de" />
</h:outputText>
</td>
<td>
<h:outputText value="#{invoice.item['invoice.currency']}" />
</td>
<td style="text-align:right;">
<h:outputText value="#{invoice.item['invoice.rate']}" />
</td>
<td style="text-align: right;">
<h:outputText value="#{invoice.item['invoice.base.amount']}">
<f:convertNumber minFractionDigits="2" locale="de" />
</h:outputText>
</td>
<td>
<!-- if not EUR -->
<h:outputText rendered="#{invoice.item['invoice.currency'] ne 'EUR'}" value=" EUR" />
</td>
<!-- Saldo / offene Betrag -->
<td style="text-align: right; color: red;">
<h:outputText value="#{invoice.item['invoice.saldo']}">
<f:convertNumber minFractionDigits="2" maxFractionDigits="2" locale="de" />
</h:outputText>
</td>
<td style="color: red;">
<h:outputText value="#{invoice.item['invoice.currency']}" />
</td>
<!-- Saldo by rate / offene Betrag in Hauswährung -->
<td style="text-align: right; color: red;">
<h:outputText value="#{invoice.item['invoice.saldo.byrate']}">
<f:convertNumber minFractionDigits="2" maxFractionDigits="2" locale="de" />
</h:outputText>
</td>
<td style="color: red;">
<h:outputText rendered="#{!empty invoice.item['invoice.saldo.byrate']}" value="EUR" />
</td>
</tr>
</ui:repeat>
<tr style="border-top: 1px solid #ccc;">
<td />
<td />
<td />
<td style="text-align: left;"><strong>Summary</strong></td>
<!-- Invoice total -->
<td style="text-align: right;"><strong>
<h:panelGroup id="invoice_total">
<h:outputText value="#{opListController.calculateInvoiceTotal('EUR')}">
<f:convertNumber minFractionDigits="2" locale="de" />
</h:outputText>
<br />
<h:outputText value="#{opListController.calculateInvoiceTotal('USD')}">
<f:convertNumber minFractionDigits="2" locale="de" />
</h:outputText>
</h:panelGroup>
</strong></td>
<td><strong>EUR<br />USD</strong></td>
<td />
<td />
<td />
<td />
<td />
<td />
<td />
</tr>
</table>
<!-- dieses feld speichert die selection der rechnungen -->
<h:inputTextarea id="invoiceRefHolder_ID" converter="org.imixs.VectorConverter" class="invoice_selection_list"
style="display:none;" value="#{workitem.itemList['$workitemref']}" />
</h:panelGroup>
<script type="text/javascript">
/*<![CDATA[*/
$(document).ready(
function () {
// update the checkboxes of the stored invoice uniqueIDs
// updateInvoiceSelection();
});
/*
* Hilfsmethode die nur fur Ajax Events in JSF render verwendet wird
*/
function ajaxUpdateInvoiceSelection(data) {
if (data.status === 'success') {
// no op
}
}
/*]]>*/
</script>
</ui:composition>

View file

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.alexander-logistics</groupId>
<artifactId>office-alexander-logistics</artifactId>
<version>1.2.12</version>
<version>1.2.13</version>
<packaging>pom</packaging>
<name>Imixs Office Workflow - Custom Build</name>

View file

@ -1,20 +1,15 @@
<?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">
<!-- origin at X=0.0 Y=0.0 --><bpmn2:definitions xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" 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:value><![CDATA[debitoren-statistik-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[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>
@ -78,7 +73,7 @@ th { font-weight: bold;}
</bpmn2:participant>
<bpmn2:participant id="Participant_2" name="SEPA-Export Pool" processRef="eingangsrechnung-de"/>
</bpmn2:collaboration>
<bpmn2:process id="eingangsrechnung-de" isExecutable="false" name="SEPA-Export">
<bpmn2:process id="eingangsrechnung-de" isExecutable="false" name="Debitoren Statistik">
<bpmn2:documentation id="documentation_sxNNHw"/>
</bpmn2:process>
<bpmn2:process definitionalCollaborationRef="Collaboration_1" id="Process_1" isExecutable="false" name="Debitoren Statistik">
@ -91,6 +86,7 @@ th { font-weight: bold;}
<bpmn2:flowNodeRef>IntermediateCatchEvent_7</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateCatchEvent_6</bpmn2:flowNodeRef>
<bpmn2:documentation id="documentation_WBGJTA"/>
<bpmn2:flowNodeRef>event_jQDkFw</bpmn2:flowNodeRef>
</bpmn2:lane>
</bpmn2:laneSet>
<bpmn2:startEvent id="StartEvent_1" name="Start">
@ -127,7 +123,7 @@ th { font-weight: bold;}
<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_hED8Yg</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_yrOwew</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_UsDDXQ</bpmn2:incoming>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_10" sourceRef="Task_2" targetRef="EndEvent_3">
<bpmn2:documentation id="documentation_WzPj2A"/>
@ -171,6 +167,7 @@ th { font-weight: bold;}
<bpmn2:documentation id="Documentation_3"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_OWDjfA</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_dSd0Og</bpmn2:incoming>
</bpmn2:task>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_6" imixs:activityid="10" name="Aktualisieren">
<bpmn2:extensionElements>
@ -233,7 +230,7 @@ th { font-weight: bold;}
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_10"><![CDATA[Zwischenspeichern]]></bpmn2:documentation>
<bpmn2:timerEventDefinition id="timerEventDefinition_2BVSJw"/>
<bpmn2:incoming>sequenceFlow_yrOwew</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_UsDDXQ</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="SequenceFlow_4" sourceRef="StartEvent_1" targetRef="Task_1">
<bpmn2:documentation id="documentation_p6trwA"/>
@ -243,16 +240,11 @@ th { font-weight: bold;}
<imixs-form>
<imixs-form-section columns="2">
<item name="dbtr.number" type="text" required="true" label="Debitor:" />
<item name="dbtr.mail" type="textlist" required="true" label="E-Mail:" />
</imixs-form-section>
<imixs-form-section columns="1">
<item name="description" type="textarea" label="Bemerkung für E-Mail an Debitor:" />
</imixs-form-section>
<imixs-form-section label="Offene Posten" path="alexander/section_opliste_mahnlauf" readonly="false" />
</imixs-form-section>
<imixs-form-section label="Statistik" path="alexander/section_debitor_statistic" />
<imixs-form-section label="Offene Posten" path="alexander/section_opliste_readonly" />
</imixs-form>]]></bpmn2:documentation>
<bpmn2:dataState id="DataState_1"/>
@ -340,8 +332,20 @@ result.isValid=true;
<bpmn2:sequenceFlow id="sequenceFlow_hED8Yg" sourceRef="IntermediateCatchEvent_7" targetRef="Task_2">
<bpmn2:documentation id="documentation_WIPvZQ"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_yrOwew" sourceRef="Task_2" targetRef="IntermediateCatchEvent_6">
<bpmn2:documentation id="documentation_rcXaqw"/>
<bpmn2:intermediateCatchEvent id="event_jQDkFw" imixs:activityid="10" name="Speichern">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_E7UwqA"/>
<bpmn2:outgoing>sequenceFlow_dSd0Og</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_dSd0Og" sourceRef="event_jQDkFw" targetRef="Task_1">
<bpmn2:documentation id="documentation_h0q4lw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_UsDDXQ" sourceRef="IntermediateCatchEvent_6" targetRef="Task_2">
<bpmn2:documentation id="documentation_ORsu6Q"/>
</bpmn2:sequenceFlow>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram">
@ -377,9 +381,9 @@ result.isValid=true;
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="DataObject_1" id="BPMNShape_DataObject_1">
<dc:Bounds height="50.0" width="36.0" x="290.0" y="188.0"/>
<dc:Bounds height="50.0" width="35.0" x="290.0" y="190.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_13">
<dc:Bounds height="14.0" width="28.0" x="294.0" y="238.0"/>
<dc:Bounds height="14.0" width="28.0" x="294.0" y="240.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Message_2" id="BPMNShape_Message_1">
@ -417,7 +421,6 @@ result.isValid=true;
<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="326.0" y="213.0"/>
<di:waypoint x="345.0" y="213.0"/>
<di:waypoint x="345.0" y="294.0"/>
</bpmndi:BPMNEdge>
@ -429,9 +432,19 @@ result.isValid=true;
<di:waypoint x="536.0" y="319.0"/>
<di:waypoint x="762.0" y="319.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_yrOwew" id="BPMNEdge_E6rxVQ" sourceElement="BPMNShape_Task_2" targetElement="BPMNShape_IntermediateCatchEvent_6">
<di:waypoint x="817.0" y="294.0"/>
<bpmndi:BPMNShape bpmnElement="event_jQDkFw" id="BPMNShape_JdKpsQ">
<dc:Bounds height="36.0" width="36.0" x="327.0" y="380.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_gE5Aqw">
<dc:Bounds height="14.0" width="100.0" x="295.0" y="419.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_dSd0Og" id="BPMNEdge_OVmgBg" sourceElement="BPMNShape_JdKpsQ" targetElement="BPMNShape_Task_1">
<di:waypoint x="345.0" y="380.0"/>
<di:waypoint x="345.0" y="344.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_UsDDXQ" id="BPMNEdge_ZsKbxg" sourceElement="BPMNShape_IntermediateCatchEvent_6" targetElement="BPMNShape_Task_2">
<di:waypoint x="817.0" y="254.0"/>
<di:waypoint x="817.0" y="294.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">