diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index d0491de384..afa46bba85 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -611,6 +611,7 @@ class EventSettingsSerializer(serializers.Serializer): 'invoice_introductory_text', 'invoice_additional_text', 'invoice_footer_text', + 'invoice_eu_currencies', 'cancel_allow_user', 'cancel_allow_user_until', 'cancel_allow_user_paid', diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index 5763d5be7a..38f7dfef7b 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -105,7 +105,7 @@ def build_invoice(invoice: Invoice) -> Invoice: cc = str(ia.country) - if cc in EU_CURRENCIES and EU_CURRENCIES[cc] != invoice.event.currency: + if cc in EU_CURRENCIES and EU_CURRENCIES[cc] != invoice.event.currency and invoice.event.settings.invoice_eu_currencies: invoice.foreign_currency_display = EU_CURRENCIES[cc] if settings.FETCH_ECB_RATES: diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index 0c9bd79844..fe535662bf 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -198,6 +198,16 @@ DEFAULTS = { label=_("Show attendee names on invoices"), ) }, + 'invoice_eu_currencies': { + 'default': 'True', + 'type': bool, + 'form_class': forms.BooleanField, + 'serializer_class': serializers.BooleanField, + 'form_kwargs': dict( + label=_("On invoices from one EU country into another EU country with a different currency, print the " + "tax amounts in both currencies if possible"), + ) + }, 'invoice_address_required': { 'default': 'False', 'form_class': forms.BooleanField, diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index 9018c28954..ad10718e36 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -686,7 +686,7 @@ class InvoiceSettingsForm(SettingsForm): 'invoice_introductory_text', 'invoice_additional_text', 'invoice_footer_text', - + 'invoice_eu_currencies', ] invoice_generate_sales_channels = forms.MultipleChoiceField( diff --git a/src/pretix/control/templates/pretixcontrol/event/invoicing.html b/src/pretix/control/templates/pretixcontrol/event/invoicing.html index ac86284b14..85409aa64c 100644 --- a/src/pretix/control/templates/pretixcontrol/event/invoicing.html +++ b/src/pretix/control/templates/pretixcontrol/event/invoicing.html @@ -51,6 +51,7 @@ {% bootstrap_field form.invoice_footer_text layout="control" %} {% bootstrap_field form.invoice_logo_image layout="control" %} {% bootstrap_field form.invoice_address_explanation_text layout="control" %} + {% bootstrap_field form.invoice_eu_currencies layout="control" %}