Lançado Adianti Framework 7.6!
Clique aqui para saber mais
sub select criteria Gostaria de uma ajuda dos amigos, sobre sub select no criteria Ate dei uma olhada nos exemplos do Tutor, mais confesso que não consegui me encontrar. Tenho uma tabela de NFEntrada e NFEntradaItem, ambas estão ligadas pelo id_nfe (logicamente) Preciso montar um relatório onde eu possa preencher o código do produto e o filtro busque apenas as notas as quais tenham o produto selecionado. ...
MC
sub select criteria  
Gostaria de uma ajuda dos amigos, sobre sub select no criteria

Ate dei uma olhada nos exemplos do Tutor, mais confesso que não consegui me encontrar.
Tenho uma tabela de NFEntrada e NFEntradaItem, ambas estão ligadas pelo id_nfe (logicamente)

Preciso montar um relatório onde eu possa preencher o código do produto e o filtro busque apenas as notas as quais tenham o produto selecionado.

  1. <?php
  2.             $repository = new TRepository('NfEntrada');
  3.             $criteria   = new TCriteria;
  4.             
  5.             $repositoryTotal = new TRepository('NfEntradaTotal');
  6.             $criteriaTotal   = new TCriteria;
  7.             
  8.             $repositoryItem = new TRepository('NfEntradaItem');
  9.             $criteriaItem   = new TCriteria;
  10.             if ($data->dt_emissao_inicial)
  11.             {
  12.                 $criteria->add(new TFilter('dt_emissao''>='"{$data->dt_emissao_inicial}"));
  13.             }
  14.             if ($data->dt_emissao_final)
  15.             {
  16.                 $criteria->add(new TFilter('dt_emissao''<='"{$data->dt_emissao_final}"));
  17.             }
  18.             if ($data->id_fornecedor)
  19.             {
  20.                 $criteria->add(new TFilter('id_fornecedor''='"{$data->id_fornecedor}"));
  21.             }
  22.             
  23.             if ($data->id_produto)
  24.             {
  25.                 $criteriaItem->add(new TFilter('id_produto''='"{$data->id_produto}"));
  26.                 $criteria->add(new TFilter('id''IN''(SELECT id_nf_entrada FROM NfEntrada)'));   // <== aqui estou com duvida ???
  27.             }
  28.             $objects $repository->load($criteriaFALSE);
  29.             $objectsTotal $repositoryTotal->load($criteriaTotalFALSE);
  30.             $objectsItem $repositoryItem->load($criteriaItemFALSE);
  31. ?>


Vou listar o cabeçalho da nota e logo abaixo os itens que pertence a esta nota, porem se eu selecionar um produto especifico, preciso que liste apenas o cabeçalho das notas as quais tenham o produto selecionado.

Forte abraço.


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (2)


JR

  1. <?php
  2. $criteria->add(new TFilter('id''IN''(SELECT id_nf_entrada FROM NfEntradaItem WHERE id_produto = '. (int)($data->id_produto) . ')' ));
  3. ?>


Talvez algo assim funcione pra vc.
Talvez uma view no banco tb funcione.
MC

João Vitor muito obrigado pelo apoio, ficou perfeito....