details: https://code.tryton.org/tryton/commit/376256561d9a
branch: 7.0
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 9b84d79169e5 -r 376256561d9a 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
@@ -7,7 +7,7 @@
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
@@ -329,12 +329,16 @@
advance_payment_term.get_conditions(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 condition in self.advance_payment_conditions:
for invoice_line in condition.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 9b84d79169e5 -r 376256561d9a
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
@@ -401,7 +401,7 @@
>>> handle_exception = sale.click('handle_invoice_exception')
>>> 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')
>>> inv_recreated.invoice_date == next_week