AW
Usar criteria no TDBUniqueSearch
Olá pessoal, como vão?
Preciso de uma ajuda para colocar um filtro no TDBUniqueSearch
A regra é não trazer a mesma empresa que estou editando.
Abaixo segue parte do código que utilizo em um form com cortina lateral.
Só coloquei o trecho que estou com a duvida.
minha duvida é quanto ao recebimento do parâmetro ID da empresa pois, quando clico em editar através da listagem para carregar as informações na cortina lateral eu não consigo pegar esse parâmetro para colocar no filtro, pois esse ID (empresa) não pode ser apresentado na pesquisa que o usuário faz no TDBUniqueSearch.
Eu tenho que carregar esse critério quando carrego os dados através do método onEdit?
Se sim, tem um exemplo?
Tentei com TSession porem para alterar o ID eu tenho que clicar 2X em editar para mudar esse ID na sessão no form da cortina lateral.
Segue parte do código dentro do método onEdit
Obrigado
Preciso de uma ajuda para colocar um filtro no TDBUniqueSearch
A regra é não trazer a mesma empresa que estou editando.
Abaixo segue parte do código que utilizo em um form com cortina lateral.
Só coloquei o trecho que estou com a duvida.
- <?php
- $filtro_contratada = TSession::getValue('criteria_contratada');
- $repo = new TRepository('Empresa');
- $criteria_contratada = new TCriteria();
- $criteria_contratada->add(new TFilter('id', '<>', $filtro_contratada));
- $contratada_id = new TDBUniqueSearch('contratada_id[]', 'sgdt', 'Empresa', 'id', 'cnpj', null, $criteria_contratada);
- ....
- ....
- ....
- ?>
minha duvida é quanto ao recebimento do parâmetro ID da empresa pois, quando clico em editar através da listagem para carregar as informações na cortina lateral eu não consigo pegar esse parâmetro para colocar no filtro, pois esse ID (empresa) não pode ser apresentado na pesquisa que o usuário faz no TDBUniqueSearch.
Eu tenho que carregar esse critério quando carrego os dados através do método onEdit?
Se sim, tem um exemplo?
Tentei com TSession porem para alterar o ID eu tenho que clicar 2X em editar para mudar esse ID na sessão no form da cortina lateral.
Segue parte do código dentro do método onEdit
- <?php
- $contratadas = Contratada::where('contratante_id', '=', $empresa->id)->load();
- TSession::setValue('criteria_contratada', $param['key']);
- if ($contratadas){
- $this->contratadas->addHeader();
- foreach ($contratadas as $contratada){
- $objeto_contratada = new stdClass;
- $objeto_contratada->contratada_id = $contratada->contratada_id; // campo TDBUniqueSearch
- $this->contratadas->addDetail($objeto_contratada);
- }
- $this->contratadas->addCloneAction();
- }else{
- //$this->onClear($param);
- $this->contratadas->addHeader();
- $this->contratadas->addDetail( new stdClass );
- $this->contratadas->addCloneAction();
- }
- ?>
Obrigado
Você pode criar a variável da criteria com escopo de classe e adicionar as restrições na onEdit:
Nataniel obrigado.
Funcionou certinho.