diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py
index 9188bc8ecf4..c9896aa76c4 100644
--- a/addons/account/models/account_move.py
+++ b/addons/account/models/account_move.py
@@ -2410,8 +2410,9 @@ class AccountMoveLine(models.Model):
help="This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.")
currency_id = fields.Many2one('res.currency', string='Currency')
partner_id = fields.Many2one('res.partner', string='Partner', ondelete='restrict')
- product_uom_id = fields.Many2one('uom.uom', string='Unit of Measure')
+ product_uom_id = fields.Many2one('uom.uom', string='Unit of Measure', domain="[('category_id', '=', product_uom_category_id)]")
product_id = fields.Many2one('product.product', string='Product')
+ product_uom_category_id = fields.Many2one('uom.category', related='product_id.uom_id.category_id')
# ==== Origin fields ====
reconcile_model_id = fields.Many2one('account.reconcile.model', string="Reconciliation Model", copy=False, readonly=True)
@@ -2815,9 +2816,6 @@ class AccountMoveLine(models.Model):
line.product_uom_id = line._get_computed_uom()
line.price_unit = line._get_computed_price_unit()
- if len(self) == 1:
- return {'domain': {'product_uom_id': [('category_id', '=', self.product_uom_id.category_id.id)]}}
-
@api.onchange('product_uom_id')
def _onchange_uom_id(self):
''' Recompute the 'price_unit' depending of the unit of measure. '''
diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml
index c9a87bc68ae..0a84ab9adb9 100644
--- a/addons/account/views/account_move_views.xml
+++ b/addons/account/views/account_move_views.xml
@@ -678,6 +678,7 @@
optional="show"
widget="many2many_tags"/>