From 63932d5f5c6921d537fd80a661ca4a4279900c58 Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Mon, 5 Feb 2024 18:56:17 +0100 Subject: [PATCH] [IMP] account_statement_import_camt: multi account support The module account_statement_import_file supports handling files containing informations related to multiple accounts, but this was not taken advantage of by account_statement_import_camt. We update the structure returned by parser.parse() to use the expected format in case of multiple accounts encountered in CAMT file. This has the side effect of fixing a bug in the previous implementation, when all the transactions in a CAMT file would be parsed as being on the same account (the one on the last statement found in the file), and possibly even more wrong, in the currency of the last statement). --- .../models/account_statement_import.py | 14 +- .../models/parser.py | 10 +- .../test_files/golden-camt053-no-ntry.pydata | 2 +- .../test_files/golden-camt053-txdtls.pydata | 88 ++++----- .../test_files/golden-camt053.pydata | 170 +++++++++--------- .../test_files/golden-camt054.pydata | 52 +++--- account_statement_import_camt54/README.rst | 3 +- .../readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 4 +- 9 files changed, 175 insertions(+), 169 deletions(-) diff --git a/account_statement_import_camt/models/account_statement_import.py b/account_statement_import_camt/models/account_statement_import.py index bbb40208c..09c93f040 100644 --- a/account_statement_import_camt/models/account_statement_import.py +++ b/account_statement_import_camt/models/account_statement_import.py @@ -21,15 +21,13 @@ def _parse_file(self, data_file): except ValueError: try: with zipfile.ZipFile(BytesIO(data_file)) as data: - currency = None - account_number = None - transactions = [] + result = [] for member in data.namelist(): - currency, account_number, new = self._parse_file( - data.open(member).read() - ) - transactions.extend(new) - return currency, account_number, transactions + res = self._parse_file(data.open(member).read()) + if isinstance(res, tuple): + res = [res] + result += res + return result # pylint: disable=except-pass except (zipfile.BadZipFile, ValueError): pass diff --git a/account_statement_import_camt/models/parser.py b/account_statement_import_camt/models/parser.py index 15b526739..dca2a3828 100644 --- a/account_statement_import_camt/models/parser.py +++ b/account_statement_import_camt/models/parser.py @@ -3,6 +3,7 @@ # Copyright 2017 Open Net Sàrl # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). import re +from collections import defaultdict from lxml import etree @@ -444,7 +445,7 @@ def parse(self, data): raise ValueError("Not a valid xml file, or not an xml file at all.") ns = root.tag[1 : root.tag.index("}")] self.check_version(ns, root) - statements = [] + statements = defaultdict(list) currency = None account_number = None for node in root[0][1:]: @@ -454,5 +455,8 @@ def parse(self, data): currency = statement.pop("currency") if "account_number" in statement: account_number = statement.pop("account_number") - statements.append(statement) - return currency, account_number, statements + statements[(currency, account_number)].append(statement) + return [ + (currency, account_number, statement_list) + for (currency, account_number), statement_list in statements.items() + ] diff --git a/account_statement_import_camt/test_files/golden-camt053-no-ntry.pydata b/account_statement_import_camt/test_files/golden-camt053-no-ntry.pydata index ca89faa50..fe51488c7 100644 --- a/account_statement_import_camt/test_files/golden-camt053-no-ntry.pydata +++ b/account_statement_import_camt/test_files/golden-camt053-no-ntry.pydata @@ -1 +1 @@ -(None, None, []) +[] diff --git a/account_statement_import_camt/test_files/golden-camt053-txdtls.pydata b/account_statement_import_camt/test_files/golden-camt053-txdtls.pydata index ed46eb922..4ff87ba9e 100644 --- a/account_statement_import_camt/test_files/golden-camt053-txdtls.pydata +++ b/account_statement_import_camt/test_files/golden-camt053-txdtls.pydata @@ -1,44 +1,44 @@ -('CHF', - 'CH1111000000123456789', - [{'balance_end_real': 79443.15, - 'balance_start': 75960.15, - 'date': '2017-03-22', - 'name': '20170323123456789012345', - 'transactions': [{'account_number': 'CH2222000000123456789', - 'amount': 2187.0, - 'date': '2017-03-22', - 'narration': 'Partner Name (RltdPties/Nm): Banque Cantonale Vaudoise\n' - 'Partner Account Number (RltdPties/Acct): CH2222000000123456789\n' - 'Transaction Date (BookgDt): 2017-03-22\n' - 'Reference: 302388292000011111111111111\n' - 'Communication: \n' - 'Transaction Type (BkTxCd): PMNT-RCDT-VCOM\n' - 'Additional Entry Information (AddtlNtryInf): CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: ' - '123456CHCAFEBABE\n' - 'Reversal Indicator (RvslInd): false\n' - 'Structured Reference (RmtInf/Strd/CdtrRefInf/Ref): 302388292000011111111111111\n' - 'Account Servicer Reference (Refs/AcctSvcrRef): 123456CHCAFEBABE\n' - 'Postal Address (PstlAdr): Place Saint-François | 14 | 1003 | Lausanne | CH1', - 'partner_name': 'Banque Cantonale Vaudoise', - 'payment_ref': '/', - 'ref': '302388292000011111111111111', - 'transaction_type': 'PMNT-RCDT-VCOM'}, - {'account_number': 'CH3333000000123456789', - 'amount': 1296.0, - 'date': '2017-03-22', - 'narration': 'Partner Name (RltdPties/Nm): Banque Cantonale Vaudoise\n' - 'Partner Account Number (RltdPties/Acct): CH3333000000123456789\n' - 'Transaction Date (BookgDt): 2017-03-22\n' - 'Reference: 302388292000022222222222222\n' - 'Communication: \n' - 'Transaction Type (BkTxCd): PMNT-RCDT-VCOM\n' - 'Additional Entry Information (AddtlNtryInf): CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ID: ' - '123456CHCAFEBABE\n' - 'Reversal Indicator (RvslInd): false\n' - 'Structured Reference (RmtInf/Strd/CdtrRefInf/Ref): 302388292000022222222222222\n' - 'Account Servicer Reference (Refs/AcctSvcrRef): 123456CHCAFEBABE\n' - 'Postal Address (PstlAdr): Place Saint-François | 14 | 1003 | Lausanne | CH2', - 'partner_name': 'Banque Cantonale Vaudoise', - 'payment_ref': '/', - 'ref': '302388292000022222222222222', - 'transaction_type': 'PMNT-RCDT-VCOM'}]}]) +[('CHF', + 'CH1111000000123456789', + [{'balance_end_real': 79443.15, + 'balance_start': 75960.15, + 'date': '2017-03-22', + 'name': '20170323123456789012345', + 'transactions': [{'account_number': 'CH2222000000123456789', + 'amount': 2187.0, + 'date': '2017-03-22', + 'narration': 'Partner Name (RltdPties/Nm): Banque Cantonale Vaudoise\n' + 'Partner Account Number (RltdPties/Acct): CH2222000000123456789\n' + 'Transaction Date (BookgDt): 2017-03-22\n' + 'Reference: 302388292000011111111111111\n' + 'Communication: \n' + 'Transaction Type (BkTxCd): PMNT-RCDT-VCOM\n' + 'Additional Entry Information (AddtlNtryInf): CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ' + 'ID: 123456CHCAFEBABE\n' + 'Reversal Indicator (RvslInd): false\n' + 'Structured Reference (RmtInf/Strd/CdtrRefInf/Ref): 302388292000011111111111111\n' + 'Account Servicer Reference (Refs/AcctSvcrRef): 123456CHCAFEBABE\n' + 'Postal Address (PstlAdr): Place Saint-François | 14 | 1003 | Lausanne | CH1', + 'partner_name': 'Banque Cantonale Vaudoise', + 'payment_ref': '/', + 'ref': '302388292000011111111111111', + 'transaction_type': 'PMNT-RCDT-VCOM'}, + {'account_number': 'CH3333000000123456789', + 'amount': 1296.0, + 'date': '2017-03-22', + 'narration': 'Partner Name (RltdPties/Nm): Banque Cantonale Vaudoise\n' + 'Partner Account Number (RltdPties/Acct): CH3333000000123456789\n' + 'Transaction Date (BookgDt): 2017-03-22\n' + 'Reference: 302388292000022222222222222\n' + 'Communication: \n' + 'Transaction Type (BkTxCd): PMNT-RCDT-VCOM\n' + 'Additional Entry Information (AddtlNtryInf): CRÉDIT GROUPÉ BVR TRAITEMENT DU 22.03.2017 NUMÉRO CLIENT 01-70884-3 PAQUET ' + 'ID: 123456CHCAFEBABE\n' + 'Reversal Indicator (RvslInd): false\n' + 'Structured Reference (RmtInf/Strd/CdtrRefInf/Ref): 302388292000022222222222222\n' + 'Account Servicer Reference (Refs/AcctSvcrRef): 123456CHCAFEBABE\n' + 'Postal Address (PstlAdr): Place Saint-François | 14 | 1003 | Lausanne | CH2', + 'partner_name': 'Banque Cantonale Vaudoise', + 'payment_ref': '/', + 'ref': '302388292000022222222222222', + 'transaction_type': 'PMNT-RCDT-VCOM'}]}])] diff --git a/account_statement_import_camt/test_files/golden-camt053.pydata b/account_statement_import_camt/test_files/golden-camt053.pydata index 4124b70fa..636d41a69 100644 --- a/account_statement_import_camt/test_files/golden-camt053.pydata +++ b/account_statement_import_camt/test_files/golden-camt053.pydata @@ -1,85 +1,85 @@ -('EUR', - 'NL77ABNA0574908765', - [{'balance_end_real': 15121.12, - 'balance_start': 15568.27, - 'date': '2014-01-05', - 'name': '1234Test/1', - 'transactions': [{'account_number': 'NL46ABNA0499998748', - 'amount': -754.25, - 'date': '2014-01-05', - 'narration': 'Partner Name (RltdPties/Nm): INSURANCE COMPANY TESTX\n' - 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' - 'Transaction Date (BookgDt): 2014-01-05\n' - 'Reference: 435005714488-ABNO33052620\n' - 'Communication: \n' - 'Transaction Type (BkTxCd): PMNT-RDDT-ESDD\n' - 'Unstructured Reference (RmtInf/Ustrd): Insurance policy 857239PERIOD 01.01.2014 - 31.12.2014\n' - 'Additional Transaction Information (AddtlTxInf): MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014\n' - 'End To End Id (Refs/EndToEndId): 435005714488-ABNO33052620\n' - 'Instructed Id (Refs/InstrId): INNDNL2U20141231000142300002844\n' - 'Postal Address (PstlAdr): TEST STREET 20 | 1234 AB TESTCITY | NL', - 'partner_name': 'INSURANCE COMPANY TESTX', - 'payment_ref': 'MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014', - 'ref': '435005714488-ABNO33052620', - 'transaction_type': 'PMNT-RDDT-ESDD'}, - {'account_number': 'NL46ABNA0499998748', - 'amount': -564.05, - 'date': '2014-01-05', - 'narration': 'Partner Name (RltdPties/Nm): Test Customer\n' - 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' - 'Transaction Date (BookgDt): 2014-01-05\n' - 'Reference: TESTBANK/NL/20141229/01206408\n' - 'Communication: \n' - 'Transaction Type (BkTxCd): PMNT-IDDT-UPDD\n' - 'Reversal Indicator (RvslInd): true\n' - 'Unstructured Reference (RmtInf/Ustrd): Direct Debit S14 0410\n' - 'Additional Transaction Information (AddtlTxInf): Direct debit S14 0410 AC07 Rek.nummer blokkade ' - 'TESTBANK/NL/20141229/01206408\n' - 'Return Reason Code (RtrInf/Rsn/Cd): AC06\n' - 'Return Reason Code (Proprietary) (RtrInf/Rsn/Prtry): AC06\n' - 'End To End Id (Refs/EndToEndId): TESTBANK/NL/20141229/01206408\n' - 'Instructed Id (Refs/InstrId): TESTBANK/NL/20141229/01206408\n' - 'Postal Address (PstlAdr): NL', - 'partner_name': 'Test Customer', - 'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408', - 'ref': 'TESTBANK/NL/20141229/01206408', - 'transaction_type': 'PMNT-IDDT-UPDD'}, - {'account_number': 'NL46ABNA0499998748', - 'amount': -100.0, - 'date': '2014-01-05', - 'narration': 'Partner Name (RltdPties/Nm): Test Customer\n' - 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' - 'Transaction Date (BookgDt): 2014-01-05\n' - 'Reference: TESTBANK/NL/20141229/01206407\n' - 'Communication: \n' - 'Transaction Type (BkTxCd): PMNT-IDDT-UPDD\n' - 'Reversal Indicator (RvslInd): true\n' - 'Unstructured Reference (RmtInf/Ustrd): Direct Debit S14 0410\n' - 'Additional Transaction Information (AddtlTxInf): Direct debit S14 0410 AC07 Rek.nummer blokkade ' - 'TESTBANK/NL/20141229/01206408\n' - 'Return Reason Code (RtrInf/Rsn/Cd): AC06\n' - 'Return Reason Code (Proprietary) (RtrInf/Rsn/Prtry): AC06\n' - 'End To End Id (Refs/EndToEndId): TESTBANK/NL/20141229/01206407\n' - 'Instructed Id (Refs/InstrId): TESTBANK/NL/20141229/01206407\n' - 'Postal Address (PstlAdr): NL', - 'partner_name': 'Test Customer', - 'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408', - 'ref': 'TESTBANK/NL/20141229/01206407', - 'transaction_type': 'PMNT-IDDT-UPDD'}, - {'account_number': 'NL69ABNA0522123643', - 'amount': 1405.31, - 'date': '2014-01-05', - 'narration': 'Partner Name (RltdPties/Nm): 3rd party Media\n' - 'Partner Account Number (RltdPties/Acct): NL69ABNA0522123643\n' - 'Transaction Date (BookgDt): 2014-01-05\n' - 'Reference: 115\n' - 'Communication: \n' - 'Transaction Type (BkTxCd): PMNT-RCDT-ESCT\n' - 'Additional Transaction Information (AddtlTxInf): #RD PARTY MEDIA CUSNO 90782 4210773\n' - 'End To End Id (Refs/EndToEndId): 115\n' - 'Instructed Id (Refs/InstrId): INNDNL2U20140105000217200000708\n' - 'Postal Address (PstlAdr): SOMESTREET 570-A | 1276 ML HOUSCITY | NL', - 'partner_name': '3rd party Media', - 'payment_ref': '#RD PARTY MEDIA CUSNO 90782 4210773', - 'ref': '115', - 'transaction_type': 'PMNT-RCDT-ESCT'}]}]) +[('EUR', + 'NL77ABNA0574908765', + [{'balance_end_real': 15121.12, + 'balance_start': 15568.27, + 'date': '2014-01-05', + 'name': '1234Test/1', + 'transactions': [{'account_number': 'NL46ABNA0499998748', + 'amount': -754.25, + 'date': '2014-01-05', + 'narration': 'Partner Name (RltdPties/Nm): INSURANCE COMPANY TESTX\n' + 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' + 'Transaction Date (BookgDt): 2014-01-05\n' + 'Reference: 435005714488-ABNO33052620\n' + 'Communication: \n' + 'Transaction Type (BkTxCd): PMNT-RDDT-ESDD\n' + 'Unstructured Reference (RmtInf/Ustrd): Insurance policy 857239PERIOD 01.01.2014 - 31.12.2014\n' + 'Additional Transaction Information (AddtlTxInf): MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014\n' + 'End To End Id (Refs/EndToEndId): 435005714488-ABNO33052620\n' + 'Instructed Id (Refs/InstrId): INNDNL2U20141231000142300002844\n' + 'Postal Address (PstlAdr): TEST STREET 20 | 1234 AB TESTCITY | NL', + 'partner_name': 'INSURANCE COMPANY TESTX', + 'payment_ref': 'MKB Insurance 859239PERIOD 01.01.2014 - 31.12.2014', + 'ref': '435005714488-ABNO33052620', + 'transaction_type': 'PMNT-RDDT-ESDD'}, + {'account_number': 'NL46ABNA0499998748', + 'amount': -564.05, + 'date': '2014-01-05', + 'narration': 'Partner Name (RltdPties/Nm): Test Customer\n' + 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' + 'Transaction Date (BookgDt): 2014-01-05\n' + 'Reference: TESTBANK/NL/20141229/01206408\n' + 'Communication: \n' + 'Transaction Type (BkTxCd): PMNT-IDDT-UPDD\n' + 'Reversal Indicator (RvslInd): true\n' + 'Unstructured Reference (RmtInf/Ustrd): Direct Debit S14 0410\n' + 'Additional Transaction Information (AddtlTxInf): Direct debit S14 0410 AC07 Rek.nummer blokkade ' + 'TESTBANK/NL/20141229/01206408\n' + 'Return Reason Code (RtrInf/Rsn/Cd): AC06\n' + 'Return Reason Code (Proprietary) (RtrInf/Rsn/Prtry): AC06\n' + 'End To End Id (Refs/EndToEndId): TESTBANK/NL/20141229/01206408\n' + 'Instructed Id (Refs/InstrId): TESTBANK/NL/20141229/01206408\n' + 'Postal Address (PstlAdr): NL', + 'partner_name': 'Test Customer', + 'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408', + 'ref': 'TESTBANK/NL/20141229/01206408', + 'transaction_type': 'PMNT-IDDT-UPDD'}, + {'account_number': 'NL46ABNA0499998748', + 'amount': -100.0, + 'date': '2014-01-05', + 'narration': 'Partner Name (RltdPties/Nm): Test Customer\n' + 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' + 'Transaction Date (BookgDt): 2014-01-05\n' + 'Reference: TESTBANK/NL/20141229/01206407\n' + 'Communication: \n' + 'Transaction Type (BkTxCd): PMNT-IDDT-UPDD\n' + 'Reversal Indicator (RvslInd): true\n' + 'Unstructured Reference (RmtInf/Ustrd): Direct Debit S14 0410\n' + 'Additional Transaction Information (AddtlTxInf): Direct debit S14 0410 AC07 Rek.nummer blokkade ' + 'TESTBANK/NL/20141229/01206408\n' + 'Return Reason Code (RtrInf/Rsn/Cd): AC06\n' + 'Return Reason Code (Proprietary) (RtrInf/Rsn/Prtry): AC06\n' + 'End To End Id (Refs/EndToEndId): TESTBANK/NL/20141229/01206407\n' + 'Instructed Id (Refs/InstrId): TESTBANK/NL/20141229/01206407\n' + 'Postal Address (PstlAdr): NL', + 'partner_name': 'Test Customer', + 'payment_ref': 'Direct debit S14 0410 AC07 Rek.nummer blokkade TESTBANK/NL/20141229/01206408', + 'ref': 'TESTBANK/NL/20141229/01206407', + 'transaction_type': 'PMNT-IDDT-UPDD'}, + {'account_number': 'NL69ABNA0522123643', + 'amount': 1405.31, + 'date': '2014-01-05', + 'narration': 'Partner Name (RltdPties/Nm): 3rd party Media\n' + 'Partner Account Number (RltdPties/Acct): NL69ABNA0522123643\n' + 'Transaction Date (BookgDt): 2014-01-05\n' + 'Reference: 115\n' + 'Communication: \n' + 'Transaction Type (BkTxCd): PMNT-RCDT-ESCT\n' + 'Additional Transaction Information (AddtlTxInf): #RD PARTY MEDIA CUSNO 90782 4210773\n' + 'End To End Id (Refs/EndToEndId): 115\n' + 'Instructed Id (Refs/InstrId): INNDNL2U20140105000217200000708\n' + 'Postal Address (PstlAdr): SOMESTREET 570-A | 1276 ML HOUSCITY | NL', + 'partner_name': '3rd party Media', + 'payment_ref': '#RD PARTY MEDIA CUSNO 90782 4210773', + 'ref': '115', + 'transaction_type': 'PMNT-RCDT-ESCT'}]}])] diff --git a/account_statement_import_camt/test_files/golden-camt054.pydata b/account_statement_import_camt/test_files/golden-camt054.pydata index 79e01712d..7b2b5019a 100644 --- a/account_statement_import_camt/test_files/golden-camt054.pydata +++ b/account_statement_import_camt/test_files/golden-camt054.pydata @@ -1,26 +1,26 @@ -('EUR', - 'NL77ABNA0574908765', - [{'balance_end_real': 0.0, - 'balance_start': 0.0, - 'date': '2022-01-26', - 'name': '20220120000000000000000', - 'transactions': [{'account_number': 'NL46ABNA0499998748', - 'amount': 5.0, - 'date': '2022-01-26', - 'narration': 'Partner Name (RltdPties/Nm): Test Customer\n' - 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' - 'Transaction Date (BookgDt): 2022-01-26\n' - 'Reference: 000000000000000000000000003\n' - 'Communication: \n' - 'Transaction Type (BkTxCd): PMNT-RCDT-VCOM\n' - 'Additional Entry Information (AddtlNtryInf): Additional entry info\n' - 'Reversal Indicator (RvslInd): false\n' - 'Structured Reference (RmtInf/Strd/CdtrRefInf/Ref): 000000000000000000000000003\n' - 'Account Servicer Reference (Refs/AcctSvcrRef): 15180015077602405\n' - 'End To End Id (Refs/EndToEndId): ENDTOENDID-01\n' - 'Instructed Id (Refs/InstrId): MIB InstrId305-312MM20211231v1\n' - 'Postal Address (PstlAdr): Test street 1 | 1234 AB Test city', - 'partner_name': 'Test Customer', - 'payment_ref': 'MIB InstrId305-312MM20211231v1', - 'ref': '000000000000000000000000003', - 'transaction_type': 'PMNT-RCDT-VCOM'}]}]) +[('EUR', + 'NL77ABNA0574908765', + [{'balance_end_real': 0.0, + 'balance_start': 0.0, + 'date': '2022-01-26', + 'name': '20220120000000000000000', + 'transactions': [{'account_number': 'NL46ABNA0499998748', + 'amount': 5.0, + 'date': '2022-01-26', + 'narration': 'Partner Name (RltdPties/Nm): Test Customer\n' + 'Partner Account Number (RltdPties/Acct): NL46ABNA0499998748\n' + 'Transaction Date (BookgDt): 2022-01-26\n' + 'Reference: 000000000000000000000000003\n' + 'Communication: \n' + 'Transaction Type (BkTxCd): PMNT-RCDT-VCOM\n' + 'Additional Entry Information (AddtlNtryInf): Additional entry info\n' + 'Reversal Indicator (RvslInd): false\n' + 'Structured Reference (RmtInf/Strd/CdtrRefInf/Ref): 000000000000000000000000003\n' + 'Account Servicer Reference (Refs/AcctSvcrRef): 15180015077602405\n' + 'End To End Id (Refs/EndToEndId): ENDTOENDID-01\n' + 'Instructed Id (Refs/InstrId): MIB InstrId305-312MM20211231v1\n' + 'Postal Address (PstlAdr): Test street 1 | 1234 AB Test city', + 'partner_name': 'Test Customer', + 'payment_ref': 'MIB InstrId305-312MM20211231v1', + 'ref': '000000000000000000000000003', + 'transaction_type': 'PMNT-RCDT-VCOM'}]}])] diff --git a/account_statement_import_camt54/README.rst b/account_statement_import_camt54/README.rst index c386ac3bf..815a89f5c 100644 --- a/account_statement_import_camt54/README.rst +++ b/account_statement_import_camt54/README.rst @@ -7,7 +7,7 @@ Bank Account Camt54 Import !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:423ab66deb35c8930b150cf71f0595cf124e40574ae9874935ac5291b19b9c04 + !! source digest: sha256:e70ad2d6f3a7d09e6448b1a527bea0e958c5ff01b88dea1bb5b70a7325e84571 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -82,6 +82,7 @@ Contributors * `Trobz `_: * Son Ho +* Alexandre Fayolle Other credits ~~~~~~~~~~~~~ diff --git a/account_statement_import_camt54/readme/CONTRIBUTORS.rst b/account_statement_import_camt54/readme/CONTRIBUTORS.rst index af39eac6d..6a6691089 100644 --- a/account_statement_import_camt54/readme/CONTRIBUTORS.rst +++ b/account_statement_import_camt54/readme/CONTRIBUTORS.rst @@ -3,3 +3,4 @@ * `Trobz `_: * Son Ho +* Alexandre Fayolle \ No newline at end of file diff --git a/account_statement_import_camt54/static/description/index.html b/account_statement_import_camt54/static/description/index.html index ab922d027..8e896b8d2 100644 --- a/account_statement_import_camt54/static/description/index.html +++ b/account_statement_import_camt54/static/description/index.html @@ -367,7 +367,7 @@

Bank Account Camt54 Import

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:423ab66deb35c8930b150cf71f0595cf124e40574ae9874935ac5291b19b9c04 +!! source digest: sha256:e70ad2d6f3a7d09e6448b1a527bea0e958c5ff01b88dea1bb5b70a7325e84571 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/bank-statement-import Translate me on Weblate Try me on Runboat

@@ -429,6 +429,8 @@

Contributors

+
  • Alexandre Fayolle <alexandre.fayolle@camptocamp.com>

    +