Expression checking corrected

bzr revid: jvo@tinyerp.com-20090513051846-7qt47z4iwqhfs07a
This commit is contained in:
Jay (Open ERP) 2009-05-13 10:48:46 +05:30
parent 7abc76bccb
commit d14399558f
1 changed files with 3 additions and 2 deletions

View File

@ -254,11 +254,12 @@ class expression(object):
query = '(%s OR %s IS NULL)' % (query, left)
else:
params = []
if right == False and table._columns[leaf[0]]._type=="boolean" and (operator == '='):
if right == False and (leaf[0] in table._columns) and table._columns[leaf[0]]._type=="boolean" and (operator == '='):
query = '%s.%s IS NULL or %s.%s = false ' % (table._table, left,table._table, left)
elif (((right == False) and (type(right)==bool)) or (right is None)) and (operator == '='):
query = '%s.%s IS NULL ' % (table._table, left)
elif right == False and table._columns[leaf[0]]._type=="boolean" and (operator in ['<>', '!=']):
elif right == False and (leaf[0] in table._columns) and table._columns[leaf[0]]._type=="boolean" and (operator in ['<>', '!=']):
query = '%s.%s IS NOT NULL and %s.%s != false' % (table._table, left,table._table, left)
elif (((right == False) and (type(right)==bool)) or right is None) and (operator in ['<>', '!=']):
query = '%s.%s IS NOT NULL' % (table._table, left)