~openerp-commiter/openobject-addons/trunk-extra-addons

« back to all changes in this revision

Viewing changes to mrp_bom_hyerarchy/bom_hyerarchy.py

  • Committer: Jay vora
  • Date: 2008-06-09 08:43:58 UTC
  • Revision ID: jvo@tinyerp.com-c8b7029321d4f9d451745e462547a609739e1c2c

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from osv import fields
 
2
from osv import osv
 
3
 
 
4
class mrp_bom(osv.osv):
 
5
        _inherit = 'mrp.bom'
 
6
        def _child_compute(self, cr, uid, ids, name, arg, context={}):
 
7
                result = {}
 
8
                for bom in self.browse(cr, uid, ids, context=context):
 
9
                        result[bom.id] = map(lambda x: x.id, bom.bom_lines)
 
10
                        ok = ((name=='child_complete_ids') and (bom.product_id.supply_method=='produce'))
 
11
                        if bom.type=='phantom' or ok:
 
12
                                sids = self.pool.get('mrp.bom').search(cr, uid, [('bom_id','=',False),('product_id','=',bom.product_id.id)])
 
13
                                if sids:
 
14
                                        bom2 = self.pool.get('mrp.bom').browse(cr, uid, sids[0], context=context)
 
15
                                        result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
 
16
                return result
 
17
        _columns = {
 
18
                'child_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hyerarchy", type='many2many'),
 
19
                'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hyerarchy", type='many2many')
 
20
        }
 
21
mrp_bom()