[FIX] sale : _invoiced_search returns wrong results for unpaid
lp bug: https://launchpad.net/bugs/661653 fixed bzr revid: vth@tinyerp.com-20101103123007-uwzt1y1u5epqzubg
This commit is contained in:
parent
28b0d9cc48
commit
b648470328
|
@ -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)]
|
||||
|
|
Loading…
Reference in New Issue