changeset 383efc9a7fd8 in modules/bank:default
details: https://hg.tryton.org/modules/bank?cmd=changeset&node=383efc9a7fd8
description:
        Search also on BIC when searching bank name

        and remove starting wildcard when searching account number

        issue11135
        review384071002
diffstat:

 CHANGELOG |   2 ++
 bank.py   |  26 +++++++++++++++++++++++++-
 party.py  |   7 +------
 3 files changed, 28 insertions(+), 7 deletions(-)

diffs (85 lines):

diff -r 7ae98204fa0c -r 383efc9a7fd8 CHANGELOG
--- a/CHANGELOG Sat Dec 18 16:31:07 2021 +0100
+++ b/CHANGELOG Sun Jan 30 13:00:50 2022 +0100
@@ -1,3 +1,5 @@
+* Remove starting wildcard when searching account number
+* Search also on BIC when searching bank name
 * Add support for Python 3.10
 * Remove support for Python 3.6
 
diff -r 7ae98204fa0c -r 383efc9a7fd8 bank.py
--- a/bank.py   Sat Dec 18 16:31:07 2021 +0100
+++ b/bank.py   Sun Jan 30 13:00:50 2022 +0100
@@ -7,6 +7,7 @@
 from trytond.i18n import gettext
 from trytond.model import (
     DeactivableMixin, ModelSQL, ModelView, fields, sequence_ordered)
+from trytond.tools import lstrip_wildcard
 
 from .exceptions import IBANValidationError, InvalidBIC
 
@@ -23,7 +24,17 @@
 
     @classmethod
     def search_rec_name(cls, name, clause):
-        return [('party.rec_name',) + tuple(clause[1:])]
+        if clause[1].startswith('!') or clause[1].startswith('not '):
+            bool_op = 'AND'
+        else:
+            bool_op = 'OR'
+        bic_value = clause[2]
+        if clause[1].endswith('like'):
+            bic_value = lstrip_wildcard(clause[2])
+        return [bool_op,
+            ('party.rec_name',) + tuple(clause[1:]),
+            ('bic', clause[1], bic_value) + tuple(clause[3:]),
+            ]
 
     @fields.depends('bic')
     def on_change_with_bic(self):
@@ -129,6 +140,19 @@
             else self.number)
 
     @classmethod
+    def search_rec_name(cls, name, clause):
+        if clause[1].startswith('!') or clause[1].startswith('not '):
+            bool_op = 'AND'
+        else:
+            bool_op = 'OR'
+        number_value = clause[2]
+        if clause[1].endswith('like'):
+            number_value = lstrip_wildcard(clause[2])
+        return [bool_op,
+            ('number', clause[1], number_value) + tuple(clause[3:]),
+            ]
+
+    @classmethod
     def create(cls, vlist):
         vlist = [v.copy() for v in vlist]
         for values in vlist:
diff -r 7ae98204fa0c -r 383efc9a7fd8 party.py
--- a/party.py  Sat Dec 18 16:31:07 2021 +0100
+++ b/party.py  Sun Jan 30 13:00:50 2022 +0100
@@ -2,7 +2,6 @@
 # this repository contains the full copyright notices and license terms.
 from trytond.model import fields
 from trytond.pool import PoolMeta
-from trytond.tools import lstrip_wildcard
 from trytond.transaction import Transaction
 
 
@@ -18,13 +17,9 @@
             bool_op = 'AND'
         else:
             bool_op = 'OR'
-        code_value = clause[2]
-        if clause[1].endswith('like'):
-            code_value = lstrip_wildcard(clause[2])
         return [bool_op,
             domain,
-            ('bank_accounts.numbers.rec_name',
-                clause[1], code_value) + tuple(clause[3:]),
+            ('bank_accounts.numbers.rec_name',) + tuple(clause[1:]),
             ]
 
     @classmethod

Reply via email to