Utilizar um filtro após selecionar um determinada conta bancária Desejo selecionar uma conta bancária usando o componente TDBSeekButton e ao clicar em no botão de seleção dos cheques aparecerá apenas os cheques daquela conta. ... $criteria_contas = new TCriteria; $criteria_contas->add(new TFilter('status', '=', 'A')); $contas_id = new TDBSeekButton('contas_id','sysgestocon', 'form_movimentos', 'contas', 'conta', 'contas_id', 'c...
PF
Utilizar um filtro após selecionar um determinada conta bancária  
Desejo selecionar uma conta bancária usando o componente TDBSeekButton e ao clicar em no botão de seleção dos cheques aparecerá apenas os cheques daquela conta.
...
$criteria_contas = new TCriteria;
$criteria_contas->add(new TFilter('status', '=', 'A'));
$contas_id = new TDBSeekButton('contas_id','sysgestocon', 'form_movimentos', 'contas', 'conta', 'contas_id', 'contas_nome', $criteria_contas );
$contas_nome = new TEntry('contas_nome');

$movimentostipos_id = new TDBCombo('movimentostipos_id','sysgestocon', 'movimentostipos', 'id', 'tipo', 'ordem' );

$vencimento = new TDate('vencimento');
$pagamento = new TDate('pagamento');
$valor = new TEntry('valor');

$criteria_cheques = new TCriteria;
$criteria_cheques->add(new TFilter('chequesfases_id', '=', 'DP'));
$criteria_cheques->add(new TFilter('contas_id', '=', '<<<DESEJO COLOCAR AQUI O CODIGO DA CONTA SELECIONADA >>>'));

...

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (4)


FP

Bom dia Paulo Fonceca, eu precisei de algo similar a isso, utilizei uma ação no evento onexit do componente TDBSeekButton,
 
  1. <?php
  2. //esse codigo abaixo vai no constructor
  3. $onExitpessoa_id = new TAction(array($this, 'onExitpessoa_id'));
  4. $pessoa_id->setExitAction($onExitpessoa_id);
  5. $pessoa_id->addValidation('Destino', new TRequiredValidator);
  6. //esse codigo aqui voce declara como uma outra funcao fora do constructor
  7. public static function onExitpessoa_id($param)
  8. {
  9. if (!empty($param['pessoa_id']))
  10. {
  11. try
  12. {
  13. $obj = new StdClass;
  14. $pessoa_id = $param['pessoa_id'];
  15. $empresa_id = TSession::getValue('empresa_id');
  16. //$saldopessoa = 0;
  17. TTransaction::open('permission'); // open a transaction
  18. $pessoa = new Pessoa($pessoa_id);
  19. $array = ['empresa_id'=>$empresa_id,'pessoa_id'=>$pessoa_id];
  20. $saldo = vw_saldoclientedinheiro::getSaldo($array);
  21. //var_dump($saldo);
  22. //echo $saldo['valor'] . ' - ' . $saldo['fino'] . '<br>';
  23. if ($pessoa->limite > 0)
  24. {
  25. $limite = $pessoa->limite;
  26. }
  27. else $limite = 0;
  28. if ($pessoa->tipofechamento == 'D')
  29. {
  30. $obj->pessoa_tipo2 = 'Dinheiro';
  31. $saldopessoa = $limite - $saldo['valor'];
  32. }
  33. else
  34. {
  35. $obj->pessoa_tipo2 = 'Ouro';
  36. $saldopessoa = $limite - $saldo['fino'];
  37. }
  38. if ($saldopessoa > 0)
  39. {
  40. $obj->pessoa_situacao = 'Liberado';
  41. }
  42. else
  43. {
  44. if ($pessoa->bloqueialimite == 'S')
  45. {
  46. $obj->pessoa_situacao = 'Bloqueado';
  47. }
  48. else
  49. {
  50. $obj->pessoa_situacao = 'Liberado';
  51. }
  52. }
  53. //$mask = new PMaskFormate();
  54. //$obj->pessoa_saldo = PMaskFormate::formata_valor($saldopessoa);
  55. $obj->pessoa_saldo = $mask->decimal_to_reais($saldopessoa);
  56. $obj->pessoa_limite = $mask->decimal_to_reais($limite);
  57. //$obj->pessoa_disponivel = PMaskFormate::formata_valor($saldoPessoa);
  58. $obj->datalanc = TSession::getValue('datalancamento');
  59. TTransaction::close(); // close the transaction
  60. TForm::sendData('form_LancamentoCliente', $obj);
  61. self::onChangeTipoMoeda(array('tipomoeda'=>'D'));
  62. }
  63. catch (Exception $e)
  64. {
  65. // does nothing
  66. }
  67. }
  68. }
  69. ?>
PF

Fernando, bom dia!

Valeu a dica. Segue abaixo a alteração que fiz. Fica a dúvida.Como faço para capturar no criteria dos cheques o objeto enviado com a informação?

public static function onChangeActionMovimentosTipos($param)
{
if (!empty($param['movimentostipos_id']))
{
try
{
$obj = new StdClass;
$contas_id = $param['contas_id'];

if ($param['movimentostipos_id']=='CH')
{
TDBSeekButton::enableField('form_movimentos', 'cheques_id');
$obj->conta = $param['movimentostipos_id'];
}
else
{
TDBSeekButton::clearField('form_movimentos', 'cheques_id');
TDBSeekButton::disableField('form_movimentos', 'cheques_id');
$obj->conta = '0';
}

TForm::sendData('form_movimentos', $obj);
//self::onChangeTipoMoeda(array('tipomoeda'=>'D'));
}
catch (Exception $e)
{
//does nothing
}
}
}


+++++++++++++++++++

$criteria_cheques = new TCriteria;
$criteria_cheques->add(new TFilter('chequesfases_id', '=', 'DP'));
$criteria_cheques->add(new TFilter('contas_id', '=', '<<<DESEJO COLOCAR AQUI O CODIGO DA CONTA SELECIONADA >>>'));



</DESEJO>
NR

adianti.com.br/framework_files/tutor/index.php?class=FormInteraction
FP

Bom dia Paulo desculpa a demora, você pode jogar em um array ou pegar o Trecords e popular o uma grid ali mesmo no evento onChange,
$saldo = vw_saldoclientedinheiro::getSaldo($array); nessa linha aqui presente no meu exemplo eu utilizo uma classe para capturar os saldos do cliente e pego ela através de um array, qualquer duvida me chama no waths 65996728882 tenho acessado pouco o forum por falta de tempo acaba sendo mais fácil responder waths ou telegran