From fa48e6f485775be52950d37193d269be1aa6c4ab Mon Sep 17 00:00:00 2001 From: David Monjoie Date: Fri, 9 Oct 2015 09:31:10 +0200 Subject: [PATCH] [IMP] website_sale: sale_get_order avoid useless sql request Avoid an sql request when sale_order_id is None. Improvement of 6b6d7310c0cd37a461ee25b33ea7ff70ea468740. Closes PR #8974. --- addons/website_sale/models/sale_order.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py index 4c942c2da54..8cc155b43a0 100644 --- a/addons/website_sale/models/sale_order.py +++ b/addons/website_sale/models/sale_order.py @@ -129,9 +129,16 @@ class website(orm.Model): def sale_get_order(self, cr, uid, ids, force_create=False, code=None, update_pricelist=None, context=None): sale_order_obj = self.pool['sale.order'] sale_order_id = request.session.get('sale_order_id') - sale_order = sale_order_obj.browse(cr, SUPERUSER_ID, sale_order_id, context=context) + sale_order = None + + # Test validity of the sale_order_id + if sale_order_id and sale_order_obj.exists(cr, SUPERUSER_ID, sale_order_id, context=context): + sale_order = sale_order_obj.browse(cr, SUPERUSER_ID, sale_order_id, context=context) + else: + sale_order_id = None + # create so if needed - if not sale_order.exists() and (force_create or code): + if not sale_order_id and (force_create or code): # TODO cache partner_id session partner = self.pool['res.users'].browse(cr, SUPERUSER_ID, uid, context=context).partner_id @@ -148,7 +155,7 @@ class website(orm.Model): request.session['sale_order_id'] = sale_order_id sale_order = sale_order_obj.browse(cr, SUPERUSER_ID, sale_order_id, context=context) - if sale_order.exists(): + if sale_order_id: # TODO cache partner_id session partner = self.pool['res.users'].browse(cr, SUPERUSER_ID, uid, context=context).partner_id # check for change of pricelist with a coupon