From dae457a8f61d520b4fa26349e4ea28d7c4c31111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 8 Apr 2026 18:49:25 +0200 Subject: [PATCH] Remove invalid SEPA mandate when payment is reset to draft Closes #14756 (grafted from b7ab57a8f93db47a432e33e4fbf5959fc3912c34) --HG-- branch : 7.0 --- modules/account_payment_sepa/payment.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/account_payment_sepa/payment.py b/modules/account_payment_sepa/payment.py index ce5b2a8822..bb8dfe27d6 100644 --- a/modules/account_payment_sepa/payment.py +++ b/modules/account_payment_sepa/payment.py @@ -472,6 +472,19 @@ class Payment(metaclass=PoolMeta): ('sepa_info_id', operator, code_value, *extra), ] + @classmethod + @ModelView.button + @Workflow.transition('draft') + def draft(cls, payments): + to_remove_mandate = [] + for payment in payments: + if (payment.sepa_mandate + and payment.sepa_mandate.state != 'validated'): + to_remove_mandate.append(payment) + if to_remove_mandate: + cls.write(to_remove_mandate, {'sepa_mandate': None}) + super().draft(payments) + class Mandate(Workflow, ModelSQL, ModelView): 'SEPA Mandate'