Upgrade mt-940 to 4.* (#2331)

This commit is contained in:
Raphael Michel
2021-11-18 12:24:54 +01:00
committed by GitHub
parent f9b2920984
commit 146e1aeb67
3 changed files with 28 additions and 19 deletions
+13 -5
View File
@@ -182,11 +182,11 @@ def parse(file):
transaction_details = parse_transaction_details(td.replace("\n", ""))
payer = {
'name': transaction_details.get('accountholder', ''),
'name': transaction_details.get('accountholder', '') or t.data.get('applicant_name', ''),
# In reality, these fields are sometimes IBANs and BICs, and sometimes legacy numbers. We don't
# really know (except for a syntax check) which will be performed anyways much later in the stack.
'iban': transaction_details.get('accountnumber', ''),
'bic': transaction_details.get('blz', ''),
'iban': transaction_details.get('accountnumber', '') or t.data.get('applicant_iban', ''),
'bic': transaction_details.get('blz', '') or t.data.get('applicant_bin', ''),
}
reference, eref = join_reference(transaction_details.get('reference', '').split('\n'), payer)
if not eref:
@@ -200,11 +200,19 @@ def parse(file):
**{k: payer[k].strip() for k in ("iban", "bic") if payer.get(k)}
})
else:
payer = {
'payer': t.data.get('applicant_name', ''),
# In reality, these fields are sometimes IBANs and BICs, and sometimes legacy numbers. We don't
# really know (except for a syntax check) which will be performed anyways much later in the stack.
'iban': t.data.get('applicant_iban', ''),
'bic': t.data.get('applicant_bin', ''),
}
result.append({
'reference': "\n".join([
t.data.get(f) for f in ('transaction_details', 'customer_reference', 'bank_reference',
t.data.get(f) for f in ('transaction_details', 'customer_reference', 'bank_reference', 'purpose',
'extra_details', 'non_swift_text') if t.data.get(f, '')]),
'amount': str(round_decimal(t.data['amount'].amount)),
'date': t.data['date'].isoformat()
'date': t.data['date'].isoformat(),
**{k: payer[k].strip() for k in ("iban", "bic", "payer") if payer.get(k)}
})
return result
+1 -1
View File
@@ -198,7 +198,7 @@ setup(
'lxml',
'markdown==3.3.4', # 3.3.5 requires importlib-metadata>=4.4, but django-bootstrap3 requires importlib-metadata<3.
# We can upgrade markdown again once django-bootstrap3 upgrades or once we drop Python 3.6 and 3.7
'mt-940==3.2',
'mt-940==4.23.*',
'oauthlib==3.1.*',
'openpyxl==3.0.*',
'packaging',
+14 -13
View File
@@ -215,23 +215,23 @@ EXPECTED = [
'payer': 'MUELLER',
'iban': '234567',
'bic': '10020030',
'reference': 'Miete November'},
'reference': 'NONREF//55555\nMiete November'},
{'amount': '3000.00',
'date': '2002-11-02',
'payer': 'MUELLER',
'iban': '0847564700',
'bic': '50060400',
'reference': 'Gehalt Oktober Firma Mustermann GmbH'},
'reference': 'NONREF//55555\nGehalt OktoberFirma Mustermann GmbH'},
],
[
{'amount': '-400.62',
'date': '2012-02-02',
'payer': 'MARTHAMUELLER',
'bic': '20020020',
'reference': 'RECHNUNGSNR. 1210815 KUNDENNR. 01234 22222222 DATUM 01.02.2012'},
'reference': 'NONREF\nRECHNUNGSNR. 1210815 KUNDENNR. 01234 22222222'},
{'amount': '-1210.00',
'date': '2012-02-03',
'reference': 'MIETE GOETHESTR. 12',
'reference': 'NONREF\nMIETE GOETHESTR. 12',
'payer': 'ABC IMMOBILIEN GMBH',
'bic': '30030030',
'iban': '3333333333'},
@@ -239,24 +239,25 @@ EXPECTED = [
'date': '2012-02-03',
'payer': 'STEFAN SCHMIDT',
'bic': '40040040',
'reference': 'RECHNUNG 20120188 STEFAN SCHMIDTKUNDENR. 4711,'},
'reference': 'NONREF\nRECHNUNG 20120188STEFAN SCHMIDTKUNDENR. 4711,'},
{'amount': '89.97',
'date': '2012-02-03',
'payer': 'PETER PETERSEN',
'iban': '5555555555',
'bic': '50050050',
'reference': 'RECHNUNG 20120165 PETER PETERSEN'}
'reference': 'NONREF//00000000\nRECHNUNG 20120165PETER PETERSEN\n0001'}
],
[
{'amount': '5000.00', 'date': '2002-03-17', 'reference': '68790452'},
{'amount': '5000.00', 'date': '2002-03-17',
'reference': '68790452\nVerwendungszweck 1\nVerwendungszweck 2\nEmpfänger\nBuchungstext\n12345\n1000\n4711'},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': '3037010000'},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
{'amount': '-50000.00', 'date': '2002-03-24', 'reference': ''}
{'amount': '20000.00', 'date': '2002-03-22', 'reference': 'Meyer + Schneider\nTestkonto\n37010000\n87132101'},
{'amount': '-50000.00', 'date': '2002-03-24', 'reference': 'bekannt\n12345'}
],
[
{'amount': '12.00',
@@ -264,19 +265,19 @@ EXPECTED = [
'payer': 'Peter Schneider',
'iban': 'DE13495179316396679327',
'bic': 'NOTABIC',
'reference': 'Democon-Abcde (Peter Schneider ), Kategorie: Alles - E innahmen - Veranstaltungen Democon #1111'},
'reference': 'NONREF\nDemocon-Abcde (Peter Schneider), Kategorie: Alles - Einnahmen - Veranstaltungen Democon #1111'},
{'amount': '12.00',
'date': '2017-08-23',
'payer': 'Peter Schneider',
'iban': 'DE13495179316396679327',
'bic': 'NOTABIC',
'reference': 'Democon-Abcde (Peter Schneider ), Kategorie: Alles - E innahmen - Veranstaltungen Democon #1111'},
'reference': 'NONREF\nDemocon-Abcde (Peter Schneider), Kategorie: Alles - Einnahmen - Veranstaltungen Democon #1111'},
{'amount': '12.00',
'date': '2017-08-24',
'payer': 'Peter Schneider',
'iban': 'DE13495179316396679327',
'bic': 'NOTABIC',
'reference': 'Democon-Abcde (Peter Schneider ), Kategorie: Alles- E innahmen - Veranstaltungen Democon #1111'},
'reference': 'NONREF\nDemocon-Abcde (Peter Schneider), Kategorie: Alles- Einnahmen - Veranstaltungen Democon #1111'},
]
]