export zoho vendor credit
This commit is contained in:
parent
1a82da08d5
commit
73731c89ea
8 changed files with 426 additions and 29 deletions
|
|
@ -32,6 +32,8 @@ import com.alexanderlogistics.zoho.dto.ZohoContactFindResponse;
|
|||
import com.alexanderlogistics.zoho.dto.ZohoInvoice;
|
||||
import com.alexanderlogistics.zoho.dto.ZohoInvoiceCreateResponse;
|
||||
import com.alexanderlogistics.zoho.dto.ZohoInvoiceItem;
|
||||
import com.alexanderlogistics.zoho.dto.ZohoVendorCredit;
|
||||
import com.alexanderlogistics.zoho.dto.ZohoVendorCreditCreateResponse;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.security.DeclareRoles;
|
||||
|
|
@ -262,6 +264,76 @@ public class ZohoAPIService {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Exports an Eingangsrechnung as a Vendor Credit
|
||||
*
|
||||
* @see https://www.zoho.com/books/api/v3/expenses/#create-an-expense
|
||||
*
|
||||
* @param invoice
|
||||
* @throws PluginException
|
||||
*/
|
||||
public ZohoVendorCredit exportVendorCredit(ItemCollection invoice, String contactID, String accountID,
|
||||
String accessToken) throws PluginException {
|
||||
logger.info("├── Zoho Export VendorCredit " + invoice.getItemValueString("invoice.number") + "...");
|
||||
|
||||
// Konvertiere ItemCollection zu ZohoInvoiceDTO
|
||||
ZohoVendorCredit zohoVendorCredit = convertToZohoVendorCredit(invoice, contactID, accountID);
|
||||
|
||||
try {
|
||||
String requestBody = jsonb.toJson(zohoVendorCredit);
|
||||
|
||||
// Print JSON to console for verification
|
||||
logger.fine("├── Zoho VendorCredit JSON Request...");
|
||||
logger.fine("│ ├── " + requestBody);
|
||||
|
||||
// https://www.zohoapis.com/books/v3/expenses?organization_id=10234695'
|
||||
String uri = zohoOAuthManager.getBaseURI() + "vendorcredits?organization_id="
|
||||
+ zohoOAuthManager.getOrganization();
|
||||
logger.fine("│ ├── uri= " + uri);
|
||||
logger.fine("│ ├── accessToken=" + accessToken);
|
||||
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(uri))
|
||||
.header("Authorization", "Zoho-oauthtoken " + accessToken)
|
||||
.header("Content-Type", "application/json").POST(HttpRequest.BodyPublishers.ofString(requestBody))
|
||||
.build();
|
||||
|
||||
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
|
||||
|
||||
// Print response details to console
|
||||
logger.fine("├── Zoho Response:");
|
||||
logger.fine("│ ├── Status Code: " + response.statusCode());
|
||||
|
||||
if (response.statusCode() >= 300) {
|
||||
throw new PluginException(this.getClass().getName(), "Zoho API error",
|
||||
"Failed to create expense. Status code: " + response.statusCode() + ", Response: "
|
||||
+ response.body());
|
||||
}
|
||||
|
||||
// Erfolgreiche Erstellung
|
||||
String bodyContent = response.body();
|
||||
logger.fine("│ ├── Response Body: " + bodyContent);
|
||||
|
||||
System.out.print(bodyContent);
|
||||
ZohoVendorCreditCreateResponse createResponse = jsonb.fromJson(bodyContent,
|
||||
ZohoVendorCreditCreateResponse.class);
|
||||
|
||||
if (createResponse != null) {
|
||||
logger.info("│ ├── OK - customerID=" + createResponse.getVendorCredit().getVendorId());
|
||||
logger.info("│ ├── OK - creditID=" + createResponse.getVendorCredit().getCreditId());
|
||||
zohoVendorCredit = createResponse.getVendorCredit();
|
||||
|
||||
// now mark the invoice as send
|
||||
logger.info("│ ├── VendorCredit Export successful.");
|
||||
return zohoVendorCredit;
|
||||
}
|
||||
|
||||
} catch (IOException | InterruptedException e) {
|
||||
throw new PluginException(this.getClass().getName(), "Zoho API error",
|
||||
"Failed to export vendor credit to Zoho: " + e.getMessage(), e);
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public String lookupContact(String companyName, String contactType, String accessToken) throws PluginException {
|
||||
// first lookup contact!
|
||||
String contactID = "";
|
||||
|
|
@ -442,6 +514,41 @@ public class ZohoAPIService {
|
|||
return zohoBill;
|
||||
}
|
||||
|
||||
private ZohoVendorCredit convertToZohoVendorCredit(ItemCollection invoice, String contactID, String accountID)
|
||||
throws PluginException {
|
||||
|
||||
ZohoVendorCredit zohoVendorCredit = new ZohoVendorCredit();
|
||||
// Basisinformationen
|
||||
|
||||
zohoVendorCredit.setInvoiceNumber(invoice.getItemValueString("invoice.number"));
|
||||
zohoVendorCredit.setDate(
|
||||
LocalDate.ofInstant(invoice.getItemValueDate("invoice.date").toInstant(), ZoneId.systemDefault()));
|
||||
// convert total by rate
|
||||
// zohoVendorCredit.setAmount(convertInvoiceTotalToAED(invoice,
|
||||
// invoice.getItemValueDouble("invoice.total")));
|
||||
|
||||
// Kunden-ID (muss angepasst werden je nachdem wie du sie speicherst)
|
||||
zohoVendorCredit.setVendorId(contactID);
|
||||
|
||||
// zohoBill.setPaid_through_account_id("1700");
|
||||
List<ItemCollection> positionen = InvoiceUtil.explodeChildList(invoice);
|
||||
// {amount=[11825.00], total=[11825.00], numpos=[1], name=[AB-DEFGHI-1234-567],
|
||||
// tax=[0], category=[STORAGE], invoice.period=[]}
|
||||
List<ZohoBillItem> lineItems = positionen.stream().map(item -> {
|
||||
ItemCollection itemCol = (ItemCollection) item;
|
||||
ZohoBillItem lineItem = new ZohoBillItem();
|
||||
lineItem.setName(itemCol.getItemValueString("name"));
|
||||
lineItem.setAccountId(accountID);
|
||||
lineItem.setQuantity(1);
|
||||
lineItem.setRate(convertInvoiceTotalToAED(invoice, itemCol.getItemValueDouble("amount")));
|
||||
|
||||
return lineItem;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
zohoVendorCredit.setLineItems(lineItems);
|
||||
return zohoVendorCredit;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method adds an attachment to an invoice
|
||||
*
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import org.imixs.workflow.exceptions.PluginException;
|
|||
|
||||
import com.alexanderlogistics.zoho.dto.ZohoBill;
|
||||
import com.alexanderlogistics.zoho.dto.ZohoInvoice;
|
||||
import com.alexanderlogistics.zoho.dto.ZohoVendorCredit;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
|
||||
|
|
@ -124,6 +125,29 @@ public class ZohoExportAdapter implements SignalAdapter {
|
|||
// accessToken);
|
||||
String accountID = zohoOAuthManager.getAccountId();
|
||||
|
||||
// Gutschrift??
|
||||
if ("credit".equalsIgnoreCase(document.getItemValueString("payment.type"))) {
|
||||
// Gutschrift
|
||||
logger.info("├── Vendor Credit Export");
|
||||
ZohoVendorCredit zohoVendorCredit = zohoAPIService.exportVendorCredit(document, contactID, accountID,
|
||||
accessToken);
|
||||
|
||||
// Attache Files....
|
||||
List<FileData> files = null;
|
||||
ItemCollection snapshot = snapshotService.findSnapshot(document);
|
||||
if (snapshot != null) {
|
||||
files = snapshot.getFileData();
|
||||
if (files != null) {
|
||||
for (FileData file : files) {
|
||||
if (file.getName().toLowerCase().endsWith(".pdf")) {
|
||||
zohoAPIService.attacheFileData(zohoVendorCredit.getCreditId(), file, "vendorcredits",
|
||||
accessToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.info("├── Bill Export");
|
||||
ZohoBill zohoBill = zohoAPIService.exportBill(document, contactID, accountID, accessToken);
|
||||
|
||||
// Attache Files....
|
||||
|
|
@ -141,4 +165,6 @@ public class ZohoExportAdapter implements SignalAdapter {
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
package com.alexanderlogistics.zoho.dto;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
import jakarta.json.bind.annotation.JsonbDateFormat;
|
||||
import jakarta.json.bind.annotation.JsonbProperty;
|
||||
|
||||
public class ZohoVendorCredit {
|
||||
|
||||
@JsonbProperty("vendor_credit_id")
|
||||
private String creditId;
|
||||
|
||||
@JsonbProperty("vendor_id")
|
||||
private String vendorId;
|
||||
|
||||
@JsonbProperty("currency_id")
|
||||
private String currencyId;
|
||||
|
||||
@JsonbDateFormat("yyyy-MM-dd")
|
||||
private LocalDate date;
|
||||
|
||||
@JsonbProperty("vendor_credit_number")
|
||||
private String invoiceNumber;
|
||||
|
||||
@JsonbProperty("line_items")
|
||||
private List<ZohoBillItem> lineItems;
|
||||
|
||||
// Getter und Setter
|
||||
|
||||
public String getCreditId() {
|
||||
return creditId;
|
||||
}
|
||||
|
||||
public void setCreditId(String billId) {
|
||||
this.creditId = billId;
|
||||
}
|
||||
|
||||
public String getVendorId() {
|
||||
return vendorId;
|
||||
}
|
||||
|
||||
public void setVendorId(String vendorId) {
|
||||
this.vendorId = vendorId;
|
||||
}
|
||||
|
||||
public LocalDate getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(LocalDate date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public String getInvoiceNumber() {
|
||||
return invoiceNumber;
|
||||
}
|
||||
|
||||
public void setInvoiceNumber(String invoiceNumber) {
|
||||
this.invoiceNumber = invoiceNumber;
|
||||
}
|
||||
|
||||
public List<ZohoBillItem> getLineItems() {
|
||||
return lineItems;
|
||||
}
|
||||
|
||||
public void setLineItems(List<ZohoBillItem> lineItems) {
|
||||
this.lineItems = lineItems;
|
||||
}
|
||||
|
||||
public String getCurrencyId() {
|
||||
return currencyId;
|
||||
}
|
||||
|
||||
public void setCurrencyId(String currencyId) {
|
||||
this.currencyId = currencyId;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package com.alexanderlogistics.zoho.dto;
|
||||
|
||||
import jakarta.json.bind.annotation.JsonbProperty;
|
||||
|
||||
public class ZohoVendorCreditCreateResponse {
|
||||
@JsonbProperty("code")
|
||||
private int code;
|
||||
|
||||
@JsonbProperty("message")
|
||||
private String message;
|
||||
|
||||
@JsonbProperty("vendor_credit")
|
||||
private ZohoVendorCredit vendorCredit;
|
||||
|
||||
// Getter und Setter
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public ZohoVendorCredit getVendorCredit() {
|
||||
return vendorCredit;
|
||||
}
|
||||
|
||||
public void setVendorCredit(ZohoVendorCredit credit) {
|
||||
this.vendorCredit = credit;
|
||||
}
|
||||
}
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
<span class="typcn typcn-lightbulb"></span> Fordern Sie einen ZOHO API COde
|
||||
an
|
||||
<ol>
|
||||
<li>Melden Sie sich auf der <a href="https://api-console.zoho.eu/"
|
||||
<li>Melden Sie sich auf der <a href="https://api-console.zoho.com/"
|
||||
target="_blank">ZOHO API Console</a> an</li>
|
||||
<li>
|
||||
Legen Sie einen API Self Client an
|
||||
|
|
@ -137,7 +137,7 @@
|
|||
Generieren Sie einen neuen Access Code
|
||||
<br />
|
||||
Scope:
|
||||
<code>ZohoBooks.contacts.ALL,ZohoBooks.invoices.ALL,ZohoBooks.bills.ALL,ZohoBooks.settings.READ</code>
|
||||
<code>ZohoBooks.contacts.ALL,ZohoBooks.invoices.ALL,ZohoBooks.bills.ALL,ZohoBooks.debitnotes.ALL,ZohoBooks.settings.READ</code>
|
||||
</li>
|
||||
<li>
|
||||
Code über den Button "Create" anfordern und in das Feld "Access Code"
|
||||
|
|
|
|||
|
|
@ -683,8 +683,7 @@ Note: Output only the XML object! Don't add explanations or comments. Use only t
|
|||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[
|
||||
]]></imixs:value>
|
||||
<imixs:value/>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_sMhfSg"/>
|
||||
|
|
|
|||
|
|
@ -145,6 +145,9 @@
|
|||
<bpmn2:flowNodeRef>gateway_Al0gGg</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_vjVWqA</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_poLLDQ</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_RH72Rg</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_g4VN8Q</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_VKijpQ</bpmn2:flowNodeRef>
|
||||
</bpmn2:lane>
|
||||
</bpmn2:laneSet>
|
||||
<bpmn2:task id="Task_5000" imixs:processid="5300" name="Approval">
|
||||
|
|
@ -193,6 +196,7 @@
|
|||
<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
|
||||
<bpmn2:incoming>SequenceFlow_123</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_32</bpmn2:outgoing>
|
||||
<bpmn2:incoming>sequenceFlow_0YsOgQ</bpmn2:incoming>
|
||||
</bpmn2:task>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_5000-10" imixs:activityid="10" name="Save">
|
||||
<bpmn2:extensionElements>
|
||||
|
|
@ -878,6 +882,7 @@ if (paymentType=="no_sepa") {
|
|||
<bpmn2:incoming>SequenceFlow_90</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_47</bpmn2:outgoing>
|
||||
<bpmn2:incoming>sequenceFlow_9rYDHA</bpmn2:incoming>
|
||||
<bpmn2:incoming>sequenceFlow_0s8UKQ</bpmn2:incoming>
|
||||
</bpmn2:task>
|
||||
<bpmn2:endEvent id="EndEvent_2" name="Ende">
|
||||
<bpmn2:incoming>SequenceFlow_47</bpmn2:incoming>
|
||||
|
|
@ -1470,9 +1475,8 @@ result.isValid=true;
|
|||
<bpmn2:dataObject id="DataObject_1" name="Invoice Form">
|
||||
<bpmn2:documentation id="Documentation_11"><![CDATA[<?xml version="1.0"?>
|
||||
<imixs-form>
|
||||
<imixs-form-section columns="2" label="Invoice data">
|
||||
<item name="cdtr.name" type="text" readonly="true" label="Vendor:"/>
|
||||
<item name="partner.id" type="custom" path="alexander/businesspartner_search" readonly="true" requred="true" label="Vendor number:"/>
|
||||
<imixs-form-section columns="1" label="Invoice data">
|
||||
<item name="partner.id" type="custom" path="alexander/businesspartner_search" readonly="true" requred="true" label="Vendor:"/>
|
||||
|
||||
</imixs-form-section>
|
||||
<imixs-form-section columns="2">
|
||||
|
|
@ -1941,9 +1945,8 @@ result.isValid=true;
|
|||
<bpmn2:dataObject id="DataObject_3" name="Invoice Form">
|
||||
<bpmn2:documentation id="Documentation_36"><![CDATA[<?xml version="1.0"?>
|
||||
<imixs-form>
|
||||
<imixs-form-section columns="2" label="Invoice data">
|
||||
<item name="cdtr.name" type="text" readonly="true" label="Vendor:"/>
|
||||
<item name="cdtr.number" type="custom" path="alexander/businesspartner_search" readonly="true" label="Vendor number:" />
|
||||
<imixs-form-section columns="1" label="Invoice data">
|
||||
<item name="cdtr.number" type="custom" path="alexander/businesspartner_search" readonly="true" label="Vendor:" />
|
||||
</imixs-form-section>
|
||||
<imixs-form-section columns="2">
|
||||
<item name="invoice.number" type="text" readonly="true" label="Invoice number:" />
|
||||
|
|
@ -3432,6 +3435,7 @@ result.isValid=true;
|
|||
<bpmn2:incoming>SequenceFlow_129</bpmn2:incoming>
|
||||
<bpmn2:incoming>SequenceFlow_133</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_MxzvVQ</bpmn2:outgoing>
|
||||
<bpmn2:incoming>sequenceFlow_dFaOwQ</bpmn2:incoming>
|
||||
</bpmn2:task>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_62" imixs:activityid="70" name="Approve">
|
||||
<bpmn2:extensionElements>
|
||||
|
|
@ -3935,6 +3939,57 @@ Export erfolgt über eine asynchrone Verarbeitung im Modell 'cargosoft-export']]
|
|||
<bpmn2:sequenceFlow id="sequenceFlow_IZAXAQ" sourceRef="IntermediateCatchEvent_16" targetRef="Task_3">
|
||||
<bpmn2:documentation id="documentation_0tNBRw"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:intermediateCatchEvent id="event_RH72Rg" imixs:activityid="400" name="ZOHO Test">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Zoho export]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keypublicresult" type="xs:string">
|
||||
<imixs:value><![CDATA[1]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_Im3wqw"/>
|
||||
<bpmn2:signalEventDefinition id="signalEventDefinition_WJdSdQ" signalRef="signal_9"/>
|
||||
<bpmn2:outgoing>sequenceFlow_0s8UKQ</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_0s8UKQ" sourceRef="event_RH72Rg" targetRef="Task_5">
|
||||
<bpmn2:documentation id="documentation_290euw"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:association id="association_My0cog" sourceRef="Task_5" targetRef="DataObject_3">
|
||||
<bpmn2:documentation id="documentation_oAaR3Q"/>
|
||||
</bpmn2:association>
|
||||
<bpmn2:intermediateCatchEvent id="event_g4VN8Q" imixs:activityid="400" name="ZOHO Test">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Zoho export]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keypublicresult" type="xs:string">
|
||||
<imixs:value><![CDATA[1]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_IYmitw"/>
|
||||
<bpmn2:signalEventDefinition id="signalEventDefinition_ali0Jw" signalRef="signal_9"/>
|
||||
<bpmn2:outgoing>sequenceFlow_0YsOgQ</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_0YsOgQ" sourceRef="event_g4VN8Q" targetRef="Task_5000">
|
||||
<bpmn2:documentation id="documentation_sAeSMQ"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:intermediateCatchEvent id="event_VKijpQ" imixs:activityid="400" name="ZOHO Test">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Zoho export]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keypublicresult" type="xs:string">
|
||||
<imixs:value><![CDATA[1]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_JG3kOQ"/>
|
||||
<bpmn2:signalEventDefinition id="signalEventDefinition_ULfdQw" signalRef="signal_9"/>
|
||||
<bpmn2:outgoing>sequenceFlow_dFaOwQ</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_dFaOwQ" sourceRef="event_VKijpQ" targetRef="Task_19">
|
||||
<bpmn2:documentation id="documentation_ZuxIlA"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
</bpmn2:process>
|
||||
<bpmn2:process id="process_2" name="Invoice receipt" processType="Public">
|
||||
<bpmn2:documentation id="documentation_yUm3kA"/>
|
||||
|
|
@ -4870,6 +4925,47 @@ Export erfolgt über eine asynchrone Verarbeitung im Modell 'cargosoft-export']]
|
|||
<di:waypoint x="1003.0" y="1615.0"/>
|
||||
<di:waypoint x="1280.0" y="1615.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="event_RH72Rg" id="BPMNShape_1LtZaw">
|
||||
<dc:Bounds height="36.0" width="36.0" x="2451.424047751376" y="1716.921725857192"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_oj1Prw">
|
||||
<dc:Bounds height="20.0" width="100.0" x="2419.424072265625" y="1755.9217529296875"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_0s8UKQ" id="BPMNEdge_VCj7ww" sourceElement="BPMNShape_1LtZaw" targetElement="BPMNShape_Task_11">
|
||||
<di:waypoint x="2469.0" y="1717.0"/>
|
||||
<di:waypoint x="2469.0" y="1678.0"/>
|
||||
<di:waypoint x="2465.0" y="1678.0"/>
|
||||
<di:waypoint x="2465.0" y="1640.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="association_My0cog" id="BPMNEdge_5dWtSw" sourceElement="BPMNShape_Task_11" targetElement="BPMNShape_DataObject_3">
|
||||
<di:waypoint x="2410.0" y="1615.0"/>
|
||||
<di:waypoint x="1548.0" y="1615.0"/>
|
||||
<di:waypoint x="1548.0" y="1875.0"/>
|
||||
<di:waypoint x="685.0" y="1875.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="event_g4VN8Q" id="BPMNShape_GkIGVQ">
|
||||
<dc:Bounds height="36.0" width="36.0" x="622.8773912051431" y="1432.3215684466504"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_4bsNkA">
|
||||
<dc:Bounds height="20.0" width="100.0" x="590.8773803710938" y="1471.321533203125"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_0YsOgQ" id="BPMNEdge_NjB8zg" sourceElement="BPMNShape_GkIGVQ" targetElement="BPMNShape_Task_1">
|
||||
<di:waypoint x="641.0" y="1468.0"/>
|
||||
<di:waypoint x="641.0" y="1529.0"/>
|
||||
<di:waypoint x="725.0" y="1529.0"/>
|
||||
<di:waypoint x="725.0" y="1590.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="event_VKijpQ" id="BPMNShape_U9aYgw">
|
||||
<dc:Bounds height="36.0" width="36.0" x="1727.0" y="1257.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_CkbSsg">
|
||||
<dc:Bounds height="20.0" width="100.0" x="1695.0" y="1296.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_dFaOwQ" id="BPMNEdge_4f0Vvw" sourceElement="BPMNShape_U9aYgw" targetElement="BPMNShape_Task_21">
|
||||
<di:waypoint x="1763.0" y="1277.0"/>
|
||||
<di:waypoint x="1849.0" y="1277.0"/>
|
||||
<di:waypoint x="1849.0" y="1360.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
|
||||
<dc:Font name="arial" size="9.0"/>
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@
|
|||
<bpmn2:documentation id="documentation_iMb60w"/>
|
||||
<bpmn2:flowNodeRef>DataObject_2</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_weGn1Q</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>task_RF3H2w</bpmn2:flowNodeRef>
|
||||
</bpmn2:lane>
|
||||
<bpmn2:lane id="Lane_2" name="Verantwortlicher / Bereich Team">
|
||||
<bpmn2:documentation id="documentation_fufjXQ"/>
|
||||
|
|
@ -2953,7 +2954,7 @@ result.isValid=true;
|
|||
<type>stop</type>
|
||||
<anonymised>false</anonymised>
|
||||
</taxonomy>
|
||||
<model>
|
||||
<model>
|
||||
<version>rechnungseingang-dwc-1.0</version>
|
||||
<task>5000</task>
|
||||
<event>10</event>
|
||||
|
|
@ -2984,7 +2985,8 @@ result.isValid=true;
|
|||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_39"><![CDATA[Wrong classification - change to cargo invoice]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_83</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_7p4puA</bpmn2:outgoing>
|
||||
<bpmn2:outgoing>sequenceFlow_08r6Pw</bpmn2:outgoing>
|
||||
<bpmn2:compensationEventDefinition id="compensationEventDefinition_t0kCAA"/>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_83" sourceRef="EventBasedGateway_1" targetRef="IntermediateCatchEvent_40">
|
||||
<bpmn2:documentation id="documentation_pPAHsA"/>
|
||||
|
|
@ -3240,7 +3242,7 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<bpmn2:documentation id="documentation_ZOe84w"/>
|
||||
<bpmn2:incoming>sequenceFlow_7p4puA</bpmn2:incoming>
|
||||
</bpmn2:endEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_7p4puA" sourceRef="IntermediateCatchEvent_40" targetRef="event_weGn1Q">
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_7p4puA" sourceRef="task_RF3H2w" targetRef="event_weGn1Q">
|
||||
<bpmn2:documentation id="documentation_mnAIvA"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_rZxKSg" sourceRef="StartEvent_1" targetRef="IntermediateCatchEvent_6">
|
||||
|
|
@ -3355,6 +3357,48 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<bpmn2:sequenceFlow id="sequenceFlow_1Fhiyg" sourceRef="IntermediateCatchEvent_41" targetRef="gateway_qxWQdw">
|
||||
<bpmn2:documentation id="documentation_vXvE2Q"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:task id="task_RF3H2w" imixs:processid="5950" name="Cargo">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="txtworkflowabstract" type="xs:string">
|
||||
<imixs:value><![CDATA[<itemvalue>txtlastcomment</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Rechnung erhalten]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtimageurl" type="xs:string">
|
||||
<imixs:value><![CDATA[typcn-download|typcn-delete,imixs-error,icon-sub-ne]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtworkflowsummary" type="xs:string">
|
||||
<imixs:value><![CDATA[<itemvalue>numsequencenumber</itemvalue>: <itemvalue>cdtr.name</itemvalue> <itemvalue>invoice.number</itemvalue> (<itemvalue>invoice.currency</itemvalue> <itemvalue>invoice.total</itemvalue>) <itemvalue>space.name</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:string">
|
||||
<imixs:value><![CDATA[true]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaddwritefields" type="xs:string">
|
||||
<imixs:value><![CDATA[process.manager]]></imixs:value>
|
||||
<imixs:value><![CDATA[process.team]]></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>
|
||||
<imixs:item name="namownershipnames" type="xs:string">
|
||||
<imixs:value/>
|
||||
</imixs:item>
|
||||
<imixs:item name="namaddwriteaccess" type="xs:string">
|
||||
<imixs:value/>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_hzYK2Q"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_60</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_7p4puA</bpmn2:outgoing>
|
||||
<bpmn2:incoming>sequenceFlow_08r6Pw</bpmn2:incoming>
|
||||
</bpmn2:task>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_08r6Pw" sourceRef="IntermediateCatchEvent_40" targetRef="task_RF3H2w">
|
||||
<bpmn2:documentation id="documentation_0NTD6Q"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
</bpmn2:process>
|
||||
<bpmn2:process id="process_2" name="Invoice" processType="Public">
|
||||
<bpmn2:documentation id="documentation_Jl5Svw"/>
|
||||
|
|
@ -3697,7 +3741,7 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_40" id="BPMNShape_IntermediateCatchEvent_43">
|
||||
<dc:Bounds height="36.0" width="36.0" x="657.0" y="157.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_169" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="20.0" width="100.0" x="635.5" y="197.0"/>
|
||||
<dc:Bounds height="20.0" width="100.0" x="623.5" y="197.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="Task_12" id="BPMNShape_Task_13">
|
||||
|
|
@ -4050,14 +4094,14 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<di:waypoint x="1900.0" y="725.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="event_weGn1Q" id="BPMNShape_PGBrng">
|
||||
<dc:Bounds height="36.0" width="36.0" x="757.0" y="157.0"/>
|
||||
<dc:Bounds height="36.0" width="36.0" x="917.0" y="157.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_oQETOg">
|
||||
<dc:Bounds height="20.0" width="100.0" x="725.0" y="196.0"/>
|
||||
<dc:Bounds height="20.0" width="100.0" x="885.0" y="196.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_7p4puA" id="BPMNEdge_6WpBeA" sourceElement="BPMNShape_IntermediateCatchEvent_43" targetElement="BPMNShape_PGBrng">
|
||||
<di:waypoint x="693.0" y="175.0"/>
|
||||
<di:waypoint x="757.0" y="175.0"/>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_7p4puA" id="BPMNEdge_6WpBeA" sourceElement="BPMNShape_GPPRbw" targetElement="BPMNShape_PGBrng">
|
||||
<di:waypoint x="870.0" y="175.0"/>
|
||||
<di:waypoint x="917.0" y="175.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_rZxKSg" id="BPMNEdge_abtEkQ" sourceElement="BPMNShape_StartEvent_1" targetElement="BPMNShape_IntermediateCatchEvent_11">
|
||||
<di:waypoint x="223.0" y="95.0"/>
|
||||
|
|
@ -4114,6 +4158,13 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
<di:waypoint x="1838.0" y="605.0"/>
|
||||
<di:waypoint x="1838.0" y="703.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="task_RF3H2w" id="BPMNShape_GPPRbw">
|
||||
<dc:Bounds height="50.0" width="110.0" x="760.0" y="150.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_08r6Pw" id="BPMNEdge_g6WacA" sourceElement="BPMNShape_IntermediateCatchEvent_43" targetElement="BPMNShape_GPPRbw">
|
||||
<di:waypoint x="693.0" y="175.0"/>
|
||||
<di:waypoint x="760.0" y="175.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
|
||||
<dc:Font name="arial" size="9.0"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue