Remove invalid SEPA mandate when payment is reset to draft

Closes #14756
(grafted from b7ab57a8f93db47a432e33e4fbf5959fc3912c34)

--HG--
branch : 7.0
This commit is contained in:
Cédric Krier
2026-04-08 18:49:25 +02:00
parent 5ab63189b7
commit dae457a8f6
+13
View File
@@ -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'