From c91d83dbc8811be7534e0c0d19c321fd10d50f43 Mon Sep 17 00:00:00 2001 From: Emanuel Cino Date: Thu, 7 Feb 2019 17:02:56 +0100 Subject: [PATCH] Add more address lines information when parsing camt --- .../test_files/test-camt053 | 4 ++-- .../models/camt_parser.py | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/account_bank_statement_import_camt/test_files/test-camt053 b/account_bank_statement_import_camt/test_files/test-camt053 index 1f15c84c..f0fb4a63 100644 --- a/account_bank_statement_import_camt/test_files/test-camt053 +++ b/account_bank_statement_import_camt/test_files/test-camt053 @@ -262,8 +262,8 @@ 3rd party Media - SOMESTREET 570-A - 1276 ML HOUSCITY + SOMESTREET 570-A + 1276 ML HOUSCITY NL diff --git a/account_bank_statement_import_camt_details/models/camt_parser.py b/account_bank_statement_import_camt_details/models/camt_parser.py index 2ad94cf5..c64a3816 100644 --- a/account_bank_statement_import_camt_details/models/camt_parser.py +++ b/account_bank_statement_import_camt_details/models/camt_parser.py @@ -33,6 +33,13 @@ class CamtDetailsParser(models.AbstractModel): './ns:BldgNb', namespaces={'ns': ns}) if building_node: address_values['building'] = building_node[0].text + generic_nodes = address_node[0].xpath( + './ns:AdrLine', namespaces={'ns': ns}) + if generic_nodes: + address_values.update({ + 'address_line_' + str(i): node.text + for i, node in enumerate(generic_nodes) + }) zip_node = address_node[0].xpath( './ns:PstCd', namespaces={'ns': ns}) if zip_node: @@ -58,7 +65,8 @@ class CamtDetailsParser(models.AbstractModel): """ Hook for formatting the partner address read in CAMT bank statement. :param address_values: dict: all address values found in statement - Possible keys are ['street', 'building', 'zip', 'city'] + Possible keys are ['street', 'building', 'address_line_xxx', + 'zip', 'city'] Not all keys may be present. :return: str: formatted address """