From 1035df5340cedbfaafc7bff7d3ed23ee879b98a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 28 Apr 2024 17:30:17 +0200 Subject: [PATCH] Test if cache amount is null to include tax amount when searching for amount Closes #13219 --- modules/account_invoice/invoice.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py index 7c1cc81dc0..0419b5a778 100644 --- a/modules/account_invoice/invoice.py +++ b/modules/account_invoice/invoice.py @@ -6,7 +6,7 @@ from decimal import Decimal from itertools import chain, combinations, groupby from genshi.template.text import TextTemplate -from sql import Literal, Null +from sql import Null from sql.aggregate import Sum from sql.conditionals import Coalesce from sql.functions import CharLength, Round @@ -896,7 +896,8 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin): | tax.select(tax.invoice.as_('invoice'), Coalesce(Sum(tax.amount), 0).as_('total_amount'), where=(tax.invoice.in_(invoice_query) - & ~Exists(invoice.select(Literal(1), + & Exists(invoice.select( + invoice.id, where=(invoice.total_amount_cache == Null) & (invoice.id == tax.invoice)))), group_by=tax.invoice)) @@ -968,7 +969,8 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin): query = tax.select(tax.invoice, where=(tax.invoice.in_(invoice_query) - & ~Exists(invoice.select(Literal(1), + & Exists(invoice.select( + invoice.id, where=(invoice.tax_amount_cache == Null) & (invoice.id == tax.invoice)))), group_by=tax.invoice,