From c0771e85542a7a8e52b069316bdceff2d8bd96c6 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Wed, 29 Dec 2010 15:54:10 +0530 Subject: [PATCH] [IMP] Improvement in Code of price_multi_get() is comparing pricelist_ids to pricelist_version_ids .BUG :-693056 bzr revid: ron@tinyerp.com-20101229102410-8710tfk7y9iowon0 --- addons/product/pricelist.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index 644e96ad330..2b612437155 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -165,15 +165,15 @@ class product_pricelist(osv.osv): # product.pricelist.version: if pricelist_ids: - pricelist_version_ids = pricelist_ids + plversions_search_ids = pricelist_ids else: # all pricelists: - pricelist_version_ids = product_pricelist_version_obj.search(cr, uid, []) + plversions_search_ids = product_pricelist_version_obj.search(cr, uid, []) - pricelist_version_ids = list(set(pricelist_version_ids)) + plversions_search_ids = list(set(plversions_search_ids)) plversions_search_args = [ - ('pricelist_id', 'in', pricelist_version_ids), + ('pricelist_id', 'in', plversions_search_ids), '|', ('date_start', '=', False), ('date_start', '<=', date), @@ -182,8 +182,9 @@ class product_pricelist(osv.osv): ('date_end', '>=', date), ] - plversion_ids = product_pricelist_version_obj.search(cr, uid, plversions_search_args) - if len(pricelist_version_ids) != len(plversion_ids): + pricelist_version_ids = product_pricelist_version_obj.search(cr, uid, plversions_search_args) + + if len(plversions_search_ids) != len(pricelist_version_ids): msg = "At least one pricelist has no active version !\nPlease create or activate one." raise osv.except_osv(_('Warning !'), _(msg)) @@ -200,7 +201,7 @@ class product_pricelist(osv.osv): results = {} for product_id, qty, partner in products_by_qty_by_partner: - for pricelist_id in pricelist_version_ids: + for pricelist_id in plversions_search_ids: price = False tmpl_id = products_dict[product_id].product_tmpl_id and products_dict[product_id].product_tmpl_id.id or False @@ -223,7 +224,7 @@ class product_pricelist(osv.osv): 'AND (min_quantity IS NULL OR min_quantity <= %s) ' 'AND i.price_version_id = v.id AND v.pricelist_id = pl.id ' 'ORDER BY sequence', - (tmpl_id, product_id, plversion_ids[0], qty)) + (tmpl_id, product_id, pricelist_version_ids[0], qty)) res1 = cr.dictfetchall() uom_price_already_computed = False for res in res1: