diff --git a/reports/sepa/sepa-2.0.10.imixs-report b/reports/sepa/sepa-2.0.10.imixs-report
new file mode 100644
index 0000000..011992f
--- /dev/null
+++ b/reports/sepa/sepa-2.0.10.imixs-report
@@ -0,0 +1,171 @@
+- 2020-11-23T18:53:40.409+01:00
- 0
- true
- 2025-09-01T08:41:56.073+02:00
- 1
- c1eb4285-abe2-4ee4-983c-49fede520956-1756708916076
- c1eb4285-abe2-4ee4-983c-49fede520956
- 12
- $uniqueid$modelversion$workflowgroup$taskid$workflowsummaryinvoice.numberinvoice.dateinvoice.totalinvoice.currencycdtr.namecdtr.ibancdtr.bicdbtr.namedbtr.ibandbtr.bicpayment.typenumsequencenumber
- UTF-8
- SEPA export executed by the SepaScheduler. See the XSL definition for details.
- sepa
- type:"workitem" AND $taskid:5500
- ReportEntity
- <?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.003.03"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 pain.001.003.03.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>
+ <BIC>
+ <xsl:value-of
+ select="replace($exportWorkitem/item[@name='dbtr.bic']/value, ' ', '')" />
+ </BIC>
+ </FinInstnId>
+ </DbtrAgt>
+ <ChrgBr>SLEV</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>
+ <BIC>
+ <xsl:value-of select="replace(item[@name='cdtr.bic']/value, ' ', '')" />
+ </BIC>
+ </FinInstnId>
+ </CdtrAgt>
+ <Cdtr>
+ <!-- MAX70 -->
+ <!-- Aenderung 1.Sep 2025 - Name wird aus BPartner Interface genommen
+ partner.name if available -->
+ <Nm>
+ <xsl:choose>
+ <xsl:when test="string-length(item[@name='partner.name']/value) > 0">
+ <xsl:value-of
+ select="substring(item[@name='partner.name']/value, 1, 70)" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring(item[@name='cdtr.name']/value, 1, 70)" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </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='sequencenumber']/value) > 0">
+ <!-- neues format buchungsnummer / rechn.nr -->
+ <xsl:value-of
+ select="item[@name='sequencenumber']/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>
- /office-alexander-logistics/reports/sepa/sepa-2.0.5.xsl
\ No newline at end of file
diff --git a/reports/sepa/sepa-prod.xsl b/reports/sepa/sepa-2.0.10.xsl
similarity index 73%
rename from reports/sepa/sepa-prod.xsl
rename to reports/sepa/sepa-2.0.10.xsl
index 85a664f..5e7a9ee 100644
--- a/reports/sepa/sepa-prod.xsl
+++ b/reports/sepa/sepa-2.0.10.xsl
@@ -4,19 +4,22 @@
-
+
-
+
+
+
+ select="count(/data/document[starts-with(normalize-space(item[@name = '$modelversion']/value),'rechnungseingang')]/item[@name='$uniqueid']/value)" />
+
-
+ select="xs:decimal(sum(/data/document[starts-with(normalize-space(item[@name = '$modelversion']/value),'rechnungseingang')]/item[@name='invoice.total']/value))" />
+
+
+
@@ -31,7 +34,8 @@
-
+
+
@@ -50,7 +54,8 @@
-
+
+
@@ -82,7 +87,8 @@
- SLEV
+ SLEV
+
@@ -91,13 +97,13 @@
+ match="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'SEPA-Export']">
+
+
@@ -107,8 +113,8 @@
+ select="item[@name='invoice.currency']/value" />
+
@@ -119,9 +125,20 @@
-
+
+
+
-
+
+
+
+
+
+
+
+
@@ -131,15 +148,19 @@
-
+
+
- /
+
+ /
-
+
+