From de0cd75954dc12511c89746cd5fe93a5bf9e99ee Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Tue, 28 Dec 2010 10:05:43 +0530 Subject: [PATCH 1/5] [FIX]mrp-Constraint needed for orderpoints(minimum stock rule) lp bug: https://launchpad.net/bugs/634856 fixed bzr revid: ron@tinyerp.com-20101228043543-8ssfit6l3rpfbsuu --- addons/procurement/procurement.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 1b2d7c93466..9a206f61cf9 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -529,6 +529,7 @@ class stock_warehouse_orderpoint(osv.osv): } _sql_constraints = [ ('qty_multiple_check', 'CHECK( qty_multiple > 0 )', 'Qty Multiple must be greater than zero.'), + ('product_location_uniq', 'unique(product_id, location_id)', 'Only one order point per location is allowed!'), ] def onchange_warehouse_id(self, cr, uid, ids, warehouse_id, context=None): From 943cf9fc1fad03f6865099b9f716428cf28e4c99 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Tue, 28 Dec 2010 17:45:56 +0530 Subject: [PATCH 2/5] [IMP]Purchase Order Graph View bzr revid: ron@tinyerp.com-20101228121556-2x3cr9tyog58b4if --- addons/purchase/purchase_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index a6c6a68a217..32630b506bb 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -132,7 +132,7 @@ - + purchase.order.graph purchase.order graph From 54ae65bc49e1ca211bfd02d70f537690d203f0e1 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Tue, 28 Dec 2010 18:34:56 +0530 Subject: [PATCH 3/5] [FIX]procurement exception when there is stock lp bug: https://launchpad.net/bugs/691709 fixed bzr revid: ron@tinyerp.com-20101228130456-dhg25nxvc9igkigl --- addons/sale/sale.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index a789ad287f3..adbccc31819 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -735,11 +735,12 @@ class sale_order(osv.osv): proc_obj.write(cr, uid, [proc_id], {'product_qty': mov.product_qty, 'product_uos_qty': mov.product_uos_qty}) val = {} - for proc_id in proc_ids: - wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr) if picking_id: wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr) + + for proc_id in proc_ids: + wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr) if order.state == 'shipping_except': val['state'] = 'progress' From 8198dc0d099dacfa3eafe244c76acc6bc09bf99a Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Wed, 29 Dec 2010 12:59:45 +0530 Subject: [PATCH 4/5] [FIX]price_multi_get() is comparing pricelist_ids to pricelist_version_ids lp bug: https://launchpad.net/bugs/693056 fixed bzr revid: ron@tinyerp.com-20101229072945-kj1st3ga52knpfqa --- addons/product/pricelist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index 1468cd45200..644e96ad330 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -223,7 +223,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, pricelist_id, qty)) + (tmpl_id, product_id, plversion_ids[0], qty)) res1 = cr.dictfetchall() uom_price_already_computed = False for res in res1: From c0771e85542a7a8e52b069316bdceff2d8bd96c6 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Wed, 29 Dec 2010 15:54:10 +0530 Subject: [PATCH 5/5] [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: