In OpenERP first, we create custom module and then create function in your existing module and pass parameter in function name is MaterialsRecursive.
In below example I have written Python script to Include only parent level class. Like given below python code in .py file :
def MaterialsRecursive(cr, uid, ids, 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
                       
                    
1 Comment(s)