374 lines
No EOL
13 KiB
XML
374 lines
No EOL
13 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||
<document xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||
<item name="$created">
|
||
<value xsi:type="xs:dateTime">2024-01-11T14:31:52.923+01:00</value>
|
||
</item>
|
||
<item name="$file">
|
||
<value xsi:nil="true" />
|
||
</item>
|
||
<item name="$isauthor">
|
||
<value xsi:type="xs:boolean">true</value>
|
||
</item>
|
||
<item name="$modified">
|
||
<value xsi:type="xs:dateTime">2024-02-21T12:40:56.424+01:00</value>
|
||
</item>
|
||
<item name="$snapshot.history">
|
||
<value xsi:type="xs:int">1</value>
|
||
</item>
|
||
<item name="$snapshot.overwritefilecontent">
|
||
<value xsi:type="xs:string"></value>
|
||
</item>
|
||
<item name="$snapshotid">
|
||
<value xsi:type="xs:string">a36c52d3-25bc-4c43-8c41-e90e2fd47432-1708515656428</value>
|
||
</item>
|
||
<item name="$uniqueid">
|
||
<value xsi:type="xs:string">a36c52d3-25bc-4c43-8c41-e90e2fd47432</value>
|
||
</item>
|
||
<item name="$version">
|
||
<value xsi:type="xs:int">3</value>
|
||
</item>
|
||
<item name="attributes">
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">$uniqueid</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">$modelversion</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">$workflowgroup</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">$taskid</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">$workflowsummary</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">invoice.number</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">invoice.date</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">invoice.total</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">invoice.currency</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">cdtr.name</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">cdtr.iban</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">cdtr.bic</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">dbtr.name</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">dbtr.iban</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">dbtr.bic</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">payment.type</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
<value xsi:type="xmlItem">
|
||
<value xsi:type="xs:string">numsequencenumber</value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
<value xsi:type="xs:string"></value>
|
||
</value>
|
||
</item>
|
||
<item name="contenttype">
|
||
<value xsi:type="xs:string"></value>
|
||
</item>
|
||
<item name="encoding">
|
||
<value xsi:type="xs:string">UTF-8</value>
|
||
</item>
|
||
<item name="txtdescription">
|
||
<value xsi:type="xs:string">SEPA export executed by the SepaScheduler. See the XSL
|
||
definition for details. </value>
|
||
</item>
|
||
<item name="txtname">
|
||
<value xsi:type="xs:string">sepa</value>
|
||
</item>
|
||
<item name="txtquery">
|
||
<value xsi:type="xs:string">type:"workitem" AND $taskid:5500 </value>
|
||
</item>
|
||
<item name="type">
|
||
<value xsi:type="xs:string">ReportEntity</value>
|
||
</item>
|
||
<item name="xsl">
|
||
<value xsi:type="xs:string"><?xml version="1.0" encoding="UTF-8"
|
||
standalone="yes"?>
|
||
<xsl:stylesheet
|
||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
version="2.0">
|
||
<xsl:strip-space elements="*" />
|
||
<xsl:output method="xml" indent="yes" encoding="UTF-8" standalone="yes" />
|
||
|
||
<xsl:template match="/">
|
||
<xsl:variable name="now" select="current-dateTime()" />
|
||
|
||
<Document
|
||
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.07"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.07
|
||
pain.001.001.07.xsd">
|
||
<CstmrCdtTrfInitn>
|
||
|
||
<!-- generate header info -->
|
||
<!-- compute count of invoices -->
|
||
<xsl:variable name="count"
|
||
select="count(/data/document[starts-with(normalize-space(item[@name =
|
||
'$modelversion']/value),'rechnungseingang')]/item[@name='$uniqueid']/value)" />
|
||
<!-- compute total amount -->
|
||
<xsl:variable name="totalsum"
|
||
select="xs:decimal(sum(/data/document[starts-with(normalize-space(item[@name =
|
||
'$modelversion']/value),'rechnungseingang')]/item[@name='invoice.total']/value))"
|
||
/>
|
||
<!-- round to 2 digits -->
|
||
<xsl:variable name="total"
|
||
select="xs:decimal(round-half-to-even($totalsum, 2))" />
|
||
|
||
<!-- shortcut for the sepa export document -->
|
||
<xsl:variable name="exportWorkitem"
|
||
select="/data/document[normalize-space(item[@name = '$workflowgroup']/value) =
|
||
'SEPA-Export']" />
|
||
|
||
<GrpHdr>
|
||
<MsgId>
|
||
<xsl:value-of
|
||
select="replace($exportWorkitem/item[@name='$uniqueid']/value, '-', '')" />
|
||
</MsgId>
|
||
<CreDtTm>
|
||
<xsl:value-of
|
||
select="format-dateTime($now, '[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]')" />
|
||
</CreDtTm>
|
||
<NbOfTxs>
|
||
<xsl:value-of select="$count" />
|
||
</NbOfTxs>
|
||
<CtrlSum>
|
||
<!-- round to 2 digits -->
|
||
<xsl:value-of select="$total" />
|
||
</CtrlSum>
|
||
<InitgPty>
|
||
<Nm>
|
||
<xsl:value-of
|
||
select="$exportWorkitem/item[@name='dbtr.name']/value" />
|
||
</Nm>
|
||
</InitgPty>
|
||
</GrpHdr>
|
||
|
||
<PmtInf>
|
||
<PmtInfId>
|
||
<xsl:value-of
|
||
select="replace($exportWorkitem/item[@name='$uniqueid']/value, '-', '')" />
|
||
<xsl:text>-1</xsl:text>
|
||
</PmtInfId>
|
||
<PmtMtd>TRF</PmtMtd>
|
||
<NbOfTxs>
|
||
<xsl:value-of select="$count" />
|
||
</NbOfTxs>
|
||
<CtrlSum>
|
||
<!-- round to 2 digits -->
|
||
<xsl:value-of select="$total" />
|
||
</CtrlSum>
|
||
<PmtTpInf>
|
||
<SvcLvl>
|
||
<Cd>SEPA</Cd>
|
||
</SvcLvl>
|
||
</PmtTpInf>
|
||
<ReqdExctnDt>
|
||
<xsl:value-of
|
||
select="format-dateTime($now, '[Y0001]-[M01]-[D01]')" />
|
||
</ReqdExctnDt>
|
||
<Dbtr>
|
||
<Nm>
|
||
<xsl:value-of
|
||
select="$exportWorkitem/item[@name='dbtr.name']/value" />
|
||
</Nm>
|
||
</Dbtr>
|
||
<DbtrAcct>
|
||
<Id>
|
||
<IBAN>
|
||
<xsl:value-of
|
||
select="replace($exportWorkitem/item[@name='dbtr.iban']/value, ' ', '')" />
|
||
</IBAN>
|
||
</Id>
|
||
</DbtrAcct>
|
||
<DbtrAgt>
|
||
<FinInstnId>
|
||
<BICFI>
|
||
<xsl:value-of
|
||
select="replace($exportWorkitem/item[@name='dbtr.bic']/value, ' ', '')" />
|
||
</BICFI>
|
||
</FinInstnId>
|
||
</DbtrAgt>
|
||
<!--
|
||
SHAR – Charges are shared between debtor and creditor
|
||
SLEV – Charges are handled according to service level
|
||
-->
|
||
<ChrgBr>SHAR</ChrgBr>
|
||
<!-- generate CdtTrfTxInf for each invoice -->
|
||
<xsl:apply-templates
|
||
select="/data/document[starts-with(normalize-space(item[@name =
|
||
'$modelversion']/value),'rechnungseingang')]" />
|
||
</PmtInf>
|
||
</CstmrCdtTrfInitn>
|
||
</Document>
|
||
</xsl:template>
|
||
|
||
|
||
<!-- This template builds sepa header info -->
|
||
<xsl:template
|
||
match="/data/document[normalize-space(item[@name = '$workflowgroup']/value) =
|
||
'SEPA-Export']">
|
||
<!-- not in use -->
|
||
</xsl:template>
|
||
|
||
|
||
<!-- This template builds sepa payment info for each invoice -->
|
||
<xsl:template
|
||
match="/data/document[starts-with(normalize-space(item[@name =
|
||
'$modelversion']/value),'rechnungseingang')]">
|
||
|
||
<!-- round to 2 digits - geht nur mit sum funktion -->
|
||
<xsl:variable
|
||
name="wert1"
|
||
select="xs:decimal(sum(item[@name='invoice.total']/value))" />
|
||
<xsl:variable name="wert2"
|
||
select="xs:decimal(round-half-to-even($wert1,2))" />
|
||
<CdtTrfTxInf
|
||
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03">
|
||
<PmtId>
|
||
<EndToEndId>NOTPROVIDED</EndToEndId>
|
||
</PmtId>
|
||
<Amt>
|
||
<InstdAmt>
|
||
<xsl:attribute name="Ccy"><xsl:value-of
|
||
select="item[@name='invoice.currency']/value" /></xsl:attribute>
|
||
<!-- round to 2 digits -->
|
||
<xsl:value-of select="$wert2" />
|
||
</InstdAmt>
|
||
</Amt>
|
||
<CdtrAgt>
|
||
<FinInstnId>
|
||
<BICFI>
|
||
<xsl:value-of select="replace(item[@name='cdtr.bic']/value, ' ', '')" />
|
||
</BICFI>
|
||
</FinInstnId>
|
||
</CdtrAgt>
|
||
<Cdtr>
|
||
<!-- MAX70 -->
|
||
<Nm>
|
||
<xsl:value-of select="substring(item[@name='cdtr.name']/value, 1, 70)" />
|
||
</Nm>
|
||
</Cdtr>
|
||
<CdtrAcct>
|
||
<Id>
|
||
<IBAN>
|
||
<xsl:value-of select="replace(item[@name='cdtr.iban']/value, ' ', '')" />
|
||
</IBAN>
|
||
</Id>
|
||
</CdtrAcct>
|
||
<RmtInf>
|
||
<!-- Max140Text -->
|
||
<Ustrd>
|
||
<xsl:choose>
|
||
<xsl:when test="string-length(item[@name='numsequencenumber']/value) > 0">
|
||
<!-- neues format buchungsnummer / rechn.nr -->
|
||
<xsl:value-of
|
||
select="item[@name='numsequencenumber']/value" /><xsl:text> /
|
||
</xsl:text><xsl:value-of
|
||
select="item[@name='invoice.number']/value" />
|
||
</xsl:when>
|
||
<xsl:otherwise>
|
||
<!-- fallback -->
|
||
<xsl:value-of
|
||
select="substring(item[@name='$workflowsummary']/value, 1, 140)" />
|
||
</xsl:otherwise>
|
||
</xsl:choose>
|
||
</Ustrd>
|
||
</RmtInf>
|
||
</CdtTrfTxInf>
|
||
|
||
</xsl:template>
|
||
|
||
</xsl:stylesheet></value>
|
||
</item>
|
||
<item name="xslresource">
|
||
<value xsi:type="xs:string">/office-alexander-logistics/reports/sepa/sepa-2.0.5.xsl</value>
|
||
</item>
|
||
</document> |