details: https://code.tryton.org/tryton/commit/b7ab57a8f93d
branch: default
user: Cédric Krier <[email protected]>
date: Wed Apr 08 18:49:25 2026 +0200
description:
Remove invalid SEPA mandate when payment is reset to draft
Closes #14756
diffstat:
modules/account_payment_sepa/payment.py | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diffs (23 lines):
diff -r 2fc55f35f172 -r b7ab57a8f93d modules/account_payment_sepa/payment.py
--- a/modules/account_payment_sepa/payment.py Wed Apr 08 17:16:26 2026 +0200
+++ b/modules/account_payment_sepa/payment.py Wed Apr 08 18:49:25 2026 +0200
@@ -489,6 +489,19 @@
('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 Payment_Invoice(metaclass=PoolMeta):
__name__ = 'account.payment'