Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia Grupo.
Preciso fazer um formulário de cash flow que mostre o balancete da movimentação.
No meu sistema eu tenho 5 planos de contas cadastrados, sendo eles: Receitas Ordinárias, Despesas com Salários, Despesas com Obras, Despesas extraordinárias, despesas com Piscina e por ai vai...
Preciso montar uma view onde só mostre esses planos de conta se tiverem algum valor diferente que zero naquele mês.
Hoje, eu tenho uma view que coloquei o titulo do plano (Despesas De obras, por ex) e abaixo uma grid com os valores vindo do banco de dados, mas quando o valor de algum plano de conta é igual a zero ele aparece o titulo sem nenhum campo, preciso que só apareça (mesmo o titulo) se realmente tiver alguma movimentação (valor).
Acho que fui claro né? rsrsr
Como eu faço isso?
Resolveria na consulta, até ai tudo bem.
O problema é no php/html, eu queria saber como fazer para que só mostrasse no relatorio o campo se ele tivesse algum valor, juntamente com o titulo da coluna.
exemplo:
------------------------------------------------------
Despesas com salarios: (titulo da coluna)
José carlos - R$ 2000 - 24/12/2013
Antonio - R$ 1200 - 25/12/2013
Total de Despesas - R$ 3200,00
-------------------------------------------------------
Hoje, se na tabela de Salarios estiver vazia ele aparece assim:
------------------------------------------------------
Despesas com Salários:
Total de Despesas: -
------------------------------------------------------
Deu para entender?
Não consigo anexar o arquivo aqui.
Posta o código que você está usando no php. Nele a gente vai solucionar isso. Em ultimo caso, você pode criar a view apenas com os salário > 0, se não estou engano kkk'. Faz um tempo que não uso o view.
@Quero tudo, principalmente a parte de consulta ;)
Ok.. segue o codigo html e a consulta. Está funcionando perfeitamente, mas qdo a consulta retorna vazio a tabela html ainda aparece, porém sem linhas (vazia)
<!-------------------------------------------------->
<table width="229" class="table table-condensed">
<thead>
<tr>
<th colspan="3"><span class="pull-left"><h3>ORDINÁRIAS</h3></span></th>
</tr>
<tr>
<th colspan="3"><span class="pull-left"><h4>Receitas Ordinárias</h4></span></th>
</tr>
<tr class="success">
<th>Data</th>
<th>Memo</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<?php
$rec_ordinarias = ORM::for_table('transactions')
->where_raw('(`tfrom` = ? OR `tto` = ?)', array(1011, '102'))
->where_not_like('amount', '0.00')->find_many();
foreach ($rec_ordinarias as $transactions) {
$rec_ordinarias_date = $transactions['date'];
$rec_ordinarias_memo = $transactions['memo'];
$rec_ordinarias_valor = $transactions['amount'];
echo " <tr>
<td>$rec_ordinarias_date</td>
<td>$rec_ordinarias_memo</td>
<td> $rec_ordinarias_valor</td>
</tr>";
}
$t_rec_ordinarias = ORM::for_table('transactions')
->where_raw('(tfrom = ? OR tto = ?)', array('1011', '102'))
->sum('amount');
$total_rec_ordinarias = number_format ($t_rec_ordinarias, 2, ',', '.');
$btbal = number_format ($btbal, 2, ',', '.');
$trecord = number_format($abal,2,',','.');
?>
<tr>
<td colspan="2"><span class="pull-right"><strong>Total Receitas Ordinarias</strong></span></td>
<td align="right" valign="middle"><strong><?php echo $total_rec_ordinarias; ?></strong></td>
</tr>
</tbody>
</table>se entendi bem, bastaria colocar uma condicional [inline]if else...[/inline]..
e outro ponto é, evite misturar as camadas
veja que está abrindo conexão com banco de dados no meio de um HTML..
Do que jeito que está não será possível aplicar um if.. terá que colocar a consulta com o DB mais pra cima, antes de abrir as tags da tabela HTML e preferencialmente antes de iniciar quaisquer saídas..
Tenta assim...
<!-------------------------------------------------->
<?php
$rec_ordinarias = ORM::for_table('transactions')
->where_raw('(tfrom = ? OR tto = ?)', array(1011, '102'))
->where_not_like('amount', '0.00')->find_many();
$t_rec_ordinarias = ORM::for_table('transactions')
->where_raw('(tfrom = ? OR tto = ?)', array('1011', '102'))
->sum('amount');
$total_rec_ordinarias = number_format ($t_rec_ordinarias, 2, ',', '.');
$btbal = number_format ($btbal, 2, ',', '.');
$trecord = number_format($abal,2,',','.');
if($rec_ordinarias_valor > 0) { // Coloca no lugar de $rec_ordinarias_valor o valor q n pode ser 0
echo ' <table width="229" class="table table-condensed">
<thead>
<tr>
<th colspan="3"><span class="pull-left"><h3>ORDINÁRIAS</h3></span></th>
</tr>
<tr>
<th colspan="3"><span class="pull-left"><h4>Receitas Ordinárias</h4></span></th>
</tr>
<tr class="success">
<th>Data</th>
<th>Memo</th>
<th>Amount</th>
</tr>
</thead>
<tbody>';
foreach ($rec_ordinarias as $transactions) {
$rec_ordinarias_date = $transactions['date'];
$rec_ordinarias_memo = $transactions['memo'];
$rec_ordinarias_valor = $transactions['amount'];
echo " <tr>
<td>$rec_ordinarias_date</td>
<td>$rec_ordinarias_memo</td>
<td> $rec_ordinarias_valor</td>
</tr>";
}
echo '<tr>
<td colspan="2"><span class="pull-right"><strong>Total Receitas Ordinarias</strong></span></td>
<td align="right" valign="middle"><strong>'.$total_rec_ordinarias.'</strong></td>
</tr>
</tbody>
</table>
';
} else{
echo 'o valor é menor que 0'; // <<< Resultado caso o valor seja 0
}
?>
Tem outras maneiras de fazer isso. Bom, não sei dizer a "boa maneira" de fazer isso.
Fica aí o código. Qualquer dúvida é só chamar. Abraços
Ok, vou testar agora a tarde e já te respondo aqui pra ver se deu certo!!
Valeu por enquanto.. Abraços.
Perfeito.
Funcionou corretamente!
Muito obrigado mais um vez.
Um outra duvida sobre o bendito html, veja se pode me ajudar.
Tenho um combo box que o usuario vai escolher entre dois bancos, se ele escolher "Bradesco" abre um html especifico, e se ele escolher outro banco abre outro html.... Só não sei como fazer para ler a opção que o usuario vai escolher no combobox, o restante eu faço...
Meu combobox está assim:
<select name="country" class="chzn-select" id="country" style="width:250px;" tabindex="2" data-placeholder="Escolha o Tipo...">
<option value="cnab400">CNAB 400 (Boletos)</option>
<option value="cnab240">CNAB 240 (Cheques) </option>
</select>
Como faço para ler esse "Value" no if?
Uma condição WHERE não resolveria isso? WHERE valor > 0
Posta sua view para a gente