From f511dd33b449cde1cf21d6796b4a48fb751d1923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 18 Jan 2025 12:57:41 +0100 Subject: [PATCH] Sort SEPA payments by date In order to compute the proper sequence type, the payments must be ordered by ascending date in case there are many payments for a first used mandate. Closes #12614 (grafted from 2c9566afb532ea96c728c16b9c3fe965fffa93e7) --HG-- branch : 6.0 --- modules/account_payment_sepa/payment.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/account_payment_sepa/payment.py b/modules/account_payment_sepa/payment.py index 3500310592..3b43408a6c 100644 --- a/modules/account_payment_sepa/payment.py +++ b/modules/account_payment_sepa/payment.py @@ -5,6 +5,7 @@ import os import unicodedata from itertools import groupby from io import BytesIO +from operator import attrgetter import genshi import genshi.template @@ -208,8 +209,9 @@ class Group(metaclass=PoolMeta): pool = Pool() Payment = pool.get('account.payment') if self.kind == 'receivable': + payments = sorted(self.payments, key=attrgetter('date', 'id')) mandates = Payment.get_sepa_mandates(self.payments) - for payment, mandate in zip(self.payments, mandates): + for payment, mandate in zip(payments, mandates): if not mandate: raise ProcessError( gettext('account_payment_sepa'