[FIX] account: default taxes

Use `ir.default` for default taxes. Stop using `ir.config_parameter`.

Fixes #18943
opw-778010
This commit is contained in:
Nicolas Martinelli
2017-11-30 12:15:48 +01:00
committed by Nicolas Martinelli
parent 82364a2d73
commit a9ede7fdfa
3 changed files with 7 additions and 17 deletions
-3
View File
@@ -911,13 +911,10 @@ class WizardMultiChartsAccounts(models.TransientModel):
# write values of default taxes for product as super user and write in the config
IrDefault = self.env['ir.default']
IrConfig = self.env['ir.config_parameter']
if self.sale_tax_id and taxes_ref:
IrDefault.sudo().set('product.template', "taxes_id", [taxes_ref[self.sale_tax_id.id]], company_id=company.id)
IrConfig.sudo().set_param("account.default_sale_tax_id", taxes_ref[self.sale_tax_id.id])
if self.purchase_tax_id and taxes_ref:
IrDefault.sudo().set('product.template', "supplier_taxes_id", [taxes_ref[self.purchase_tax_id.id]], company_id=company.id)
IrConfig.sudo().set_param("account.default_purchase_tax_id", taxes_ref[self.purchase_tax_id.id])
# Create Bank journals
self._create_bank_journals_from_o2m(company, acc_template_ref)
+6 -14
View File
@@ -1,8 +1,6 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from ast import literal_eval
from odoo import api, fields, models, _
@@ -65,25 +63,19 @@ class ResConfigSettings(models.TransientModel):
@api.model
def get_values(self):
res = super(ResConfigSettings, self).get_values()
params = self.env['ir.config_parameter'].sudo()
tax = self.env['account.tax'].sudo()
default_purchase_tax_id = literal_eval(params.get_param('account.default_purchase_tax_id', default='False'))
default_sale_tax_id = literal_eval(params.get_param('account.default_sale_tax_id', default='False'))
if default_purchase_tax_id and not tax.browse(default_purchase_tax_id).exists():
default_purchase_tax_id = False
if default_sale_tax_id and not tax.browse(default_sale_tax_id).exists():
default_sale_tax_id = False
# ONLY FOR v11. DO NOT FORWARD-PORT
IrDefault = self.env['ir.default'].sudo()
default_sale_tax_id = IrDefault.get('product.template', "taxes_id", company_id=self.company_id.id or self.env.user.company_id.id)
default_purchase_tax_id = IrDefault.get('product.template', "supplier_taxes_id", company_id=self.company_id.id or self.env.user.company_id.id)
res.update(
default_purchase_tax_id=default_purchase_tax_id,
default_sale_tax_id=default_sale_tax_id,
default_purchase_tax_id=default_purchase_tax_id[0] if default_purchase_tax_id else False,
default_sale_tax_id=default_sale_tax_id[0] if default_sale_tax_id else False,
)
return res
@api.multi
def set_values(self):
super(ResConfigSettings, self).set_values()
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)
if self.group_multi_currency:
self.env.ref('base.group_user').write({'implied_ids': [(4, self.env.ref('product.group_sale_pricelist').id)]})
""" Set the product taxes if they have changed """
@@ -63,6 +63,7 @@
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<label string='Default Taxes'/>
<span class="fa fa-lg fa-building-o" title="Values set here are company-specific." groups="base.group_multi_company"/>
<div class="text-muted">
Default taxes applied to local transactions
</div>