changeset faf70819ff37 in modules/bank:default
details: https://hg.tryton.org/modules/bank?cmd=changeset&node=faf70819ff37
description:
        Test country code and bank/branch code when guessed BIC is different

        In France the same bank code can have multiple BIC, schwifty guess only 
the
        last one so we must check that the current bank does not have a valid 
country
        and bank/branch code for the IBAN.

        issue11508
        review445091003
diffstat:

 bank.py  |  10 ++++++++--
 setup.py |   2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

diffs (33 lines):

diff -r 3c4689e449e5 -r faf70819ff37 bank.py
--- a/bank.py   Tue May 31 23:53:01 2022 +0200
+++ b/bank.py   Tue May 31 23:59:02 2022 +0200
@@ -136,9 +136,15 @@
     def check_bank(self):
         if not self.bank or not self.bank.bic:
             return
-        if IBAN:
+        if IBAN and BIC:
             iban = IBAN(self.iban)
-            if iban.bic and iban.bic != self.bank.bic:
+            bic = BIC(self.bank.bic)
+            if (iban.bic
+                    and iban.bic != bic
+                    and (
+                        iban.country_code != bic.country_code
+                        or (iban.bank_code or iban.branch_code)
+                        not in bic.domestic_bank_codes)):
                 raise AccountValidationError(
                     gettext('bank.msg_invalid_iban_bic',
                         account=self.rec_name,
diff -r 3c4689e449e5 -r faf70819ff37 setup.py
--- a/setup.py  Tue May 31 23:53:01 2022 +0200
+++ b/setup.py  Tue May 31 23:59:02 2022 +0200
@@ -138,7 +138,7 @@
     python_requires='>=3.7',
     install_requires=requires,
     extras_require={
-        'SWIFT': ['schwifty'],
+        'SWIFT': ['schwifty>=2020.01.0'],
         'test': tests_require,
         },
     dependency_links=dependency_links,

Reply via email to