diff --git a/CHANGELOG b/CHANGELOG index 46093268f8..b18c18fd4b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +* Add deductible rate for supplier taxes + Version 5.8.0 - 2020-11-02 * Bug fixes (see mercurial logs for details) * Remove support for Python 3.5 diff --git a/product.py b/product.py index f038d2db7d..ef03cb14f5 100644 --- a/product.py +++ b/product.py @@ -126,6 +126,17 @@ class Category(CompanyMultiValueMixin, metaclass=PoolMeta): }, depends=['taxes_parent', 'accounting'], help="The taxes to apply when purchasing products of this category.") + supplier_taxes_deductible_rate = fields.Numeric( + "Supplier Taxes Deductible Rate", digits=(14, 10), + domain=[ + ('supplier_taxes_deductible_rate', '>=', 0), + ('supplier_taxes_deductible_rate', '<=', 1), + ], + states={ + 'invisible': ( + Eval('taxes_parent') | ~Eval('accounting', False)), + }, + depends=['taxes_parent', 'accounting']) customer_taxes_used = fields.Function(fields.Many2Many( 'account.tax', None, None, "Customer Taxes Used"), 'get_taxes') supplier_taxes_used = fields.Function(fields.Many2Many( @@ -172,6 +183,10 @@ class Category(CompanyMultiValueMixin, metaclass=PoolMeta): 'default_category_account_revenue', **pattern) return account.id if account else None + @classmethod + def default_supplier_taxes_deductible_rate(cls): + return 1 + def get_account(self, name, **pattern): if self.account_parent: return self.parent.get_account(name, **pattern) @@ -235,6 +250,13 @@ class Category(CompanyMultiValueMixin, metaclass=PoolMeta): def account_revenue_used(self): pass + @property + def supplier_taxes_deductible_rate_used(self): + if self.taxes_parent: + return self.parent.supplier_taxes_deductible_rate_used + else: + return self.supplier_taxes_deductible_rate + class CategoryAccount(ModelSQL, CompanyValueMixin): "Category Account" @@ -368,6 +390,10 @@ class Template(CompanyMultiValueMixin, metaclass=PoolMeta): name=self.rec_name)) return taxes + @property + def supplier_taxes_deductible_rate_used(self): + return self.get_taxes('supplier_taxes_deductible_rate_used') + class Product(metaclass=PoolMeta): __name__ = 'product.product' @@ -375,6 +401,8 @@ class Product(metaclass=PoolMeta): account_revenue_used = template_property('account_revenue_used') customer_taxes_used = template_property('customer_taxes_used') supplier_taxes_used = template_property('supplier_taxes_used') + supplier_taxes_deductible_rate_used = template_property( + 'supplier_taxes_deductible_rate_used') class TemplateAccountCategory(ModelSQL): diff --git a/view/category_form.xml b/view/category_form.xml index c3bdce64cf..65a7607431 100644 --- a/view/category_form.xml +++ b/view/category_form.xml @@ -21,7 +21,9 @@ this repository contains the full copyright notices and license terms. -->