details:   https://code.tryton.org/tryton/commit/f489762a4cc2
branch:    7.8
user:      Cédric Krier <[email protected]>
date:      Wed Sep 30 13:00:48 2026 +0200
description:
        Sort advance payment invoices on Function fields of sale

        Closes #15131
        (grafted from acfea4fba2c5555d65e96ef277e0ab1150869396)
diffstat:

 modules/sale_advance_payment/sale.py                            |  10 
+++++++---
 modules/sale_advance_payment/tests/scenario_advance_payment.rst |   2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

diffs (43 lines):

diff -r bc049d1f5adf -r f489762a4cc2 modules/sale_advance_payment/sale.py
--- a/modules/sale_advance_payment/sale.py      Tue Sep 29 15:31:30 2026 +0200
+++ b/modules/sale_advance_payment/sale.py      Wed Sep 30 13:00:48 2026 +0200
@@ -8,7 +8,7 @@
 from trytond import backend, config
 from trytond.i18n import gettext
 from trytond.model import (
-    DeactivableMixin, ModelSQL, ModelView, Workflow, fields)
+    DeactivableMixin, ModelSQL, ModelView, Workflow, fields, sort)
 from trytond.modules.company.model import (
     CompanyMultiValueMixin, CompanyValueMixin)
 from trytond.modules.currency.fields import Monetary
@@ -346,12 +346,16 @@
             self.advance_payment_lines = advance_payment_term.get_lines(self)
 
     def get_advance_payment_invoices(self, name):
+        pool = Pool()
+        Invoice = pool.get('account.invoice')
+        field = getattr(self.__class__, name)
+        order = field.order if field.order is not None else Invoice._order
         invoices = set()
         for line in self.advance_payment_lines:
             for invoice_line in line.invoice_lines:
                 if invoice_line.invoice:
-                    invoices.add(invoice_line.invoice.id)
-        return list(invoices)
+                    invoices.add(invoice_line.invoice)
+        return sort(invoices, order)
 
     @classmethod
     def search_advance_payment_invoices(cls, name, clause):
diff -r bc049d1f5adf -r f489762a4cc2 
modules/sale_advance_payment/tests/scenario_advance_payment.rst
--- a/modules/sale_advance_payment/tests/scenario_advance_payment.rst   Tue Sep 
29 15:31:30 2026 +0200
+++ b/modules/sale_advance_payment/tests/scenario_advance_payment.rst   Wed Sep 
30 13:00:48 2026 +0200
@@ -392,7 +392,7 @@
     ...     handle_exception.form.recreate_invoices.find())
     >>> handle_exception.execute('handle')
     >>> sale.reload()
-    >>> _, inv_recreated = sale.advance_payment_invoices
+    >>> inv_recreated, _ = sale.advance_payment_invoices
     >>> inv_recreated.total_amount
     Decimal('10.00')
     >>> assertEqual(inv_recreated.invoice_date, next_week)

Reply via email to