From d3678bf5216f7b015ac75f9c929b225bd7e143c4 Mon Sep 17 00:00:00 2001 From: "chm@openerp.com" <> Date: Mon, 5 May 2014 14:47:02 +0200 Subject: [PATCH] [FIX] website_sale: don't rewrite sale order partner_id with the public user bzr revid: chm@openerp.com-20140505124702-cq6tvb6h3lgyst99 --- addons/website_sale/controllers/main.py | 7 +++++-- addons/website_sale/models/sale_order.py | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 866fd194316..dd094794696 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -369,7 +369,7 @@ class website_sale(http.Controller): orm_partner = registry.get('res.partner') orm_user = registry.get('res.users') - order_line_obj = request.registry.get('sale.order') + order_obj = request.registry.get('sale.order') billing_info = self.checkout_parse('billing', checkout, True) @@ -406,7 +406,7 @@ class website_sale(http.Controller): order_info.update(registry.get('sale.order').onchange_partner_id(cr, SUPERUSER_ID, [], partner_id, context=context)['value']) order_info.pop('user_id') - order_line_obj.write(cr, SUPERUSER_ID, [order.id], order_info, context=context) + order_obj.write(cr, SUPERUSER_ID, [order.id], order_info, context=context) @http.route(['/shop/checkout'], type='http', auth="public", website=True, multilang=True) def checkout(self, **post): @@ -521,6 +521,8 @@ class website_sale(http.Controller): if not order or not order.order_line or acquirer_id is None: return request.redirect("/shop/checkout") + assert order.partner_id.id != request.website.partner_id.id + # find an already existing transaction tx = request.website.sale_get_transaction() if not tx: @@ -530,6 +532,7 @@ class website_sale(http.Controller): 'amount': order.amount_total, 'currency_id': order.pricelist_id.currency_id.id, 'partner_id': order.partner_id.id, + 'partner_country_id': order.partner_id.country_id.id, 'reference': order.name, 'sale_order_id': order.id, }, context=context) diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py index cd334a2c451..a83bb26b6c8 100644 --- a/addons/website_sale/models/sale_order.py +++ b/addons/website_sale/models/sale_order.py @@ -169,7 +169,7 @@ class website(orm.Model): request.session['sale_order_code_pricelist_id'] = False # check for change of partner_id ie after signup - if sale_order.partner_id.id != partner.id: + if sale_order.partner_id.id != partner.id and request.website.partner_id.id != partner.id: flag_pricelist = False pricelist_id = request.session.get('sale_order_code_pricelist_id') or partner.property_product_pricelist.id if pricelist_id != sale_order.pricelist_id.id: @@ -187,6 +187,10 @@ class website(orm.Model): if flag_pricelist or values.get('fiscal_position') != fiscal_position: update_pricelist(pricelist_id) + # update browse record + if (code and code != sale_order.pricelist_id.code) or sale_order.partner_id.id != partner.id: + sale_order = sale_order_obj.browse(cr, SUPERUSER_ID, sale_order.id, context=context) + return sale_order def sale_get_transaction(self, cr, uid, ids, context=None):