From 80f729db80cd4f73278eef2fb26b980949be7695 Mon Sep 17 00:00:00 2001 From: "GPA,JVO" <> Date: Wed, 4 Nov 2009 15:26:30 +0530 Subject: [PATCH] [FIX] Product : Pricelist Item cannot use Main pricelist as the other pricelist lp bug: https://launchpad.net/bugs/471052 fixed bzr revid: jvo@tinyerp.com-20091104095630-cg9y5hrnh95p16z0 --- addons/product/pricelist.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index 3170a7662a1..4c8006d80f3 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -332,6 +332,16 @@ class product_pricelist_item(osv.osv): 'sequence': lambda *a: 5, 'price_discount': lambda *a: 0, } + + def _check_recursion(self, cr, uid, ids): + for obj_list in self.browse(cr, uid, ids): + if obj_list.base == -1: + main_pricelist = obj_list.price_version_id.pricelist_id.id + other_pricelist = obj_list.base_pricelist_id.id + if main_pricelist == other_pricelist: + return False + return True + _columns = { 'name': fields.char('Rule Name', size=64, help="Explicit rule name for this pricelist line."), 'price_version_id': fields.many2one('product.pricelist.version', 'Price List Version', required=True, select=True), @@ -358,6 +368,11 @@ class product_pricelist_item(osv.osv): 'price_max_margin': fields.float('Max. Price Margin', digits=(16, int(config['price_accuracy']))), } + + _constraints = [ + (_check_recursion, _('Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList Item!'), ['base_pricelist_id']) + ] + def product_id_change(self, cr, uid, ids, product_id, context={}): if not product_id: return {}