From 773d7a25d1560f7879510cd9ed763a2c0d0f08de Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Tue, 3 Dec 2013 23:39:10 +0100 Subject: [PATCH] [IMP] huge speed improvement on computing prices of several products 916 SQL queries to 216. Still too much. bzr revid: fp@tinyerp.com-20131203223910-l4hbew0f0iquii9x --- addons/product/product.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/product/product.py b/addons/product/product.py index 3e8aecc8e08..e6ea84b9c85 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -529,12 +529,15 @@ class product_product(osv.osv): pricelist_ids = self.pool.get('product.pricelist').name_search( cr, uid, pricelist, operator='=', context=context, limit=1) pricelist = pricelist_ids[0][0] if pricelist_ids else pricelist + + qtys = map(lambda x: (x, quantity, partner), ids) + price = self.pool.get('product.pricelist').price_get_multi(cr,uid, [pricelist], + qtys, context=context) for id in ids: try: - price = self.pool.get('product.pricelist').price_get(cr,uid,[pricelist], id, quantity, partner=partner, context=context)[pricelist] + res[id] = price[id][pricelist] except: price = 0.0 - res[id] = price for id in ids: res.setdefault(id, 0.0) return res