diff --git a/models/sale.py b/models/sale.py
index 21f377689db1a86f54fa5bfe8e81a4c377eb14cd..4e17f5113466ac6ecfca87175a028c80d32ff61a 100644
--- a/models/sale.py
+++ b/models/sale.py
@@ -12,6 +12,12 @@ class SaleOrder(models.Model):
     _description = "Sales Order"
     _order = 'date_order desc, id desc'
 
+    untaxed_amount_to_invoice = fields.Monetary(
+        string='Remains to invoice (untaxed)',
+        compute='_remain_to_invoice',
+        store=True,
+        readonly=True)
+
     @api.depends('order_line.invoice_status')
     def _remain_to_invoice(self):
         """
@@ -19,24 +25,5 @@ class SaleOrder(models.Model):
         from sale order
         """
         for order in self:
-            if order.invoice_status == ('to invoice'):
-                line_to_invoice = [line for line in order.order_line
-                                   if line.invoice_status != 'no']
-
-                untaxed_amount_to_invoice = order.amount_untaxed
-                for line in line_to_invoice:
-                    untaxed_amount_to_invoice -= (line.qty_invoiced
-                                                  * line.price_unit)
-            else:
-                untaxed_amount_to_invoice = 0.0
-
-            order.update({
-                'untaxed_amount_to_invoice': untaxed_amount_to_invoice
-            })
-
-    untaxed_amount_to_invoice = fields.Monetary(
-        string='Remains to invoice (untaxed)',
-        compute='_remain_to_invoice',
-        store=True,
-        readonly=True,
-        tracking=True)
+            order.untaxed_amount_to_invoice = sum(
+                order.order_line.mapped('untaxed_amount_to_invoice'))