diff --git a/src/pretix/plugins/banktransfer/mt940import.py b/src/pretix/plugins/banktransfer/mt940import.py index 0c78e2968d..fb98731f2d 100644 --- a/src/pretix/plugins/banktransfer/mt940import.py +++ b/src/pretix/plugins/banktransfer/mt940import.py @@ -149,7 +149,10 @@ def parse(file): payer = { 'name': transaction_details.get('accountholder', ''), + # 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', ''), } reference, eref = join_reference(transaction_details.get('reference', '').split('\n'), payer) if not eref: diff --git a/src/tests/plugins/banktransfer/test_mt940.py b/src/tests/plugins/banktransfer/test_mt940.py index 117081a08a..deac487686 100644 --- a/src/tests/plugins/banktransfer/test_mt940.py +++ b/src/tests/plugins/banktransfer/test_mt940.py @@ -193,31 +193,37 @@ EXPECTED = [ 'date': '2002-11-01', 'payer': 'MUELLER', 'iban': '234567', + 'bic': '10020030', 'reference': 'Miete November'}, {'amount': '3000.00', 'date': '2002-11-02', 'payer': 'MUELLER', 'iban': '0847564700', + 'bic': '50060400', 'reference': 'Gehalt Oktober Firma Mustermann GmbH'}, ], [ {'amount': '-400.62', 'date': '2012-02-02', 'payer': 'MARTHAMUELLER', + 'bic': '20020020', 'reference': 'RECHNUNGSNR. 1210815 KUNDENNR. 01234 22222222 DATUM 01.02.2012'}, {'amount': '-1210.00', 'date': '2012-02-03', 'reference': 'MIETE GOETHESTR. 12', 'payer': 'ABC IMMOBILIEN GMBH', + 'bic': '30030030', 'iban': '3333333333'}, {'amount': '30.00', 'date': '2012-02-03', 'payer': 'STEFAN SCHMIDT', + 'bic': '40040040', 'reference': 'RECHNUNG 20120188 STEFAN SCHMIDTKUNDENR. 4711,'}, {'amount': '89.97', 'date': '2012-02-03', 'payer': 'PETER PETERSEN', 'iban': '5555555555', + 'bic': '50050050', 'reference': 'RECHNUNG 20120165 PETER PETERSEN'} ], [ @@ -236,16 +242,19 @@ EXPECTED = [ 'date': '2017-08-23', 'payer': 'Peter Schneider', 'iban': 'DE13495179316396679327', + 'bic': 'NOTABIC', 'reference': 'Democon-Abcde (Peter Schneider ), Kategorie: Alles - E innahmen - 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'}, {'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'}, ] ] @@ -257,4 +266,3 @@ def test_parse(): pp = pprint.PrettyPrinter(indent=4) pp.pprint(parsed) assert parsed == EXPECTED[i] - print("done")