over 9 years ago
To Include only parent level class in OpenERP(Odoo) below is the method/code
In below example I have written Python script to Include only parent level class. You can directly use below python code in .py file :
- def addMaterialsRecursive(components, products, bom_lines):
- if not bom_lines:
- return components
- else:
- for bom in bom_lines:
- if bom.product_id.id not in products:
- products.append(bom.product_id.id)
- components.append(bom.id)
- product_ids = map(lambda x: x.product_id.id, bom_lines)
- sids = self.search(cr, uid, [
- ('bom_id', '=', False),
- ('product_id', 'in', product_ids)
- ])
- for bom in self.browse(cr, uid, sids):
- addMaterialsRecursive(components, products,
- bom.bom_lines)
- bom_parent = self.browse(cr, uid, bom_id, context=context)
- components = []
- products = []
- addMaterialsRecursive(components, products, bom_parent.bom_lines)
- result[bom_id] = components
- return result
def addMaterialsRecursive(components, products, bom_lines): if not bom_lines: return components else: for bom in bom_lines: if bom.product_id.id not in products: products.append(bom.product_id.id) components.append(bom.id) product_ids = map(lambda x: x.product_id.id, bom_lines) sids = self.search(cr, uid, [ ('bom_id', '=', False), ('product_id', 'in', product_ids) ]) for bom in self.browse(cr, uid, sids): addMaterialsRecursive(components, products, bom.bom_lines) bom_parent = self.browse(cr, uid, bom_id, context=context) components = [] products = [] addMaterialsRecursive(components, products, bom_parent.bom_lines) result[bom_id] = components return result
0 Comment(s)