TC
Filtrar detalhes apartir de item do master / master detail
Pessoal tenho um cenário que é o seguinte tenho tres tabelas são elas:
*conta_a_pagar
*parcela
*fornecedor
quanto crio uma conta então define-se uma ou mais parcelas, a tabela parcela possue o campo fk conta_a_pagar_id.
na tabela conta a pagar gravo detalhes como fornecedor, quantidade de parcelas, valor total, e na tabela parcelas guardo os valores de cada parcela, vecimento, data de pagamento etc..
tenho uma tela aonde listo as parcelas e pego datalhes da conta relacionada, coisas como fornecedor, descrição etc.. relacionado da seguinte forma:
ex: {conta_a_pagar->fornecedor_id}
até ai beleza a questão é:
como eu filtro parcelas(vencimentos) com base em itens que tem na tabela relacionada conta_a_pagar.
*conta_a_pagar
*parcela
*fornecedor
quanto crio uma conta então define-se uma ou mais parcelas, a tabela parcela possue o campo fk conta_a_pagar_id.
na tabela conta a pagar gravo detalhes como fornecedor, quantidade de parcelas, valor total, e na tabela parcelas guardo os valores de cada parcela, vecimento, data de pagamento etc..
tenho uma tela aonde listo as parcelas e pego datalhes da conta relacionada, coisas como fornecedor, descrição etc.. relacionado da seguinte forma:
ex: {conta_a_pagar->fornecedor_id}
até ai beleza a questão é:
como eu filtro parcelas(vencimentos) com base em itens que tem na tabela relacionada conta_a_pagar.
Você pode usar subselects ou criar uma view com join entre as tabelas.
Sobre os subselects, veja o link abaixo:
adianti.com.br/framework_files/tutor/index.php?class=CriteriaView
Valeu Nataniel funcionou usei subselect segue exemplo
//no onSearch
if (isset($data->fornecedor_id) AND ($data->fornecedor_id)) {
$filter = new TFilter('(SELECT fornecedor_idFROM conta_a_pagar WHERE conta_a_pagar_id = conta_a_pagar.id)','like',"%{$data->fornecedor_id}%");
TSession::setValue('ParcelaList_filter_fornecedor_id', $filter); // stores the filter in the session
}
//no onReload
if (TSession::getValue('ParcelaList_filter_fornecedor_id')) {
$criteria->add(TSession::getValue('ParcelaList_filter_fornecedor_id')); // add the session filter
}