From bc0cff4bf8e594cbedec50f0bf9c6cc6efd5b6ee Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Wed, 20 Jan 2016 19:03:24 +0100 Subject: [PATCH] [FIX] website_sale: do not reload the previous cart if not valid If a user signs in, and as a previous unfinished order, it loads it only if the pricelist set on this sale order is amongs the available pricelists. Otherwise, he could benefit of prices that are no longer available. --- addons/website_sale/models/sale_order.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py index 58d7b45fd14..7e07c31f5f4 100644 --- a/addons/website_sale/models/sale_order.py +++ b/addons/website_sale/models/sale_order.py @@ -267,7 +267,12 @@ class website(orm.Model): """ partner = self.get_partner(cr, uid) sale_order_obj = self.pool['sale.order'] - sale_order_id = request.session.get('sale_order_id') or (partner.last_website_so_id.id if partner.last_website_so_id and partner.last_website_so_id.state == 'draft' else False) + sale_order_id = request.session.get('sale_order_id') + if not sale_order_id: + last_order = partner.last_website_so_id + available_pricelists = self.get_pricelist_available(cr, uid, context=context) + # Do not reload the cart of this user last visit if the cart is no longer draft or uses a pricelist no longer available. + sale_order_id = last_order and last_order.state == 'draft' and last_order.pricelist_id in available_pricelists and last_order.id sale_order = None # Test validity of the sale_order_id