diff --git a/addons/account/account.py b/addons/account/account.py index 792e4c40912..e1a2dfabec6 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -580,7 +580,14 @@ class account_account(osv.osv): pass if name: if operator not in expression.NEGATIVE_TERM_OPERATORS: - ids = self.search(cr, user, ['|', ('code', '=like', name+"%"), '|', ('shortcut', '=', name), ('name', operator, name)]+args, limit=limit) + plus_percent = lambda n: n+'%' + code_op, code_conv = { + 'ilike': ('=ilike', plus_percent), + 'like': ('=like', plus_percent), + }.get(operator, (operator, lambda n: n)) + + ids = self.search(cr, user, ['|', ('code', code_op, code_conv(name)), '|', ('shortcut', '=', name), ('name', operator, name)]+args, limit=limit) + if not ids and len(name.split()) >= 2: #Separating code and name of account for searching operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.