|
Ola a todos.
Espero que alguem tenha alguma dica do que fazer para resolver um pequeno problema que estou tendo com ese campo domain.
Pretendo filtrar registos com base num duplo domain, como indico em baixo:
'produto_id': fields.many2one('product.product', 'Item', domain=[('requisitar_ok','=',True),('id','in',[29,30,31,32,33,34,35,36,37])]),
Esta forma funciona mas eu preciso de computar os ids automaticamente por uma funcao ao invez de fornecer a lista, como indicado em cima.
Assim o que eu pretendia colocar a funcionar era algo como isto:
'produto_id': fields.many2one('product.product', 'Item', domain=[('requisitar_ok','=',True),('id','in',material_disp_get)]),
def material_disp_get(self, cr, uid, ids, field_names, args, context):
if not len(ids):
return {}
cr.execute("SELECT p.* FROM product_product p WHERE NOT EXISTS (SELECT * FROM material_ficha f, material_linha l WHERE f.id = l.ficha_id AND f.data_saida > '"+self.material.ficha.data_saida+"' AND f.data_entrada < '"+self.material.ficha.data_entrada+"' AND p.id = l.produto_id)")
#cr.execute("SELECT p.* FROM product_product p")
res = dict(cr.fetchall())
return res
Infelizmente não funciona e não dá mensagem de erro.
Agradece-se alguma sugestão.
Cumprimentos.
_________________ GP
|