From 1b1978eec1e80e6f20eceb42ee06a3df26e94c3c Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Wed, 31 Jan 2018 15:37:13 +0100 Subject: [PATCH] [FIX] account: default taxes Use `ir.values` for default taxes. Stop using `ir.config_parameter`. The logic is made in order to be as error-proof as possible. Backport of a9ede7fdfa0cec06d8bdc31b26e7549959c256d4 opw-807226 --- addons/account/models/res_config.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/addons/account/models/res_config.py b/addons/account/models/res_config.py index e6b705c86cd..ef3168c555f 100644 --- a/addons/account/models/res_config.py +++ b/addons/account/models/res_config.py @@ -61,14 +61,23 @@ class AccountConfigSettings(models.TransientModel): @api.model def get_default_tax_fields(self, fields): - default_purchase_tax_id = self.env['ir.config_parameter'].sudo().get_param('account.default_purchase_tax_id', default=False) - default_sale_tax_id = self.env['ir.config_parameter'].sudo().get_param('account.default_sale_tax_id', default=False) - return dict(default_purchase_tax_id=int(default_purchase_tax_id), default_sale_tax_id=int(default_sale_tax_id)) + # DO NOT FORWARDPORT, ONLY FOR SAAS-15 + default_purchase_tax_id = ( + self.env['ir.values'].sudo().get_default('product.template', 'supplier_taxes_id', company_id=self.env.user.company_id.id) or + self.env['ir.config_parameter'].sudo().get_param('account.default_purchase_tax_id', default=False) + ) + default_sale_tax_id = ( + self.env['ir.values'].sudo().get_default('product.template', 'taxes_id', company_id=self.env.user.company_id.id) or + self.env['ir.config_parameter'].sudo().get_param('account.default_sale_tax_id', default=False) + ) + return { + 'default_purchase_tax_id': int(default_purchase_tax_id[0]) if isinstance(default_purchase_tax_id, list) and default_purchase_tax_id else default_purchase_tax_id, + 'default_sale_tax_id': int(default_sale_tax_id[0]) if isinstance(default_sale_tax_id, list) and default_sale_tax_id else default_sale_tax_id, + } @api.multi def set_default_tax_fields(self): - self.env['ir.config_parameter'].sudo().set_param("account.default_purchase_tax_id", self.default_purchase_tax_id.id) - self.env['ir.config_parameter'].sudo().set_param("account.default_sale_tax_id", self.default_sale_tax_id.id) + pass @api.depends('company_id') def _compute_has_chart_of_accounts(self):