Split statement by records, instead of lines

This commit is contained in:
Dmitrijs Ledkovs
2011-11-09 16:14:43 +00:00
parent e498de3eb8
commit 60a4ae44ff

View File

@@ -138,11 +138,15 @@ class parser_hsbc_mt940(models.parser):
def parse(self, data):
result = []
statement_list = [st.splitlines() for st in re.split('\n(?=:20:)', data)]
parser = HSBCParser()
# Split into statements
statements = [st for st in re.split('[\r\n]*(?=:20:)', data)]
# Split by records
statement_list = [re.split('[\r\n ]*(?=:\d\d[\w]?:)', st) for st in statements]
for statement_lines in statement_list:
stmnt = statement()
records = HSBCParser().parse(statement_lines)
records = [parser.parse_record(record) for record in statement_lines]
[stmnt.import_record(r) for r in records if r is not None]