diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py index 3c0955e72c..29dc5e6403 100644 --- a/modules/purchase/purchase.py +++ b/modules/purchase/purchase.py @@ -1411,7 +1411,14 @@ class Line(sequence_ordered(), ModelSQL, ModelView): @classmethod def __setup__(cls): super().__setup__() + t = cls.__table__() cls.__access__.add('purchase') + cls._sql_indexes.update({ + Index(t, + (t.product, Index.Range()), + (t.purchase, Index.Equality()), + where=t.type == 'line'), + }) cls._order.insert(0, ('purchase.purchase_date', 'DESC NULLS FIRST')) cls._order.insert(1, ('purchase.id', 'DESC')) diff --git a/modules/sale/sale.py b/modules/sale/sale.py index 31d17e638f..00aa4dddfe 100644 --- a/modules/sale/sale.py +++ b/modules/sale/sale.py @@ -1579,7 +1579,14 @@ class SaleLine(TaxableMixin, sequence_ordered(), ModelSQL, ModelView): @classmethod def __setup__(cls): super().__setup__() + t = cls.__table__() cls.__access__.add('sale') + cls._sql_indexes.update({ + Index(t, + (t.product, Index.Range()), + (t.sale, Index.Equality()), + where=t.type == 'line'), + }) cls._order.insert(0, ('sale.sale_date', 'DESC NULLS FIRST')) cls._order.insert(1, ('sale.id', 'DESC'))