FS
Enviar dados de um TCriteria para um HTML
Fechado
Bom dia pessoal, tudo blz?
Estou com a seguinte dificuldade, espero que consigam me ajudar.
Tenho uma classe onde utilzo 2 Tcriteria para fazer a soma total de recebimentos, pagamentos e o saldo/diferença entre eles. Gostaria de apresentar estes dados num html, criar um dashboard. Tentei de várias formas mas não tive sucesso.
Abaixo segue minha classe, ela é simples e no momento só apresento os dados na tela por um "echo". Acredito que minha dificuldade é porque a variável $total não salva no banco de dados, criei ela só pra mostrar os dados na sessão. Alguém pode me ajudar a entender como faço pra criar um replace das variáveis $total1, $total2 e $saldo? O html pra receber os dados eu sei fazer(anexo), só preciso criar o replace.
Estou com a seguinte dificuldade, espero que consigam me ajudar.
Tenho uma classe onde utilzo 2 Tcriteria para fazer a soma total de recebimentos, pagamentos e o saldo/diferença entre eles. Gostaria de apresentar estes dados num html, criar um dashboard. Tentei de várias formas mas não tive sucesso.
Abaixo segue minha classe, ela é simples e no momento só apresento os dados na tela por um "echo". Acredito que minha dificuldade é porque a variável $total não salva no banco de dados, criei ela só pra mostrar os dados na sessão. Alguém pode me ajudar a entender como faço pra criar um replace das variáveis $total1, $total2 e $saldo? O html pra receber os dados eu sei fazer(anexo), só preciso criar o replace.
- <?php
- class PainelDB extends TPage
- {
- public function __construct()
- {
- parent::__construct();
- try
- {
- TTransaction::open('cardumed_sistemaescola');
- $criteria = new TCriteria;
- $criteria->add(new TFilter('status', '=', 'Em Aberto'));
- $repository = new TRepository('Parcelas');
- $objetos = $repository->load($criteria);
- $total1 = 0;
- foreach ($objetos as $objeto)
- {
- $total1+= $objeto->valor_parcela;
- }
- echo $total1 . '<br>';
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- try
- {
- $criteria = new TCriteria;
- $criteria->add(new TFilter('status', '=', 'Em Aberto'));
- $repository = new TRepository('Fornparcelas');
- $objetos = $repository->load($criteria);
- $total2 = 0;
- $saldo = 0;
- foreach ($objetos as $objeto)
- {
- $total2+= $objeto->valor_parcelap;
- }
- echo $total2 . '<br>';
- $saldo = $total1 - $total2;
- echo $saldo;
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- }
- ?>
Fabiano
Não ficou claro sua dúvida e o seu problema!
Você se certificou que existem informações com os critérios (TCriteria) informados?
Ambos estão fazendo consultas no BD e não fazendo inserções como você comenta.
Abraços
Boa tarde Marcelo, acho que não fui claro mesmo.
O TCriteria está ok, ele carrega os dados do banco , conforme critérios informados(veja a tela em anexo). Resumindo então, minha dificuldade está em armazenar as variáveis $total1, $total2 e $saldo, de uma forma que eu consiga apresentar no meu arquivo html. Eu até tentei fazer conforme abaixo, mas acredito que não esteja correto, pois não apresentou nada no html. Se ainda não tiver claro me questione por favor e desculpe qualquer amadorismo apresentado (hehe).
$total1 = 0;
foreach ($objetos as $objeto)
{
$total1+= $objeto->valor_parcela;
}
$saldo = $total1 - $total2;
$parc = new Parcelas;
$replaces = array();
$replaces['total1'] = $parc->total1;
$replaces['total2'] = $parc->total2;
$replaces['saldo'] = $parc->saldo;
$this->html->enableSection('main', $replaces);
parent::add($this->html);
Obrigado!!
$parc = new Parcelas;
não teria que passar o id? ou é um novo registro?
$parc = new Parcelas($key);
Consegui resolver, eu estava errando no replace, o correto ficou assim:
<php
$saldo = $total1 - $total2;
$parc = new Parcelas();
$replaces = array();
$replaces['total1'] = $total1; //Aqui eu estava errando
$replaces['total2'] = $total2; //Aqui eu estava errando
$replaces['saldo'] = $saldo; //Aqui eu estava errando
$this->html->enableSection('main', $replaces);
parent::add($this->html);
?>
Felipe,
Neste caso não precisei passar o id, desta forma que fiz ele está buscando todos os dados conforme critérios inseridos. Na verdade antes eu tinha apagado o parêntese sem querer.
Obrigado pela ajuda Marcelo e Felipe.
Abraços.