Ir al contenido
Menú
Se marcó esta pregunta

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
Descartar
Mejor respuesta

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
Descartar
Autor

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

Publicaciones relacionadas Respuestas Vistas Actividad
2
ago 25
2055
0
abr 25
906
0
may 25
839
0
ene 25
1219
1
feb 24
1385