AA
Listagem na grid filtrada por status e unidade
Boa noite.
Estou tentando filtrar a apresentação da grid de forma que as tarefas que estejam concluídas e canceladas não sejam mais listadas. Cabendo ao usuário filtrar por este status e verificar os registros.
Fiz a seguinte lógica:
Aparentemente funcionou tudo como esperado, mas percebi que as tarefas que estão Em andamento aparecem tanto na Unidade Principal quanto na Unidade Filial, o que não era para acontecer já que a linha
Na aplicação de exemplo changeman tem algo bem parecido na apresentação dos chamados, mas mesmo o usuário marcando o chamado como finalizado o mesmo continua a aparecer na listagem. Eu não queria com esse comportamento porque a aplicação, com o tempo, fica com uma listagem muito suja, cheia de tarefas/chamados, desnecessários.
Alguém consegue visualizar uma solução para isso?
Estou tentando filtrar a apresentação da grid de forma que as tarefas que estejam concluídas e canceladas não sejam mais listadas. Cabendo ao usuário filtrar por este status e verificar os registros.
Fiz a seguinte lógica:
- <?php
- $criteria_grid = new TCriteria;
- if ( $this->form->getData()->status == '' )
- {
- $criteria_grid->add(new TFilter('status', '=', 'Em andamento'), TExpression::OR_OPERATOR);
- $criteria_grid->add(new TFilter('status', '=', 'Pendente' ), TExpression::OR_OPERATOR);
- }
- elseif ($this->form->getData()->status == 'Cancelada')
- {
- $criteria_grid->add(new TFilter('status', '=', 'Cancelada' ), TExpression::OR_OPERATOR);
- }
- elseif ($this->form->getData()->status == 'Concluída')
- {
- $criteria_grid->add(new TFilter('status', '=', 'Concluída' ), TExpression::OR_OPERATOR);
- }
- $criteria_grid->add(new TFilter('system_unit_id', '=', TSession::getValue('userunitid') ), TExpression::AND_OPERATOR);
- parent::setCriteria($criteria_grid);
- ?>
Aparentemente funcionou tudo como esperado, mas percebi que as tarefas que estão Em andamento aparecem tanto na Unidade Principal quanto na Unidade Filial, o que não era para acontecer já que a linha
$criteria_grid->add(new TFilter('system_unit_id', '=', TSession::getValue('userunitid') ), TExpression::AND_OPERATOR);
deveria funcionar e filtrar.
Na aplicação de exemplo changeman tem algo bem parecido na apresentação dos chamados, mas mesmo o usuário marcando o chamado como finalizado o mesmo continua a aparecer na listagem. Eu não queria com esse comportamento porque a aplicação, com o tempo, fica com uma listagem muito suja, cheia de tarefas/chamados, desnecessários.
Alguém consegue visualizar uma solução para isso?
Para quem tiver interesse, consegui resolver a lógica com:
Alison eu uso o:
Assim consigo ver se esta ficando na logica que quero os filtros
As vezes precisa criar uma TCriteria adicionar os filtros com o operador TExpression::OR_OPERATOR e depois adicionar este TCriteria dentro da TCriteria principal, tipo: