Skip to Content
Menu
This question has been flagged

When I create a filter, for example, for contacts with more than 10 sales orders, Odoo filters out all 99 of my contacts (seee image), even if only one contact has more than 10 sales orders.



How to correct this and create filters based on the number of sales orders?

Thanks

Ricardo

Avatar
Discard
Best Answer

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)


Avatar
Discard
Author

obrigado Renata!what if my question tag is wrong and it should be 18SaaS, i.e. only with Studio available for customisation?
thanks
BR
Ricardo

Related Posts Replies Views Activity
2
Aug 25
2030
0
Apr 25
872
0
May 25
800
0
Jan 25
1201
1
Feb 24
1376