diff --git a/pycroft/lib/finance/retransfer.py b/pycroft/lib/finance/retransfer.py index fd5a95fe2..f5b88eb3c 100644 --- a/pycroft/lib/finance/retransfer.py +++ b/pycroft/lib/finance/retransfer.py @@ -73,5 +73,3 @@ def attribute_activities_as_returned( split for split in transaction.splits if split.account_id == credit_account.id ) session.add(activity) - - session.commit() diff --git a/tests/factories/config.py b/tests/factories/config.py index 03cb9136f..2291fc0e7 100644 --- a/tests/factories/config.py +++ b/tests/factories/config.py @@ -36,3 +36,4 @@ class Meta: # `Account`s membership_fee_account = SubFactory(AccountFactory, type="REVENUE") membership_fee_bank_account = SubFactory(BankAccountFactory) + non_attributable_transactions_account = SubFactory(AccountFactory, type="REVENUE") diff --git a/web/blueprints/finance/__init__.py b/web/blueprints/finance/__init__.py index 9688cd866..0a0e7e7fe 100644 --- a/web/blueprints/finance/__init__.py +++ b/web/blueprints/finance/__init__.py @@ -603,14 +603,21 @@ def bank_account_activities_return_do() -> ResponseReturnValue: form: t.Any = _create_form(field_list)() - if form.validate_on_submit(): - selected_activities: list[BankAccountActivity] = [ - activity for activity in activities_to_return if form[str(activity.id)].data - ] + if not form.validate_on_submit(): + return render_template( + "finance/bank_account_activities_return.html", + form=form(), + activities=activities_to_return, + ) - sepa_xml: bytes = generate_activities_return_sepaxml(selected_activities) + selected_activities: list[BankAccountActivity] = [ + activity for activity in activities_to_return if form[str(activity.id)].data + ] + + sepa_xml: bytes = generate_activities_return_sepaxml(selected_activities) - attribute_activities_as_returned(session, selected_activities, current_user) + attribute_activities_as_returned(session, selected_activities, current_user) + session.commit() return send_file( BytesIO(sepa_xml),