From 0f25a8ce1d406ae5e05a846b0a955436cb72c87b Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Fri, 11 Dec 2015 09:46:09 +0100 Subject: [PATCH] [FIX] wesbite_sale: recompute taxes when fiscal position is updated We force to recompute the taxes on all lines when we change the fiscal position. That was already done in backend, with the onchange. But @api.contrains allow to do it on each write on fiscal_position_id field. @api.Depends will not work because it is not a computed field. --- addons/sale/sale.py | 1 + addons/website_sale/controllers/main.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 3ae2f928a44..2a5bae6b068 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -85,6 +85,7 @@ class SaleOrder(models.Model): default_team_id = self.env['crm.team']._get_default_team_id() return self.env['crm.team'].browse(default_team_id) + @api.constrains('fiscal_position_id') @api.onchange('fiscal_position_id') def _compute_tax_id(self): """ diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index c5244b5a7d9..1e82a153509 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -625,7 +625,6 @@ class website_sale(http.Controller): partner_id = orm_partner.create(cr, SUPERUSER_ID, billing_info, context=context) order.write({'partner_id': partner_id, 'partner_invoice_id': partner_id}) order_obj.onchange_partner_id(cr, SUPERUSER_ID, [order.id], context=context) - order_obj.onchange_partner_shipping_id(cr, SUPERUSER_ID, [order.id], context=context) # create a new shipping partner if checkout.get('shipping_id') == -1: @@ -635,7 +634,8 @@ class website_sale(http.Controller): shipping_info['parent_id'] = partner_id checkout['shipping_id'] = orm_partner.create(cr, SUPERUSER_ID, shipping_info, context) order.write({'partner_shipping_id': checkout.get('shipping_id')}) - order_obj.onchange_partner_shipping_id(cr, SUPERUSER_ID, [order.id], context=context) + + order_obj.onchange_partner_shipping_id(cr, SUPERUSER_ID, [order.id], context=context) order_info = { 'message_partner_ids': [(4, partner_id), (3, request.website.partner_id.id)],