Sort advance payment invoices on Function fields of sale

Closes #15131
This commit is contained in:
Cédric Krier
2026-09-30 13:00:48 +02:00
parent f219204eb6
commit bb79d8029f
2 changed files with 8 additions and 4 deletions
+7 -3
View File
@@ -8,7 +8,7 @@ from simpleeval import simple_eval
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 @@ class Sale(metaclass=PoolMeta):
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):
@@ -392,7 +392,7 @@ it::
... 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)