From ad91ed4a30f60b04e68309bc317a4ed79609b045 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 12 Nov 2019 11:11:06 +0100 Subject: [PATCH] Correctly deal with tax rules that used to have custom rules --- src/pretix/base/models/tax.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pretix/base/models/tax.py b/src/pretix/base/models/tax.py index 5651ee6375..88427bb617 100644 --- a/src/pretix/base/models/tax.py +++ b/src/pretix/base/models/tax.py @@ -198,8 +198,14 @@ class TaxRule(LoggedModel): rate=self.rate, name=self.name ) + @property + def _custom_rules(self): + if not self.custom_rules: + return [] + return json.loads(self.custom_rules) + def get_matching_rule(self, invoice_address): - rules = json.loads(self.custom_rules) + rules = self._custom_rules if invoice_address: for r in rules: if r['country'] == 'EU' and str(invoice_address.country) not in EU_COUNTRIES: @@ -216,7 +222,7 @@ class TaxRule(LoggedModel): return {'action': 'vat'} def is_reverse_charge(self, invoice_address): - if self.custom_rules: + if self._custom_rules: rule = self.get_matching_rule(invoice_address) return rule['action'] == 'reverse' @@ -238,7 +244,7 @@ class TaxRule(LoggedModel): return False def tax_applicable(self, invoice_address): - if self.custom_rules: + if self._custom_rules: rule = self.get_matching_rule(invoice_address) return rule.get('action', 'vat') == 'vat'