[FIX] Product : Pricelist Item cannot use Main pricelist as the other pricelist
authorGPA,JVO <>
Wed, 4 Nov 2009 09:56:30 +0000 (15:26 +0530)
committerJay (Open ERP) <jvo@tinyerp.com>
Wed, 4 Nov 2009 09:56:30 +0000 (15:26 +0530)
lp bug: https://launchpad.net/bugs/471052 fixed

bzr revid: jvo@tinyerp.com-20091104095630-cg9y5hrnh95p16z0

addons/product/pricelist.py

index 3170a76..4c8006d 100644 (file)
@@ -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 {}