diff --git a/addons/stock/models/stock_move_line.py b/addons/stock/models/stock_move_line.py
index 0334981c217..68e5f3c3aad 100644
--- a/addons/stock/models/stock_move_line.py
+++ b/addons/stock/models/stock_move_line.py
@@ -21,7 +21,7 @@ class StockMoveLine(models.Model):
move_id = fields.Many2one(
'stock.move', 'Stock Move',
help="Change to a better name", index=True)
- company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env['res.users']._get_company(), readonly=True)
+ company_id = fields.Many2one('res.company', string='Company', related='move_id.company_id', store=True, readonly=True)
product_id = fields.Many2one('product.product', 'Product', ondelete="cascade")
product_uom_id = fields.Many2one('uom.uom', 'Unit of Measure', required=True)
product_qty = fields.Float(
@@ -74,12 +74,6 @@ class StockMoveLine(models.Model):
if line.lot_id and line.product_id != line.lot_id.product_id:
raise ValidationError(_('This lot %s is incompatible with this product %s' % (line.lot_id.name, line.product_id.display_name)))
- @api.constrains('company_id', 'move_id')
- def _check_same_company_id(self):
- for line in self:
- if line.move_id and line.move_id.company_id != line.company_id:
- raise ValidationError(_('The move line a a different company than its move'))
-
@api.one
def _set_product_qty(self):
""" The meaning of product_qty field changed lately and is now a functional field computing the quantity
diff --git a/addons/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml
index e33e665842a..87c63386ca7 100644
--- a/addons/stock/security/stock_security.xml
+++ b/addons/stock/security/stock_security.xml
@@ -101,7 +101,7 @@
stock_move_line multi-company
- [('company_id','child_of',[user.company_id.id])]
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]