From 28b0d9cc48b5fb1fb6edba18d15639d7a529e7a4 Mon Sep 17 00:00:00 2001 From: vth Date: Wed, 3 Nov 2010 17:14:34 +0530 Subject: [PATCH 1/2] [MERGE] merge from trunk-dev-addons-3 bzr revid: vth@tinyerp.com-20101103114434-2ghb5pg9fmtxccw6 --- addons/sale/sale.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 19ceaf50e2c..d9f9677e97c 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -180,12 +180,11 @@ class sale_order(osv.osv): 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 ' -# clause += 'AND inv.state <> \'paid\'' + clause += 'AND inv.state <> \'paid\'' no_invoiced = True cursor.execute('SELECT rel.order_id ' \ - 'FROM sale_order_invoice_rel AS rel, account_invoice AS inv, sale_order AS sale ' \ + 'FROM sale_order_invoice_rel AS rel, account_invoice AS inv ' \ 'WHERE rel.invoice_id = inv.id ' + clause) res = cursor.fetchall() @@ -194,7 +193,7 @@ class sale_order(osv.osv): 'FROM sale_order AS sale ' \ 'WHERE sale.id NOT IN ' \ '(SELECT rel.order_id ' \ - 'FROM sale_order_invoice_rel AS rel) and sale.state != \'cancel\'') + 'FROM sale_order_invoice_rel AS rel) ') res.extend(cursor.fetchall()) if not res: return [('id', '=', 0)] From b648470328eaee45d485c864a637421046f3c99c Mon Sep 17 00:00:00 2001 From: vth Date: Wed, 3 Nov 2010 18:00:07 +0530 Subject: [PATCH 2/2] [FIX] sale : _invoiced_search returns wrong results for unpaid lp bug: https://launchpad.net/bugs/661653 fixed bzr revid: vth@tinyerp.com-20101103123007-uwzt1y1u5epqzubg --- addons/sale/sale.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index d9f9677e97c..e7b76df6d18 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -175,25 +175,26 @@ class sale_order(osv.osv): return [] clause = '' no_invoiced = False + sale_clause = '' for arg in args: if arg[1] == '=': if arg[2]: clause += 'AND inv.state = \'paid\'' else: - clause += 'AND inv.state <> \'paid\'' + 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 ' \ + 'FROM sale_order_invoice_rel AS rel, account_invoice AS inv '+ sale_clause + \ 'WHERE rel.invoice_id = inv.id ' + clause) - res = cursor.fetchall() if no_invoiced: cursor.execute('SELECT sale.id ' \ 'FROM sale_order AS sale ' \ 'WHERE sale.id NOT IN ' \ '(SELECT rel.order_id ' \ - 'FROM sale_order_invoice_rel AS rel) ') + 'FROM sale_order_invoice_rel AS rel) and sale.state != \'cancel\'') res.extend(cursor.fetchall()) if not res: return [('id', '=', 0)]