office-alexander-logistics/reports/sepa/sepa-2.0.8-pl.imixs-report
2024-06-27 15:33:49 +02:00

196 lines
13 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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-06-27T14:48:59.260+02: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-1719492539265</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">7</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">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;&#13;
&lt;xsl:stylesheet&#13;
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&#13;
xmlns:xs="http://www.w3.org/2001/XMLSchema"&#13;
version="2.0"&gt;&#13;
&lt;xsl:strip-space elements="*" /&gt;&#13;
&lt;xsl:output method="xml" indent="yes" encoding="UTF-8" standalone="yes" /&gt;&#13;
&#13;
&lt;xsl:template match="/"&gt;&#13;
&lt;xsl:variable name="now" select="current-dateTime()" /&gt;&#13;
&#13;
&lt;Document&#13;
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"&#13;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&#13;
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd"&gt;&#13;
&lt;CstmrCdtTrfInitn&gt;&#13;
&#13;
&lt;!-- generate header info --&gt;&#13;
&lt;!-- compute count of invoices --&gt;&#13;
&lt;xsl:variable name="count"&#13;
select="count(/data/document[starts-with(normalize-space(item[@name = '$modelversion']/value),'rechnungseingang')]/item[@name='$uniqueid']/value)" /&gt;&#13;
&lt;!-- compute total amount --&gt;&#13;
&lt;xsl:variable name="totalsum"&#13;
select="xs:decimal(sum(/data/document[starts-with(normalize-space(item[@name = '$modelversion']/value),'rechnungseingang')]/item[@name='invoice.total']/value))" /&gt;&#13;
&lt;!-- round to 2 digits --&gt;&#13;
&lt;xsl:variable name="total"&#13;
select="format-number(xs:decimal(round-half-to-even($totalsum, 2)), '0.00')" /&gt;&#13;
&#13;
&lt;!-- shortcut for the sepa export document --&gt;&#13;
&lt;xsl:variable name="exportWorkitem"&#13;
select="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'SEPA-Export']" /&gt;&#13;
&#13;
&lt;GrpHdr&gt;&#13;
&lt;MsgId&gt;&#13;
&lt;xsl:value-of&#13;
select="replace($exportWorkitem/item[@name='$uniqueid']/value, '-', '')" /&gt;&#13;
&lt;/MsgId&gt;&#13;
&lt;CreDtTm&gt;&#13;
&lt;xsl:value-of&#13;
select="format-dateTime($now, '[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]')" /&gt;&#13;
&lt;/CreDtTm&gt;&#13;
&lt;NbOfTxs&gt;&#13;
&lt;xsl:value-of select="$count" /&gt;&#13;
&lt;/NbOfTxs&gt;&#13;
&lt;CtrlSum&gt;&#13;
&lt;!-- round to 2 digits --&gt;&#13;
&lt;xsl:value-of select="$total" /&gt;&#13;
&lt;/CtrlSum&gt;&#13;
&lt;InitgPty&gt;&#13;
&lt;Nm&gt;&#13;
&lt;xsl:value-of&#13;
select="$exportWorkitem/item[@name='dbtr.name']/value" /&gt;&#13;
&lt;/Nm&gt;&#13;
&lt;/InitgPty&gt;&#13;
&lt;/GrpHdr&gt;&#13;
&#13;
&lt;PmtInf&gt;&#13;
&lt;PmtInfId&gt;&#13;
&lt;xsl:value-of&#13;
select="replace($exportWorkitem/item[@name='$uniqueid']/value, '-', '')" /&gt;&#13;
&lt;xsl:text&gt;-1&lt;/xsl:text&gt;&#13;
&lt;/PmtInfId&gt;&#13;
&lt;PmtMtd&gt;TRF&lt;/PmtMtd&gt;&#13;
&lt;NbOfTxs&gt;&#13;
&lt;xsl:value-of select="$count" /&gt;&#13;
&lt;/NbOfTxs&gt;&#13;
&lt;CtrlSum&gt;&#13;
&lt;!-- round to 2 digits --&gt;&#13;
&lt;xsl:value-of select="$total" /&gt;&#13;
&lt;/CtrlSum&gt;&#13;
&lt;PmtTpInf&gt;&#13;
&lt;SvcLvl&gt;&#13;
&lt;Cd&gt;SEPA&lt;/Cd&gt;&#13;
&lt;/SvcLvl&gt;&#13;
&lt;/PmtTpInf&gt;&#13;
&lt;ReqdExctnDt&gt;&#13;
&lt;xsl:value-of&#13;
select="format-dateTime($now, '[Y0001]-[M01]-[D01]')" /&gt;&#13;
&lt;/ReqdExctnDt&gt;&#13;
&lt;Dbtr&gt;&#13;
&lt;Nm&gt;&#13;
&lt;xsl:value-of&#13;
select="$exportWorkitem/item[@name='dbtr.name']/value" /&gt;&#13;
&lt;/Nm&gt;&#13;
&lt;/Dbtr&gt;&#13;
&lt;DbtrAcct&gt;&#13;
&lt;Id&gt;&#13;
&lt;IBAN&gt;&#13;
&lt;xsl:value-of&#13;
select="replace($exportWorkitem/item[@name='dbtr.iban']/value, ' ', '')" /&gt;&#13;
&lt;/IBAN&gt;&#13;
&lt;/Id&gt;&#13;
&lt;/DbtrAcct&gt;&#13;
&lt;DbtrAgt&gt;&#13;
&lt;FinInstnId&gt;&#13;
&lt;BIC&gt;&#13;
&lt;xsl:value-of&#13;
select="replace($exportWorkitem/item[@name='dbtr.bic']/value, ' ', '')" /&gt;&#13;
&lt;/BIC&gt;&#13;
&lt;/FinInstnId&gt;&#13;
&lt;/DbtrAgt&gt;&#13;
&lt;!-- &#13;
SHAR Charges are shared between debtor and creditor&#13;
SLEV Charges are handled according to service level&#13;
--&gt;&#13;
&lt;ChrgBr&gt;SHAR&lt;/ChrgBr&gt;&#13;
&lt;!-- generate CdtTrfTxInf for each invoice --&gt;&#13;
&lt;xsl:apply-templates&#13;
select="/data/document[starts-with(normalize-space(item[@name = '$modelversion']/value),'rechnungseingang')]" /&gt;&#13;
&lt;/PmtInf&gt;&#13;
&lt;/CstmrCdtTrfInitn&gt;&#13;
&lt;/Document&gt;&#13;
&lt;/xsl:template&gt;&#13;
&#13;
&#13;
&lt;!-- This template builds sepa header info --&gt;&#13;
&lt;xsl:template&#13;
match="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'SEPA-Export']"&gt;&#13;
&lt;!-- not in use --&gt;&#13;
&lt;/xsl:template&gt;&#13;
&#13;
&#13;
&lt;!-- This template builds sepa payment info for each invoice --&gt;&#13;
&lt;xsl:template&#13;
match="/data/document[starts-with(normalize-space(item[@name = '$modelversion']/value),'rechnungseingang')]"&gt;&#13;
&#13;
&lt;!-- round to 2 digits - geht nur mit sum funktion --&gt;&#13;
&lt;xsl:variable&#13;
name="wert2"&#13;
select="format-number(xs:decimal(round-half-to-even(item[@name='invoice.total']/value, 2)), '0.00')" /&gt;&#13;
&#13;
&lt;CdtTrfTxInf&#13;
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"&gt;&#13;
&lt;PmtId&gt;&#13;
&lt;EndToEndId&gt;NOTPROVIDED&lt;/EndToEndId&gt;&#13;
&lt;/PmtId&gt;&#13;
&lt;Amt&gt;&#13;
&lt;InstdAmt&gt;&#13;
&lt;xsl:attribute name="Ccy"&gt;&lt;xsl:value-of&#13;
select="item[@name='invoice.currency']/value" /&gt;&lt;/xsl:attribute&gt;&#13;
&lt;!-- round to 2 digits --&gt;&#13;
&lt;xsl:value-of select="$wert2" /&gt;&#13;
&lt;/InstdAmt&gt;&#13;
&lt;/Amt&gt;&#13;
&lt;CdtrAgt&gt;&#13;
&lt;FinInstnId&gt;&#13;
&lt;BIC&gt;&#13;
&lt;xsl:value-of select="replace(item[@name='cdtr.bic']/value, ' ', '')" /&gt;&#13;
&lt;/BIC&gt;&#13;
&lt;/FinInstnId&gt;&#13;
&lt;/CdtrAgt&gt;&#13;
&lt;Cdtr&gt;&#13;
&lt;!-- MAX70 --&gt;&#13;
&lt;Nm&gt;&#13;
&lt;!-- &lt;xsl:value-of select="substring(item[@name='cdtr.name']/value, 1, 70)" /&gt; --&gt;&#13;
&lt;!-- entfernen der non ascii zeichen &#13;
&lt;xsl:value-of&#13;
select="substring(replace(item[@name='cdtr.name']/value, '\P{IsBasicLatin}', ''), 1, 70)" /&gt;&#13;
--&gt;&#13;
&#13;
&lt;xsl:value-of&#13;
select="substring(translate(&#13;
normalize-space(item[@name='cdtr.name']/value),&#13;
translate(item[@name='cdtr.name']/value, 'ABCDEFGHIJKLMNOPQRSTUVWXYZĄĆĘŁÓŚŹŻŃabcdefghijklmnopqrstuvwxyząćęłóśźżń0123456789 /-?:().,''+''{}.', ''),''), 1, 70)" /&gt;&#13;
&lt;/Nm&gt;&#13;
&lt;/Cdtr&gt;&#13;
&lt;CdtrAcct&gt;&#13;
&lt;Id&gt;&#13;
&lt;IBAN&gt;&#13;
&lt;xsl:value-of select="replace(item[@name='cdtr.iban']/value, ' ', '')" /&gt;&#13;
&lt;/IBAN&gt;&#13;
&lt;/Id&gt;&#13;
&lt;/CdtrAcct&gt;&#13;
&lt;RmtInf&gt;&#13;
&lt;!-- Max140Text --&gt;&#13;
&lt;Ustrd&gt;&#13;
&lt;xsl:choose&gt;&#13;
&lt;xsl:when test="string-length(item[@name='numsequencenumber']/value) &gt; 0"&gt;&#13;
&lt;!-- neues format buchungsnummer / rechn.nr --&gt;&#13;
&lt;xsl:value-of&#13;
select="item[@name='numsequencenumber']/value" /&gt;&lt;xsl:text&gt; / &lt;/xsl:text&gt;&lt;xsl:value-of&#13;
select="item[@name='invoice.number']/value" /&gt;&#13;
&lt;/xsl:when&gt;&#13;
&lt;xsl:otherwise&gt;&#13;
&lt;!-- fallback --&gt;&#13;
&lt;xsl:value-of&#13;
select="substring(item[@name='$workflowsummary']/value, 1, 140)" /&gt;&#13;
&lt;/xsl:otherwise&gt;&#13;
&lt;/xsl:choose&gt;&#13;
&lt;/Ustrd&gt;&#13;
&lt;/RmtInf&gt;&#13;
&lt;/CdtTrfTxInf&gt;&#13;
&#13;
&lt;/xsl:template&gt;&#13;
&#13;
&lt;/xsl:stylesheet&gt;</value></item><item name="xslresource"><value xsi:type="xs:string">/office-alexander-logistics/reports/sepa/sepa-2.0.5.xsl</value></item></document>