Hey everyone, So, recently I have been digging into OpenERP 7.0. I am new to OpenERP (but not python). I came across the move lines inside the stock module and wanted to make a change, namely, pulling in supplier code from product_supplierinfo but was wondering;
Is there a better/cleaner way to do this ?
Currently, I am overloading the stock.move.tree view inside my own view.xml by doing
<record id="stock_view_move_picking_tree" model="ir.ui.view">
<field name="name">stock.move.tree</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_picking_tree"/>
<field name="arch" type="xml">
<field name="product_id" position="after">
<field name="supplier_code"/>
</field>
</field>
</record>
Then, inside my .py file. I am overloading class stock_move
class stock_move(osv.Model):
_inherit = "stock.move"
_columns = {
'supplier_code': fields.many2one('product.supplierinfo', 'Supplier Code'),
}
def onchange_product_id(self, cr, uid, ids, prod_id=False, loc_id=False,
loc_dest_id=False, partner_id=False):
...
_supobj = self.pool.get('product.supplierinfo')
_supid = _supobj.search(cr, uid,
[('product_id','=',prod_id)], context=ctx)
supplier_code = None
if len(_supid) > 0:
_sup = _supobj.browse(cr, uid, _supid, ctx)[0]
# even though a supplier is found, they may not have a product_code
if _sup.product_code:
supplier_code = _sup.id
result = {
...
'supplier_code': supplier_code,
...
}