Merge pull request #325 from odoo-dev/saas-3-opw-608186-acl
authorMartin Trigaux <mart-e@users.noreply.github.com>
Thu, 19 Jun 2014 14:01:23 +0000 (16:01 +0200)
committerMartin Trigaux <mart-e@users.noreply.github.com>
Thu, 19 Jun 2014 14:01:23 +0000 (16:01 +0200)
[FIX] sale: cannot filter on paid = False (opw 608186)

addons/sale/sale.py

index 8e89519..1a26d51 100644 (file)
@@ -128,13 +128,12 @@ class sale_order(osv.osv):
         sale_clause = ''
         no_invoiced = False
         for arg in args:
-            if arg[1] == '=':
-                if arg[2]:
-                    clause += 'AND inv.state = \'paid\''
-                else:
-                    clause += 'AND inv.state != \'cancel\' AND sale.state != \'cancel\'  AND inv.state <> \'paid\'  AND rel.order_id = sale.id '
-                    sale_clause = ',  sale_order AS sale '
-                    no_invoiced = True
+            if (arg[1] == '=' and arg[2]) or (arg[1] == '!=' and not arg[2]):
+                clause += 'AND inv.state = \'paid\''
+            else:
+                clause += 'AND inv.state != \'cancel\' AND sale.state != \'cancel\'  AND inv.state <> \'paid\'  AND rel.order_id = sale.id '
+                sale_clause = ',  sale_order AS sale '
+                no_invoiced = True
 
         cursor.execute('SELECT rel.order_id ' \
                 'FROM sale_order_invoice_rel AS rel, account_invoice AS inv '+ sale_clause + \