MC
duvida TCriteria
olá pessoal, tenho uma duvida com relação ao uso do TCriteria:
Tenho as seguintes tabelas:
Pessoa
======
id
nome
status --> A-Ativo / I-Inativo
Pessoa_Tipo
==========
id
id_pessoa
id_tipo_pessoa --> controlado por códigos 1-cliente / 2-fornecedor / 3-vendedor
Utilizo a seguinte situação para fazer o Critério de filtro:
Tenho as seguintes tabelas:
Pessoa
======
id
nome
status --> A-Ativo / I-Inativo
Pessoa_Tipo
==========
id
id_pessoa
id_tipo_pessoa --> controlado por códigos 1-cliente / 2-fornecedor / 3-vendedor
Utilizo a seguinte situação para fazer o Critério de filtro:
<?php $criteria_cli = new TCriteria(); $criteria_cli->add(new TFilter('id_tipo_pessoa','=','1'), TExpression::OR_OPERATOR); // tipo de pessoa 1 --> cliente $criteria_cli->add(new TFilter('id_cliente_erp','=',$unit_erp), TExpression::AND_OPERATOR); $id_cliente = new TDBCombo('id_cliente', 'sistema', 'PessoaTipo', 'id_pessoa', '{pessoa->nome} - ({pessoa->id})','(select nome from pessoa where id = id_pessoa) asc',$criteria_cli);?>
Mais preciso considerar apenas os registros que estão com o status A-Ativo
tem como colocar no critério essa outra opção? haja visto que trata-se de uma outra tabela.
forte abraço
Hola Marcelo
Eu uso muito a parte de View do banco, não seria mais prático.
Nilton
Ate seria, porem a view da tabela pessoa, eu tenho organizada para essas funções.
Porem, tenho a tabela Pessoa_Tipo, que agrupa varios tipos para a mesma Pessoa.
Exemplo:
Pessoa
======
id - 1
nome - Joao da Silva
status - A-Ativo
Pessoa_Tipo
==========
id - 10
id_pessoa - 1
id_tipo_pessoa - 1-cliente
id - 11
id_pessoa - 2
id_tipo_pessoa - 2-fornecedor
Dessa forma, nao encontrei uma maneira de usar o Tciretria para localizar apenas os fornecedores que estejam Ativos.
Veja o exemplo usando "in" com subselect:
https://framework.adianti.me/tutor/index.php?class=CriteriaView
Obrigado Nataniel
resolvido o problema