details: https://code.tryton.org/tryton/commit/3071cd12c748
branch: 7.6
user: Cédric Krier <[email protected]>
date: Sun Feb 01 19:01:49 2026 +0100
description:
Use amount from transaction details when available
A batched transaction may have many details and amounts that are
grouped as the
entry amount.
Closes #13823
(grafted from ed04c2b28dce1439020b014ea47277dcb4aa22be)
diffstat:
modules/account_statement_sepa/account.py | 11 +++++++----
modules/account_statement_sepa/tests/camt.053.001.02.xml | 5 +++++
2 files changed, 12 insertions(+), 4 deletions(-)
diffs (43 lines):
diff -r d8564a964457 -r 3071cd12c748 modules/account_statement_sepa/account.py
--- a/modules/account_statement_sepa/account.py Fri Feb 06 15:32:39 2026 +0100
+++ b/modules/account_statement_sepa/account.py Sun Feb 01 19:01:49 2026 +0100
@@ -72,9 +72,12 @@
statement.total_amount = self.camt_statement_total(camt_statement)
return statement
- def _camt_amount(self, node):
- amount = Decimal(node.findtext('./{*}Amt'))
- if node.findtext('./{*}CdtDbtInd') == 'DBIT':
+ def _camt_amount(self, entry, detail=None):
+ if detail is not None:
+ amount = Decimal(detail.findtext('./{*}AmtDtls/{*}TxAmt/{*}Amt'))
+ else:
+ amount = Decimal(entry.findtext('./{*}Amt'))
+ if entry.findtext('./{*}CdtDbtInd') == 'DBIT':
amount *= -1
return amount
@@ -145,7 +148,7 @@
elif booking_date.find('./{*}DtTm') is not None:
origin.date = dt.date.fromisoformat(
booking_date.findtext('./{*}DtTm')).date()
- origin.amount = self._camt_amount(entry)
+ origin.amount = self._camt_amount(entry, detail)
origin.description = self.camt_description(camt_statement, entry)
if detail is not None:
origin.party = self.camt_party(camt_statement, entry, detail)
diff -r d8564a964457 -r 3071cd12c748
modules/account_statement_sepa/tests/camt.053.001.02.xml
--- a/modules/account_statement_sepa/tests/camt.053.001.02.xml Fri Feb 06
15:32:39 2026 +0100
+++ b/modules/account_statement_sepa/tests/camt.053.001.02.xml Sun Feb 01
19:01:49 2026 +0100
@@ -109,6 +109,11 @@
</BkTxCd>
<NtryDtls>
<TxDtls>
+ <AmtDtls>
+ <TxAmt>
+ <Amt Ccy="EUR">100.00</Amt>
+ </TxAmt>
+ </AmtDtls>
<RltdPties>
<Cdtr>
<Pty>