Remove invalid SEPA mandate when payment is reset to draft

Closes #14756
This commit is contained in:
Cédric Krier
2026-04-08 18:49:25 +02:00
parent cfff8414ff
commit a1a08ef8d9
+13
View File
@@ -489,6 +489,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 Payment_Invoice(metaclass=PoolMeta):
__name__ = 'account.payment'