From 7cf12e5a4db37c24085146fe519bfdeb17c576a7 Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Tue, 23 Nov 2021 18:27:50 +0100
Subject: [PATCH] [add] IBAN validation on SDD

---
 models/account_payment_order.py | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/models/account_payment_order.py b/models/account_payment_order.py
index 3fc26cb..c4685cd 100644
--- a/models/account_payment_order.py
+++ b/models/account_payment_order.py
@@ -2,6 +2,7 @@
 # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
 
 from odoo import fields, models, api
+from odoo.exceptions import ValidationError
 
 
 class AccountPaymentOrder(models.Model):
@@ -76,3 +77,29 @@ class AccountPaymentOrder(models.Model):
             'search_view_id': [search_id, 'search'],
             'domain': [['payment_order_id', '=', self.id]],
         }
+
+    # ------------------------------------------------------
+    # Common function
+    # ------------------------------------------------------
+    @api.multi
+    def check_sepa_order(self):
+        for order in self:
+            if not order.sepa:
+                msg = "Les comptes bancaires des coopératives suivantes ne sont pas corrects : \n"
+                payment_line_ids = order.payment_line_ids.mapped('partner_bank_id')
+                account_ids = payment_line_ids.filtered(lambda a: a.acc_type != 'iban')
+                for acc in account_ids:
+                    msg += ' - ' + acc.partner_id.name + " - " + acc.acc_number + "\n"
+
+                msg += "\nVeuillez corriger ces comptes bancaires pour pouvoir valider l'ordre de prélèvement."
+                raise ValidationError(msg)
+            else:
+                return True
+
+    # ------------------------------------------------------
+    # Override Parent
+    # ------------------------------------------------------
+    @api.multi
+    def open2generated(self):
+        self.check_sepa_order()
+        return super(AccountPaymentOrder, self).open2generated()
\ No newline at end of file
-- 
GitLab