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'))