From 531d4b0ce9412f00c151eb46fbe79b7bcf393a9c Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 19 Sep 2016 19:23:36 +0200 Subject: [PATCH] Bankimport: Handle thousand seperator --- src/pretix/plugins/banktransfer/tasks.py | 9 ++++++++- src/tests/plugins/banktransfer/test_import.py | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/pretix/plugins/banktransfer/tasks.py b/src/pretix/plugins/banktransfer/tasks.py index d11eb1f50b..038078897b 100644 --- a/src/pretix/plugins/banktransfer/tasks.py +++ b/src/pretix/plugins/banktransfer/tasks.py @@ -65,7 +65,14 @@ def _get_unknown_transactions(event: Event, job: BankImportJob, data: list): transactions = [] for row in data: - amount = amount_pattern.sub("", row['amount'].replace(",", ".")) + amount = row['amount'] + if ',' in amount and '.' in amount: + # Handle thousand-seperator , or . + if amount.find(',') < amount.find('.'): + amount = amount.replace(',', '') + else: + amount = amount.replace('.', '') + amount = amount_pattern.sub("", amount.replace(',', '.')) try: amount = Decimal(amount) except: diff --git a/src/tests/plugins/banktransfer/test_import.py b/src/tests/plugins/banktransfer/test_import.py index 0385252690..d925d8b144 100644 --- a/src/tests/plugins/banktransfer/test_import.py +++ b/src/tests/plugins/banktransfer/test_import.py @@ -1,4 +1,5 @@ from datetime import timedelta +from decimal import Decimal import pytest from bs4 import BeautifulSoup @@ -133,3 +134,17 @@ def test_autocorrection(env, job): }]) env[2].refresh_from_db() assert env[2].status == Order.STATUS_PAID + + +@pytest.mark.django_db +def test_huge_amount(env, job): + env[2].total = Decimal('23000.00') + env[2].save() + process_banktransfers(env[0].pk, job, [{ + 'payer': 'Karla Kundin', + 'reference': 'Bestellung DUMMY12345', + 'amount': '23.000,00', + 'date': '2016-01-26', + }]) + env[2].refresh_from_db() + assert env[2].status == Order.STATUS_PAID