[FIX] Backport 8.0 improvements in ING mt940 parsing.

This commit is contained in:
Ronald Portier (Therp BV)
2015-11-26 23:03:05 +01:00
committed by Ronald Portier
parent 64d9663af0
commit d37a803383
2 changed files with 14 additions and 8 deletions

View File

@@ -11,11 +11,12 @@
This addon imports the structured MT940 format as offered by the Dutch ING This addon imports the structured MT940 format as offered by the Dutch ING
bank. bank.
""", """,
"category": "Account Banking", 'category': 'Account Banking',
"depends": [ 'depends': [
'account_banking_mt940', 'account_banking_mt940',
], ],
"auto_install": False, 'images': [], # Satisfy travis
"installable": True, 'auto_install': False,
"application": False, 'installable': True,
'application': False,
} }

View File

@@ -22,8 +22,10 @@ class IngMT940Parser(MT940, parser):
code = 'INT_MT940_STRUC' code = 'INT_MT940_STRUC'
tag_61_regex = re.compile( tag_61_regex = re.compile(
r'^(?P<date>\d{6})(?P<sign>[CD])(?P<amount>\d+,\d{2})N(?P<type>.{3})' r'^(?P<date>\d{6})(?P<line_date>\d{0,4})'
r'(?P<reference>\w{1,16})') r'(?P<sign>[CD])(?P<amount>\d+,\d{2})N(?P<type>.{3})'
r'(?P<reference>\w{1,50})'
)
def create_transaction(self, cr): def create_transaction(self, cr):
return transaction() return transaction()
@@ -41,7 +43,10 @@ class IngMT940Parser(MT940, parser):
def handle_tag_61(self, cr, data): def handle_tag_61(self, cr, data):
super(IngMT940Parser, self).handle_tag_61(cr, data) super(IngMT940Parser, self).handle_tag_61(cr, data)
parsed_data = self.tag_61_regex.match(data).groupdict() re_61 = self.tag_61_regex.match(data)
if not re_61:
raise ValueError("Cannot parse %s" % data)
parsed_data = re_61.groupdict()
self.current_transaction.transferred_amount = \ self.current_transaction.transferred_amount = \
(-1 if parsed_data['sign'] == 'D' else 1) * str2float( (-1 if parsed_data['sign'] == 'D' else 1) * str2float(
parsed_data['amount']) parsed_data['amount'])