diff --git a/modules/account/move.py b/modules/account/move.py index 14febc243b..d35e3b065c 100644 --- a/modules/account/move.py +++ b/modules/account/move.py @@ -66,9 +66,14 @@ class DescriptionOriginMixin: @classmethod def search_description_used(cls, name, clause): pool = Pool() - domain = ['OR', [ - ('description', '!=', None), - ('description', '!=', ''), + operator = clause[1] + if operator.startswith('!') or operator.startswith('not '): + bool_op, bool_desc_op, desc_op = 'AND', 'OR', '=' + else: + bool_op, bool_desc_op, desc_op = 'OR', 'AND', '!=' + domain = [bool_op, [bool_desc_op, + ('description', desc_op, None), + ('description', desc_op, ''), ('description', *clause[1:]), ], ]