forked from CGM_Public/pretix_original
Validate VAT ID when changing invoice addresses
This commit is contained in:
@@ -1044,7 +1044,11 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
|||||||
self.instance.vat_id_validated = True
|
self.instance.vat_id_validated = True
|
||||||
self.instance.vat_id = normalized_id
|
self.instance.vat_id = normalized_id
|
||||||
except VATIDFinalError as e:
|
except VATIDFinalError as e:
|
||||||
raise ValidationError(e.message)
|
if self.all_optional:
|
||||||
|
self.instance.vat_id_validated = False
|
||||||
|
messages.warning(self.request, e.message)
|
||||||
|
else:
|
||||||
|
raise ValidationError(e.message)
|
||||||
except VATIDTemporaryError as e:
|
except VATIDTemporaryError as e:
|
||||||
self.instance.vat_id_validated = False
|
self.instance.vat_id_validated = False
|
||||||
if self.request and self.vat_warning:
|
if self.request and self.vat_warning:
|
||||||
|
|||||||
@@ -355,20 +355,29 @@ class OrderQuestionsViewMixin(BaseQuestionsViewMixin):
|
|||||||
override[k].pop('initial', None)
|
override[k].pop('initial', None)
|
||||||
return override_sets
|
return override_sets
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def vat_id_validation_enabled(self):
|
||||||
|
return any([p.item.tax_rule and (p.item.tax_rule.eu_reverse_charge or p.item.tax_rule.custom_rules)
|
||||||
|
for p in self.positions])
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def invoice_form(self):
|
def invoice_form(self):
|
||||||
if not self.address_asked and self.request.event.settings.invoice_name_required:
|
if not self.address_asked and self.request.event.settings.invoice_name_required:
|
||||||
f = self.invoice_name_form_class(
|
f = self.invoice_name_form_class(
|
||||||
data=self.request.POST if self.request.method == "POST" else None,
|
data=self.request.POST if self.request.method == "POST" else None,
|
||||||
event=self.request.event,
|
event=self.request.event,
|
||||||
instance=self.invoice_address, validate_vat_id=False,
|
instance=self.invoice_address,
|
||||||
|
validate_vat_id=False,
|
||||||
|
request=self.request,
|
||||||
all_optional=self.all_optional
|
all_optional=self.all_optional
|
||||||
)
|
)
|
||||||
elif self.address_asked:
|
elif self.address_asked:
|
||||||
f = self.invoice_form_class(
|
f = self.invoice_form_class(
|
||||||
data=self.request.POST if self.request.method == "POST" else None,
|
data=self.request.POST if self.request.method == "POST" else None,
|
||||||
event=self.request.event,
|
event=self.request.event,
|
||||||
instance=self.invoice_address, validate_vat_id=False,
|
instance=self.invoice_address,
|
||||||
|
validate_vat_id=self.vat_id_validation_enabled,
|
||||||
|
request=self.request,
|
||||||
all_optional=self.all_optional,
|
all_optional=self.all_optional,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user