diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index 0c801fac7..d4245baeb 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -4148,6 +4148,14 @@ def validate_event_settings(event, settings_dict): ) ]} ) + if ( + settings_dict.get('invoice_address_from_vat_id') and + settings_dict.get('invoice_address_from_country') and + settings_dict.get('invoice_address_from_country') not in VAT_ID_COUNTRIES + ): + raise ValidationError({ + 'invoice_address_from_vat_id': _('VAT-ID is not supported for "{}".').format(settings_dict.get('invoice_address_from_country')) + }) payment_term_last = settings_dict.get('payment_term_last') if payment_term_last and event.presale_end: diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index d70a94eb0..e1fb92aea 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -63,7 +63,7 @@ from pretix.base.forms import ( from pretix.base.models import Event, Organizer, TaxRule, Team from pretix.base.models.event import EventFooterLink, EventMetaValue, SubEvent from pretix.base.models.organizer import TeamQuerySet -from pretix.base.models.tax import TAX_CODE_LISTS +from pretix.base.models.tax import TAX_CODE_LISTS, VAT_ID_COUNTRIES from pretix.base.reldate import RelativeDateField, RelativeDateTimeField from pretix.base.services.placeholders import FormPlaceholderMixin from pretix.base.settings import ( @@ -531,6 +531,13 @@ class EventUpdateForm(I18nModelForm): class EventSettingsValidationMixin: + def clean_invoice_address_from_vat_id(self): + value = self.cleaned_data.get('invoice_address_from_vat_id') + country = self.cleaned_data.get('invoice_address_from_country') + if value and country and country not in VAT_ID_COUNTRIES: + return None + return value + def clean(self): data = super().clean() settings_dict = self.obj.settings.freeze()