diff --git a/addons/stock/models/stock_move_line.py b/addons/stock/models/stock_move_line.py index 96f8b4cb05a..5d3c03ed833 100644 --- a/addons/stock/models/stock_move_line.py +++ b/addons/stock/models/stock_move_line.py @@ -22,6 +22,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) 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,6 +75,12 @@ 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 c48b0627077..55b02efc58f 100644 --- a/addons/stock/security/stock_security.xml +++ b/addons/stock/security/stock_security.xml @@ -97,6 +97,13 @@ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + stock_move_line multi-company + + + [('company_id','child_of',[user.company_id.id])] + + stock_quant multi-company