office-alexander-logistics/reports/sepa/sepa-2.0.10.imixs-report

171 lines
No EOL
15 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"><item name="$created"><value xsi:type="xs:dateTime">2020-11-23T18:53:40.409+01:00</value></item><item name="$file"><value xsi:nil="true"/></item><item name="$file.count"><value xsi:type="xs:int">0</value></item><item name="$file.names"><value xsi:nil="true"/></item><item name="$isauthor"><value xsi:type="xs:boolean">true</value></item><item name="$modified"><value xsi:type="xs:dateTime">2025-09-01T08:41:56.073+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">c1eb4285-abe2-4ee4-983c-49fede520956-1756708916076</value></item><item name="$uniqueid"><value xsi:type="xs:string">c1eb4285-abe2-4ee4-983c-49fede520956</value></item><item name="$version"><value xsi:type="xs:int">12</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 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&#13;
xmlns:xs="http://www.w3.org/2001/XMLSchema" 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;
&lt;xsl:template match="/"&gt;&#13;
&lt;xsl:variable name="now" select="current-dateTime()" /&gt; &#13;
&lt;Document&#13;
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"&#13;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&#13;
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 pain.001.003.03.xsd"&gt;&#13;
&lt;CstmrCdtTrfInitn&gt;&#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" select="xs:decimal(round-half-to-even($totalsum, 2))" /&gt;&#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;
&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 select="$exportWorkitem/item[@name='dbtr.name']/value" /&gt;&#13;
&lt;/Nm&gt;&#13;
&lt;/InitgPty&gt;&#13;
&lt;/GrpHdr&gt;&#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 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 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;ChrgBr&gt;SLEV&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; &lt;!--&#13;
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; &lt;!--&#13;
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;
&lt;!-- round to 2 digits - geht nur mit sum funktion --&gt; &lt;xsl:variable&#13;
name="wert1" select="xs:decimal(sum(item[@name='invoice.total']/value))" /&gt; &lt;xsl:variable&#13;
name="wert2" select="xs:decimal(round-half-to-even($wert1,2))" /&gt; &lt;CdtTrfTxInf&#13;
xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.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;!-- Aenderung 1.Sep 2025 - Name wird aus BPartner Interface genommen&#13;
partner.name if available --&gt;&#13;
&lt;Nm&gt;&#13;
&lt;xsl:choose&gt;&#13;
&lt;xsl:when test="string-length(item[@name='partner.name']/value) &gt; 0"&gt;&#13;
&lt;xsl:value-of&#13;
select="substring(item[@name='partner.name']/value, 1, 70)" /&gt;&#13;
&lt;/xsl:when&gt;&#13;
&lt;xsl:otherwise&gt;&#13;
&lt;xsl:value-of select="substring(item[@name='cdtr.name']/value, 1, 70)" /&gt;&#13;
&lt;/xsl:otherwise&gt;&#13;
&lt;/xsl:choose&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='sequencenumber']/value) &gt; 0"&gt;&#13;
&lt;!-- neues format buchungsnummer / rechn.nr --&gt; &#13;
&lt;xsl:value-of&#13;
select="item[@name='sequencenumber']/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;
&lt;/xsl:template&gt;&#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>