OP Listen update
This commit is contained in:
parent
1338d9aae8
commit
f6bb14c8de
5 changed files with 679 additions and 418 deletions
|
|
@ -6,6 +6,7 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -58,6 +59,9 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
private static Logger logger = Logger.getLogger(OPListExportAdapter.class.getName());
|
private static Logger logger = Logger.getLogger(OPListExportAdapter.class.getName());
|
||||||
|
|
||||||
public static final String ERROR_CONFIG = "CONFIG_ERROR";
|
public static final String ERROR_CONFIG = "CONFIG_ERROR";
|
||||||
|
public static final int TASK_MAHNUNG_2ND = 5210;
|
||||||
|
public static final int TASK_MAHNUNG_LAST = 5220;
|
||||||
|
|
||||||
final String TYPE_TEXTBLOCK = "textblock";
|
final String TYPE_TEXTBLOCK = "textblock";
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
|
@ -69,6 +73,7 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
@Inject
|
@Inject
|
||||||
SnapshotService snapshotService;
|
SnapshotService snapshotService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method finds or create the Zahlungsavis and adds a reference
|
* This method finds or create the Zahlungsavis and adds a reference
|
||||||
* ($workitemref) to the current invoice.
|
* ($workitemref) to the current invoice.
|
||||||
|
|
@ -89,6 +94,7 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
String textblock = evalItemCollection.getItemValueString("textblock");
|
String textblock = evalItemCollection.getItemValueString("textblock");
|
||||||
String template = evalItemCollection.getItemValueString("template");
|
String template = evalItemCollection.getItemValueString("template");
|
||||||
String targetName = evalItemCollection.getItemValueString("target-name");
|
String targetName = evalItemCollection.getItemValueString("target-name");
|
||||||
|
boolean filter = evalItemCollection.getItemValueBoolean("filter");
|
||||||
// adapt text....
|
// adapt text....
|
||||||
targetName = workflowService.adaptText(targetName, document);
|
targetName = workflowService.adaptText(targetName, document);
|
||||||
|
|
||||||
|
|
@ -110,7 +116,7 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
|
|
||||||
// now we add separate lines for each invoice....
|
// now we add separate lines for each invoice....
|
||||||
logger.info("... insert invoices..");
|
logger.info("... insert invoices..");
|
||||||
insertInvoiceRows(document, targetName);
|
insertInvoiceRows(document, targetName, filter);
|
||||||
} catch (PluginException | IOException | QueryException e) {
|
} catch (PluginException | IOException | QueryException e) {
|
||||||
throw new PluginException(OPListExportAdapter.class.getSimpleName(), ERROR_CONFIG,
|
throw new PluginException(OPListExportAdapter.class.getSimpleName(), ERROR_CONFIG,
|
||||||
"failed to update op-liste: " + e.getMessage());
|
"failed to update op-liste: " + e.getMessage());
|
||||||
|
|
@ -120,8 +126,8 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This helper method inserts a row for each invoice of the current Zahlunsavis
|
* This helper method inserts a row for each invoice of the OPListe at row 16
|
||||||
* at row 16 into the excel template file
|
* into the excel template file
|
||||||
* <p>
|
* <p>
|
||||||
* The method copies the Row A16 as a reference row
|
* The method copies the Row A16 as a reference row
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -131,7 +137,8 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
* @throws PluginException
|
* @throws PluginException
|
||||||
* @throws QueryException
|
* @throws QueryException
|
||||||
*/
|
*/
|
||||||
private void insertInvoiceRows(ItemCollection document, String fileName) throws PluginException, QueryException {
|
private void insertInvoiceRows(ItemCollection document, String fileName, boolean filter)
|
||||||
|
throws PluginException, QueryException {
|
||||||
|
|
||||||
double saldoUSD = 0;
|
double saldoUSD = 0;
|
||||||
double saldoEUR = 0;
|
double saldoEUR = 0;
|
||||||
|
|
@ -139,7 +146,7 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
String spaceID = document.getItemValueString("space.ref");
|
String spaceID = document.getItemValueString("space.ref");
|
||||||
|
|
||||||
logger.info("... space.ref=" + spaceID + " ...grouping invoices by spaceid....");
|
logger.info("... space.ref=" + spaceID + " ...grouping invoices by spaceid....");
|
||||||
Map<String, List<ItemCollection>> invoiceMap = groupInvoicesBySpaceID(spaceID);
|
Map<String, List<ItemCollection>> invoiceMap = groupInvoicesBySpaceID(spaceID, filter);
|
||||||
|
|
||||||
FileData fileData = document.getFileData(fileName);
|
FileData fileData = document.getFileData(fileName);
|
||||||
|
|
||||||
|
|
@ -170,7 +177,6 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
sheet.shiftRows(rowPos, lastRow, totalRowCount, true, true);
|
sheet.shiftRows(rowPos, lastRow, totalRowCount, true, true);
|
||||||
for (Map.Entry<String, List<ItemCollection>> entry : invoiceMap.entrySet()) {
|
for (Map.Entry<String, List<ItemCollection>> entry : invoiceMap.entrySet()) {
|
||||||
String dbtrNumber = entry.getKey();
|
String dbtrNumber = entry.getKey();
|
||||||
logger.info("......add debitor " + dbtrNumber);
|
|
||||||
List<ItemCollection> invoices = entry.getValue();
|
List<ItemCollection> invoices = entry.getValue();
|
||||||
|
|
||||||
// erzeuge eine Zwischenüberschrift für den Debitor....
|
// erzeuge eine Zwischenüberschrift für den Debitor....
|
||||||
|
|
@ -334,16 +340,20 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
/**
|
/**
|
||||||
* Diese Methode groupiert eine Rechnugnsliste nach Debitorennummern
|
* Diese Methode groupiert eine Rechnugnsliste nach Debitorennummern
|
||||||
*
|
*
|
||||||
|
* Falls 'filter==true' werden nur Rechnungen ab der 2. Mahnung oder mit einer
|
||||||
|
* Fälligkeit >21 Tage ausgegeben
|
||||||
|
*
|
||||||
* @param spaceID
|
* @param spaceID
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Map<String, List<ItemCollection>> groupInvoicesBySpaceID(String spaceID) {
|
private Map<String, List<ItemCollection>> groupInvoicesBySpaceID(String spaceID, boolean filter) {
|
||||||
|
|
||||||
Map<String, List<ItemCollection>> result = new HashMap<>();
|
Map<String, List<ItemCollection>> result = new HashMap<>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
List<ItemCollection> invoices = documentService.find(
|
List<ItemCollection> invoices = documentService.find(
|
||||||
"$modelversion:rechnungsausgang-de-1.0 AND type:workitem AND $uniqueidref:" + spaceID, 9999, 0,"invoice.number",false);
|
"$modelversion:rechnungsausgang-de-1.0 AND type:workitem AND $uniqueidref:" + spaceID, 9999, 0,
|
||||||
|
"invoice.number", false);
|
||||||
|
|
||||||
for (ItemCollection invoice : invoices) {
|
for (ItemCollection invoice : invoices) {
|
||||||
|
|
||||||
|
|
@ -355,21 +365,40 @@ public class OPListExportAdapter extends POIFindReplaceAdapter {
|
||||||
invoiceList = new ArrayList<ItemCollection>();
|
invoiceList = new ArrayList<ItemCollection>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (filter) {
|
||||||
|
Date date = invoice.getItemValueDate("invoice.duedate");
|
||||||
|
if (OPListExportAdapter.isOverdue(date, invoice.getTaskID())) {
|
||||||
invoiceList.add(invoice);
|
invoiceList.add(invoice);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// jede Rechnung zählt (manuelle OPListe)
|
||||||
|
invoiceList.add(invoice);
|
||||||
|
}
|
||||||
|
|
||||||
// speicher wieder die neue liste
|
// speicher wieder die neue liste wenn es mindestens eine Rechnung gab
|
||||||
|
if (invoiceList.size()>0) {
|
||||||
result.put(dbtrNumber, invoiceList);
|
result.put(dbtrNumber, invoiceList);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (QueryException e) {
|
} catch (QueryException e) {
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private double roundD(double wert) {
|
private double roundD(double wert) {
|
||||||
return Math.round(wert * 100.0f) / 100.0f;
|
return Math.round(wert * 100.0f) / 100.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isOverdue(Date date, int taskid) {
|
||||||
|
Date now = new Date();
|
||||||
|
long diffInMillies = Math.abs(now.getTime() - date.getTime());
|
||||||
|
int tage = (int) (diffInMillies / 1000 / 60 / 60 / 24);
|
||||||
|
return ((taskid >= TASK_MAHNUNG_2ND && taskid <= TASK_MAHNUNG_2ND) || tage >= 21);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -26,6 +26,7 @@ import java.text.DateFormat;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.text.DecimalFormatSymbols;
|
import java.text.DecimalFormatSymbols;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
@ -52,7 +53,9 @@ import org.imixs.workflow.exceptions.QueryException;
|
||||||
* The OPListExportScheduler erzeugt für jeden Berich ein neues Workitem mit
|
* The OPListExportScheduler erzeugt für jeden Berich ein neues Workitem mit
|
||||||
* einer Excel Datei mit allen offenen Rechnungen.
|
* einer Excel Datei mit allen offenen Rechnungen.
|
||||||
* <p>
|
* <p>
|
||||||
* bei den OP Listen für die Abteilungen dürfen nur Rechnungen aktiviert werden, wo die 2. Mahnung bereits versandt wurde bzw. wo die Fälligkeit der Rechnungen 21 Tage übersteigt.
|
* bei den OP Listen für die Abteilungen dürfen nur Rechnungen aktiviert werden,
|
||||||
|
* wo die 2. Mahnung bereits versandt wurde bzw. wo die Fälligkeit der
|
||||||
|
* Rechnungen 21 Tage übersteigt.
|
||||||
* <p>
|
* <p>
|
||||||
* The class implements the interface
|
* The class implements the interface
|
||||||
* _org.imixs.workflow.engine.scheduler.Scheduler_ and can be used in
|
* _org.imixs.workflow.engine.scheduler.Scheduler_ and can be used in
|
||||||
|
|
@ -66,6 +69,8 @@ public class OPListExportScheduler implements Scheduler {
|
||||||
|
|
||||||
public static final int MAX_COUNT = 999;
|
public static final int MAX_COUNT = 999;
|
||||||
public static final String OPLIST_ERROR = "OPLIST_ERROR";
|
public static final String OPLIST_ERROR = "OPLIST_ERROR";
|
||||||
|
public static final int TASK_MAHNUNG_2ND = 5210;
|
||||||
|
public static final int TASK_MAHNUNG_LAST = 5220;
|
||||||
|
|
||||||
public static DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy");
|
public static DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy");
|
||||||
public static DecimalFormat decimalFormat = new DecimalFormat("0.00",
|
public static DecimalFormat decimalFormat = new DecimalFormat("0.00",
|
||||||
|
|
@ -99,25 +104,17 @@ public class OPListExportScheduler implements Scheduler {
|
||||||
List<ItemCollection> spaces = teamService.getSpaces();
|
List<ItemCollection> spaces = teamService.getSpaces();
|
||||||
// Jezt erzeugen wir für jeden Bereich ein neues Workitem .
|
// Jezt erzeugen wir für jeden Bereich ein neues Workitem .
|
||||||
for (ItemCollection space : spaces) {
|
for (ItemCollection space : spaces) {
|
||||||
|
// Gibt es Rechnungen in diesem Space?
|
||||||
// Gibt es Rechnungen?
|
if (existsOverdueInvoices(space)) {
|
||||||
try {
|
|
||||||
List<ItemCollection> invoices = documentService
|
|
||||||
.find("$modelversion:rechnungsausgang-de-1.0 AND type:workitem AND $uniqueidref:"
|
|
||||||
+ space.getUniqueID(), 1, 0);
|
|
||||||
if (invoices.size() > 0) {
|
|
||||||
// erzeuge eine OP-Liste
|
// erzeuge eine OP-Liste
|
||||||
ItemCollection workitem = new ItemCollection();
|
ItemCollection workitem = new ItemCollection();
|
||||||
workitem.setItemValue("space.ref", space.getUniqueID());
|
workitem.setItemValue("space.ref", space.getUniqueID());
|
||||||
// set creation date!
|
// set creation date!
|
||||||
workitem.setItemValue(WorkflowKernel.CREATED, new Date());
|
workitem.setItemValue(WorkflowKernel.CREATED, new Date());
|
||||||
processOPListe(workitem);
|
processOPListe(workitem);
|
||||||
|
} else {
|
||||||
|
logger.info("....no invoices in overdue for "+space.getItemValueString("name"));
|
||||||
}
|
}
|
||||||
} catch (QueryException e) {
|
|
||||||
// not possible
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logMessage("...completed", configuration, null);
|
logMessage("...completed", configuration, null);
|
||||||
|
|
@ -134,6 +131,37 @@ public class OPListExportScheduler implements Scheduler {
|
||||||
return configuration;
|
return configuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prüfen ob es Rechnugen in diesem Space gibt die entweder die 2. Mahnstufe
|
||||||
|
* erreicht habne oder deren Fälligkeit um mehr als 21 Tage überschritten ist.
|
||||||
|
*
|
||||||
|
* @param space
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private boolean existsOverdueInvoices(ItemCollection space) {
|
||||||
|
List<ItemCollection> invoices = new ArrayList<ItemCollection>();
|
||||||
|
try {
|
||||||
|
invoices = documentService.find(
|
||||||
|
"$modelversion:rechnungsausgang-de-1.0 AND type:workitem AND $uniqueidref:" + space.getUniqueID(),
|
||||||
|
999, 0);
|
||||||
|
} catch (QueryException e) {
|
||||||
|
logger.warning("Failed to compute invoice list: " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ItemCollection invoice : invoices) {
|
||||||
|
Date date = invoice.getItemValueDate("invoice.duedate");
|
||||||
|
if (OPListExportAdapter.isOverdue(date,invoice.getTaskID())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
|
@TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
|
||||||
public void processOPListe(ItemCollection workitem)
|
public void processOPListe(ItemCollection workitem)
|
||||||
throws PluginException, AccessDeniedException, ProcessingErrorException, ModelException {
|
throws PluginException, AccessDeniedException, ProcessingErrorException, ModelException {
|
||||||
|
|
|
||||||
|
|
@ -253,12 +253,17 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt
|
||||||
<opliste name="textblock">OP-Liste Template</opliste>
|
<opliste name="textblock">OP-Liste Template</opliste>
|
||||||
<opliste name="template">op-liste_template.xlsx</opliste>
|
<opliste name="template">op-liste_template.xlsx</opliste>
|
||||||
<opliste name="target-name">op-liste_<itemvalue>space.name</itemvalue>_<itemvalue format="yyyy-MM-dd">$lasteventdate</itemvalue>.xlsx</opliste>
|
<opliste name="target-name">op-liste_<itemvalue>space.name</itemvalue>_<itemvalue format="yyyy-MM-dd">$lasteventdate</itemvalue>.xlsx</opliste>
|
||||||
|
<opliste name="filter">true</opliste>
|
||||||
<poi-update name="findreplace">
|
<poi-update name="findreplace">
|
||||||
<find>C6</find>
|
<find>C6</find>
|
||||||
<replace><itemvalue>sequencenumber</itemvalue></replace>
|
<replace><itemvalue>sequencenumber</itemvalue></replace>
|
||||||
<type>text</type>
|
<type>text</type>
|
||||||
</poi-update>
|
</poi-update>
|
||||||
|
<poi-update name="findreplace">
|
||||||
|
<find>D6</find>
|
||||||
|
<replace>Überfällig / 2. Mahnstufe</replace>
|
||||||
|
<type>text</type>
|
||||||
|
</poi-update>
|
||||||
<poi-update name="findreplace">
|
<poi-update name="findreplace">
|
||||||
<find>C8</find>
|
<find>C8</find>
|
||||||
<replace><itemvalue>space.name</itemvalue></replace>
|
<replace><itemvalue>space.name</itemvalue></replace>
|
||||||
|
|
@ -409,6 +414,11 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt
|
||||||
<replace><itemvalue>sequencenumber</itemvalue></replace>
|
<replace><itemvalue>sequencenumber</itemvalue></replace>
|
||||||
<type>text</type>
|
<type>text</type>
|
||||||
</poi-update>
|
</poi-update>
|
||||||
|
<poi-update name="findreplace">
|
||||||
|
<find>D6</find>
|
||||||
|
<replace>Gesamtübersicht</replace>
|
||||||
|
<type>text</type>
|
||||||
|
</poi-update>
|
||||||
<poi-update name="findreplace">
|
<poi-update name="findreplace">
|
||||||
<find>C8</find>
|
<find>C8</find>
|
||||||
<replace><itemvalue>space.name</itemvalue></replace>
|
<replace><itemvalue>space.name</itemvalue></replace>
|
||||||
|
|
@ -487,6 +497,14 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt
|
||||||
<bpmn2:association id="Association_1" sourceRef="DataObject_1" targetRef="Task_2"/>
|
<bpmn2:association id="Association_1" sourceRef="DataObject_1" targetRef="Task_2"/>
|
||||||
<bpmn2:association id="Association_3" sourceRef="DataObject_2" targetRef="Task_1"/>
|
<bpmn2:association id="Association_3" sourceRef="DataObject_2" targetRef="Task_1"/>
|
||||||
<bpmn2:association id="Association_4" sourceRef="DataObject_1" targetRef="Task_3"/>
|
<bpmn2:association id="Association_4" sourceRef="DataObject_1" targetRef="Task_3"/>
|
||||||
|
<bpmn2:textAnnotation id="TextAnnotation_1">
|
||||||
|
<bpmn2:text>Filter: 2. Mahnstufe / 21 Tage überfällig</bpmn2:text>
|
||||||
|
</bpmn2:textAnnotation>
|
||||||
|
<bpmn2:textAnnotation id="TextAnnotation_2">
|
||||||
|
<bpmn2:text>Alle Rechnungen</bpmn2:text>
|
||||||
|
</bpmn2:textAnnotation>
|
||||||
|
<bpmn2:association id="Association_2" sourceRef="TextAnnotation_2" targetRef="IntermediateCatchEvent_4"/>
|
||||||
|
<bpmn2:association id="Association_5" sourceRef="TextAnnotation_1" targetRef="IntermediateCatchEvent_1"/>
|
||||||
</bpmn2:process>
|
</bpmn2:process>
|
||||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram">
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram">
|
||||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1">
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1">
|
||||||
|
|
@ -598,6 +616,18 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt
|
||||||
<dc:Bounds height="14.0" width="56.0" x="807.0" y="586.0"/>
|
<dc:Bounds height="14.0" width="56.0" x="807.0" y="586.0"/>
|
||||||
</bpmndi:BPMNLabel>
|
</bpmndi:BPMNLabel>
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="BPMNShape_TextAnnotation_1" bpmnElement="TextAnnotation_1">
|
||||||
|
<dc:Bounds height="51.0" width="151.0" x="610.0" y="220.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_17">
|
||||||
|
<dc:Bounds height="45.0" width="139.0" x="616.0" y="220.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="BPMNShape_TextAnnotation_2" bpmnElement="TextAnnotation_2">
|
||||||
|
<dc:Bounds height="50.0" width="161.0" x="510.0" y="540.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_19">
|
||||||
|
<dc:Bounds height="44.0" width="149.0" x="516.0" y="540.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="BPMNShape_1" targetElement="BPMNShape_Task_1">
|
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="BPMNShape_1" targetElement="BPMNShape_Task_1">
|
||||||
<di:waypoint xsi:type="dc:Point" x="216.0" y="319.0"/>
|
<di:waypoint xsi:type="dc:Point" x="216.0" y="319.0"/>
|
||||||
<di:waypoint xsi:type="dc:Point" x="253.0" y="319.0"/>
|
<di:waypoint xsi:type="dc:Point" x="253.0" y="319.0"/>
|
||||||
|
|
@ -688,6 +718,18 @@ Nach Prüfung schließen Sie bitte den Vorgang über die Schaltfläche "Erledigt
|
||||||
<di:waypoint xsi:type="dc:Point" x="835.0" y="510.0"/>
|
<di:waypoint xsi:type="dc:Point" x="835.0" y="510.0"/>
|
||||||
<bpmndi:BPMNLabel id="BPMNLabel_28"/>
|
<bpmndi:BPMNLabel id="BPMNLabel_28"/>
|
||||||
</bpmndi:BPMNEdge>
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="BPMNEdge_Association_2" bpmnElement="Association_2" sourceElement="BPMNShape_TextAnnotation_2" targetElement="BPMNShape_IntermediateCatchEvent_4">
|
||||||
|
<di:waypoint xsi:type="dc:Point" x="510.0" y="565.0"/>
|
||||||
|
<di:waypoint xsi:type="dc:Point" x="468.0" y="565.0"/>
|
||||||
|
<di:waypoint xsi:type="dc:Point" x="468.0" y="503.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_20"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="BPMNEdge_Association_5" bpmnElement="Association_5" sourceElement="BPMNShape_TextAnnotation_1" targetElement="BPMNShape_IntermediateCatchEvent_1">
|
||||||
|
<di:waypoint xsi:type="dc:Point" x="610.0" y="245.0"/>
|
||||||
|
<di:waypoint xsi:type="dc:Point" x="578.0" y="245.0"/>
|
||||||
|
<di:waypoint xsi:type="dc:Point" x="578.0" y="301.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_24"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
</bpmndi:BPMNPlane>
|
</bpmndi:BPMNPlane>
|
||||||
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
|
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
|
||||||
<dc:Font name="arial" size="9.0"/>
|
<dc:Font name="arial" size="9.0"/>
|
||||||
|
|
|
||||||
|
|
@ -984,7 +984,7 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
||||||
<imixs:value><![CDATA[2]]></imixs:value>
|
<imixs:value><![CDATA[2]]></imixs:value>
|
||||||
</imixs:item>
|
</imixs:item>
|
||||||
<imixs:item name="keypublicresult" type="xs:string">
|
<imixs:item name="keypublicresult" type="xs:string">
|
||||||
<imixs:value><![CDATA[0]]></imixs:value>
|
<imixs:value><![CDATA[1]]></imixs:value>
|
||||||
</imixs:item>
|
</imixs:item>
|
||||||
<imixs:item name="keylogdateformat" type="xs:string">
|
<imixs:item name="keylogdateformat" type="xs:string">
|
||||||
<imixs:value><![CDATA[2]]></imixs:value>
|
<imixs:value><![CDATA[2]]></imixs:value>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue