From 5495cd749a4c27361806d12ed66845a3b0c8f37c Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 3 Feb 2017 12:33:46 +0100 Subject: [PATCH] Fix #399 -- Optionally create invoices only after successful payment --- src/pretix/base/services/orders.py | 4 ++++ src/pretix/control/forms/event.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index dbfecd6873..eeb355aefa 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -109,6 +109,10 @@ def mark_order_paid(order: Order, provider: str=None, info: str=None, date: date }, user=user) order_paid.send(order.event, order=order) + if order.event.settings.get('invoice_generate') in ('True', 'paid') and invoice_qualified(order): + if not order.invoices.exists(): + generate_invoice(order) + if send_mail: with language(order.locale): try: diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index e8d0eee693..44c3c92b69 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -331,7 +331,8 @@ class InvoiceSettingsForm(SettingsForm): ('False', _('No')), ('admin', _('Manually in admin panel')), ('user', _('Automatically on user request')), - ('True', _('Automatically for all created orders')) + ('True', _('Automatically for all created orders')), + ('paid', _('Automatically on payment')), ) ) invoice_address_from = forms.CharField(