Widget select com condição

16 views
Skip to first unread message

Guilherme Germano Silva

unread,
Jun 7, 2018, 11:01:45 AM6/7/18
to web2py-users-brazil
Galera, tenho essas duas tabelas:

db.define_table('EntradaProdutoEstoque',
               
Field('ID_Produto', 'reference Produto'),
               
Field('Lote'),
               
Field('Ativo', type='boolean', default=True),
               
Field('Validade', type='date'),
               
Field('Data', type='date' ),
               
Field('Quantidade', type='integer'),
               
Field('DataDesativacao',type='date')
               
)

db
.define_table('SaidaProdutoEstoque',
               
Field('ID_EntradaProdutoEstoque', 'reference EntradaProdutoEstoque'),
               
Field('CustoUnitario', type='double'),
               
Field('Data', type='date'),
               
Field('Quantidade', type='integer')
               
)

Na hora de dar a saída de produtos queria que o widget do ID_EntradaProdutoEstoque mostrasse apenas os estoques que estão ativos pela tabela EntradaProdutoEstoque, já tentei fazer:
db.SaidaProdutoEstoque.ID_EntradaProfutoEstoque.requires = db(db.EntradaProdutoEstoque.Ativo == True)
Mas não obtive sucesso.


Morganti

unread,
Jun 7, 2018, 2:52:40 PM6/7/18
to web2py-users-brazil
Alí no requires costumo usar IS_IN_SET ou IS_IN_DB, assim:

db.SaidaProdutoEstoque.ID_EntradaProdutoEstoque.requires = IS_IN_DB( db(db.EntradaProdutoEstoque.Ativo == True), db.EntradaProdutoEstoque.id, '%(id)s )

O IS_IN_DB segue com a assinatura IS_IN_DB(db, db.tabela,id, '%(campo a mostrar)s')
Quando tem query no meio, fica mais complicado mas acho que o que passei aí em cima funciona, qualquer coisa, avisa novamente

Percebi que no comando do requires que você passou, tem um erro de digitação de EntradaProfutoEstoque e o correto, pela tabela que você colou é, EntradaProdutoEstoque.

André

Guilherme Germano Silva

unread,
Jun 7, 2018, 3:46:27 PM6/7/18
to web2py-users-brazil
Funcionou, obrigado

Morganti

unread,
Jun 7, 2018, 6:03:05 PM6/7/18
to web2py-users-brazil
Falou!
Reply all
Reply to author
Forward
0 new messages