Skip to Content
Menu
This question has been flagged
2 Replies
2499 Views

@api.onchange('product_id', 'picking_type_id', 'company_id')
def _onchange_product_id(self):
print(1)
""" Finds UoM of changed product. """
if not self.product_id:
self.bom_id = False
elif not self.bom_id or self.bom_id.product_tmpl_id != self.product_tmpl_id or (self.bom_id.product_id and self.bom_id.product_id != self.product_id):
picking_type_id = self._context.get('default_picking_type_id')
print(picking_type_id)
picking_type = picking_type_id and self.env['stock.picking.type'].browse(picking_type_id)
bom = self.env['mrp.bom']._bom_find(self.product_id, picking_type=picking_type, company_id=self.company_id.id, bom_type='normal')[self.product_id]
print(bom)
if bom:
print('pqwewe')
self.bom_id = bom.id
self.product_qty = self.bom_id.product_qty
self.product_uom_id = self.bom_id.product_uom_id.id
else:
self.bom_id = False
self.product_uom_id = self.product_id.uom_id.id
I want to perform the all function, but i only get the print(1), not working the other things

Avatar
Discard
Best Answer

Hi,

Please check the value of self.product_id and bom.You can use print to check if the conditions are satisfied. 

The conditions may not be satisfied, and that might be the reason the other prints are not working.


Avatar
Discard
Best Answer

Hi, 

You can watch following video for this:

https://youtu.be/ezH3ql5Dmx4

Thanks

Avatar
Discard
Related Posts Replies Views Activity
2
May 23
2691
1
Apr 23
2895
0
Jun 22
1707
3
Mar 24
3489
1
May 23
2479