Fix copy methods to not copy template

This commit is contained in:
Cédric Krier committed 2016-04-02 15:59:02 +02:00
1 parent ddda74a477
commit 18fb4ef92b
2 files changed
+38

No files matched your search

+2
View File
@@ -824,6 +824,8 @@ class Account(ModelSQL, ModelView):
def copy(cls, accounts, default=None):
if default is None:
default = {}
else:
default = default.copy()
default.setdefault('template')
default.setdefault('deferrals', [])
new_accounts = super(Account, cls).copy(accounts, default=default)
+36
View File
@@ -231,6 +231,15 @@ class TaxCode(ModelSQL, ModelView):
(cls._rec_name,) + tuple(clause[1:]),
]
@classmethod
def copy(cls, codes, default=None):
if default is None:
default = {}
else:
default = default.copy()
default.setdefault('template')
return super(TaxCode, cls).copy(codes, default=default)
@classmethod
def delete(cls, codes):
codes = cls.search([
@@ -769,6 +778,15 @@ class Tax(ModelSQL, ModelView):
return self.company.currency.digits
return 2
@classmethod
def copy(cls, taxes, default=None):
if default is None:
default = {}
else:
default = default.copy()
default.setdefault('template')
return super(Tax, cls).copy(taxes, default=default)
def _process_tax(self, price_unit):
if self.type == 'percentage':
amount = price_unit * self.rate
@@ -1218,6 +1236,15 @@ class TaxRule(ModelSQL, ModelView):
def default_company():
return Transaction().context.get('company')
@classmethod
def copy(cls, rules, default=None):
if default is None:
default = {}
else:
default = default.copy()
default.setdefault('template')
return super(TaxRule, cls).copy(rules, default=default)
def apply(self, tax, pattern):
'''
Apply rule on tax
@@ -1451,6 +1478,15 @@ class TaxRuleLine(ModelSQL, ModelView, MatchMixin):
table, _ = tables[None]
return [Case((table.sequence == Null, 0), else_=1), table.sequence]
@classmethod
def copy(cls, lines, default=None):
if default is None:
default = {}
else:
default = default.copy()
default.setdefault('template')
return super(TaxRuleLine, cls).copy(lines, default=default)
def match(self, pattern):
if 'group' in pattern and not self.group:
if pattern['group']: