Hi, Ricardo!
Odoo, by default, does not allow filtering directly by aggregated fields, with that, Odoo ends up applying the filter to all contacts, without considering the actual number of orders associated with each of them.
The suggestion would be to create a custom field that counts and stores the number of sales orders related to the contact:
from odoo import models, fields, api
class ResPartner(models.Model):
_inherit = 'res.partner'
# Computed field that counts the associated sales orders
new_sales_order_count = fields.Integer(
string='Número de Pedidos de Vendas',
compute='_compute_sales_order_count'
)
@api.depends('sale_order_ids')
def _compute_sales_order_count(self):
for partner in self:
partner.new_sales_order_count = len(partner.sale_order_ids)