From 5889baa345cc49b3883770f28cd16ab9da182967 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 4 May 2021 14:40:13 +0000 Subject: [PATCH] [FIX] sale: fix search "invoices is not set" for sale.order BEFORE this commit query "invoices is not set" was tranformed to query "order_line.invoice_lines.invoice_id is False", which doesn't make sense, because invoice_id is required fields and hence always set. Hence, result of the query was always empty. AFTER: just check that there is no invoice_lines. Strictly speacking, is not the same as checking result of compute method, but because invoice_lines are supposed to be lines for invoices of out_* type, the result should be the same. --- opw-2516124 closes odoo/odoo#70526 X-original-commit: 4ed6527cb414ee11d9bfac43a78dcc68ce233d07 Signed-off-by: Ivan Yelizariev // IEL --- addons/sale/models/sale.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index 675db4a3fcd..60bca5a2749 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -141,6 +141,8 @@ class SaleOrder(models.Model): """, (list(value),)) so_ids = self.env.cr.fetchone()[0] or [] return [('id', 'in', so_ids)] + if operator == '=' and not value: + return [('order_line.invoice_lines', '=', False)] return ['&', ('order_line.invoice_lines.move_id.move_type', 'in', ('out_invoice', 'out_refund')), ('order_line.invoice_lines.move_id', operator, value)] name = fields.Char(string='Order Reference', required=True, copy=False, readonly=True, states={'draft': [('readonly', False)]}, index=True, default=lambda self: _('New'))