diff --git a/account_bank_statement_import_camt/models/parser.py b/account_bank_statement_import_camt/models/parser.py index 5a5305d..43fe317 100644 --- a/account_bank_statement_import_camt/models/parser.py +++ b/account_bank_statement_import_camt/models/parser.py @@ -65,6 +65,7 @@ class CamtParser(models.AbstractModel): ns, node, [ './ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref', './ns:Refs/ns:EndToEndId', + './ns:Ntry/ns:AcctSvcrRef' ], transaction, 'ref' ) @@ -135,6 +136,7 @@ class CamtParser(models.AbstractModel): ns, node, [ './ns:NtryDtls/ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref', './ns:NtryDtls/ns:Btch/ns:PmtInfId', + './ns:NtryDtls/ns:TxDtls/ns:Refs/ns:AcctSvcrRef' ], transaction, 'ref' ) @@ -205,6 +207,12 @@ class CamtParser(models.AbstractModel): for entry_node in entry_nodes: transactions.extend(self.parse_entry(ns, entry_node)) result['transactions'] = transactions + result['date'] = None + if transactions: + result['date'] = sorted(transactions, + key=lambda x: x['date'], + reverse=True + )[0]['date'] return result def check_version(self, ns, root): diff --git a/account_bank_statement_import_camt/test_files/golden-camt053-no-ntry.pydata b/account_bank_statement_import_camt/test_files/golden-camt053-no-ntry.pydata new file mode 100644 index 0000000..ca89faa --- /dev/null +++ b/account_bank_statement_import_camt/test_files/golden-camt053-no-ntry.pydata @@ -0,0 +1 @@ +(None, None, []) diff --git a/account_bank_statement_import_camt/test_files/golden-camt053-txdtls.pydata b/account_bank_statement_import_camt/test_files/golden-camt053-txdtls.pydata index 0a274e5..f641bfb 100644 --- a/account_bank_statement_import_camt/test_files/golden-camt053-txdtls.pydata +++ b/account_bank_statement_import_camt/test_files/golden-camt053-txdtls.pydata @@ -2,6 +2,7 @@ 'CH1111000000123456789', [{'balance_end_real': 79443.15, 'balance_start': 75960.15, + 'date': '2017-03-22', 'name': '20170323123456789012345', 'transactions': [{'account_number': 'CH2222000000123456789', 'amount': 2187.0, diff --git a/account_bank_statement_import_camt/test_files/golden-camt053.pydata b/account_bank_statement_import_camt/test_files/golden-camt053.pydata index b4e940d..4aa53f1 100644 --- a/account_bank_statement_import_camt/test_files/golden-camt053.pydata +++ b/account_bank_statement_import_camt/test_files/golden-camt053.pydata @@ -2,6 +2,7 @@ 'NL77ABNA0574908765', [{'balance_end_real': 15121.12, 'balance_start': 15568.27, + 'date': '2014-01-05', 'name': '1234Test/1', 'transactions': [{'account_bic': 'ABNANL2A', 'account_number': 'NL46ABNA0499998748', diff --git a/account_bank_statement_import_camt/test_files/test-camt053-no-ntry b/account_bank_statement_import_camt/test_files/test-camt053-no-ntry new file mode 100644 index 0000000..03f8f62 --- /dev/null +++ b/account_bank_statement_import_camt/test_files/test-camt053-no-ntry @@ -0,0 +1,52 @@ + + + + TESTBANK/NL/1420561226673 + 2014-01-06T16:20:26.673Z + + + 1234Test/1 + 2 + 2014-01-06T16:20:26.673Z + + 2014-01-05T00:00:00.000Z + 2014-01-05T23:59:59.999Z + + + + NL77ABNA0574908765 + + Example company + + + ABNANL2A + + + + + + + OPBD + + + 1520.76 + CRDT +
+
2014-01-05
+ +
+ + + + CLBD + + + 1520.76 + CRDT +
+
2014-01-05
+ +
+
+
+
diff --git a/account_bank_statement_import_camt/tests/test_import_bank_statement.py b/account_bank_statement_import_camt/tests/test_import_bank_statement.py index e01cbc3..88b2841 100644 --- a/account_bank_statement_import_camt/tests/test_import_bank_statement.py +++ b/account_bank_statement_import_camt/tests/test_import_bank_statement.py @@ -46,6 +46,12 @@ class TestParser(TransactionCase): DATA_DIR + 'test-camt053-txdtls', DATA_DIR + 'golden-camt053-txdtls.pydata') + def test_parse_no_ntry(self): + self._do_parse_test( + DATA_DIR + 'test-camt053-no-ntry', + DATA_DIR + 'golden-camt053-no-ntry.pydata', + ) + class TestImport(TransactionCase): """Run test to import camt import."""