mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[IMP] Sanitize acc_number to upper case
Use wildcard on both sides when opertor contains 'like'
This commit is contained in:
committed by
Laurent Mignon (ACSONE)
parent
5a5c48e355
commit
31fd68de92
@@ -35,16 +35,15 @@ class ResPartnerBank(models.Model):
|
||||
compute='_get_sanitized_account_number', store=True, index=True)
|
||||
|
||||
def _sanitize_account_number(self, acc_number):
|
||||
return re.sub(r'\W+', '', acc_number)
|
||||
if acc_number:
|
||||
return re.sub(r'\W+', '', acc_number).upper()
|
||||
return False
|
||||
|
||||
@api.one
|
||||
@api.depends('acc_number')
|
||||
def _get_sanitized_account_number(self):
|
||||
value = self.acc_number
|
||||
if not value:
|
||||
self.sanitized_acc_number = False
|
||||
else:
|
||||
self.sanitized_acc_number = self._sanitize_account_number(value)
|
||||
self.sanitized_acc_number = self._sanitize_account_number(
|
||||
self.acc_number)
|
||||
|
||||
@api.returns('self')
|
||||
def search(self, cr, user, args, offset=0, limit=None, order=None,
|
||||
@@ -59,7 +58,7 @@ class ResPartnerBank(models.Model):
|
||||
else:
|
||||
value = self._sanitize_account_number(value)
|
||||
if 'like' in op:
|
||||
value = value + '%'
|
||||
value = '%' + value + '%'
|
||||
args[pos] = ('sanitized_acc_number', op, value)
|
||||
pos += 1
|
||||
return super(ResPartnerBank, self).search(
|
||||
|
||||
@@ -60,3 +60,11 @@ class TestResPartnerBank(TransactionCase):
|
||||
self.assertEquals(partner_bank, vals[0])
|
||||
self.assertEqual(partner_bank.sanitized_acc_number,
|
||||
sanitized_acc_number)
|
||||
|
||||
# search is case insensitive
|
||||
vals = partner_bank_model.search(
|
||||
[('acc_number', '=', sanitized_acc_number.lower())])
|
||||
self.assertEquals(1, len(vals))
|
||||
vals = partner_bank_model.search(
|
||||
[('acc_number', '=', acc_number.lower())])
|
||||
self.assertEquals(1, len(vals))
|
||||
|
||||
Reference in New Issue
Block a user