Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, tudo bem?
Me ajudem com essa lógica?
Estou fazendo a leitura do arquivo retorno do banco (cnab400), como alguns sabem, ele é um arquivo texto onde contem dados sobre os pagamentos recebidos pelo banco.
Nesse arquivo, já fiz a estrutura para ler todos os dados e estes já estão em variáveis, tudo certinho, e nestas variáveis existe uma que é o "Nosso numero", que nada mais é do que o ID do meu cliente me meu banco de dados. Porém, preciso fazer uma rotina que verifica se este id existe no banco de dados para depois fazer o update na tabela e os que não existirem retornar em uma query!
Por exemplo:
Este arquivo vem com 100 linhas de dados. Primeiramente ele tem que comparar todos que existem, dar baixa no DB e para aqueles que não existirem no DB ele me retorna uma query com os dados que não encontrou.
Hoje, minha estrutura de leitura está assim:
function linhaProcessada($self, $numLn, $vlinha) {
if($vlinha) {
if($vlinha["registro"] == $self::DETALHE) {
$nossonumero = $vlinha['nosso_numero'];
$datapagamento = $vlinha["data_ocorrencia"];
$valorpago = $vlinha["valor_recebido"];
$valorpago2=number_format ($valorpago, 2, ',', '.');
$valorpago3=number_format ($valorpago, 2, '.', ',');
$iid = $nossonumero;
$conn = mysql_connect("localhost", "teste", "123456") or die ('Não foi possivel conectar ao banco de dados! Erro: ' . mysql_error());
if ($conn) {mysql_select_db("teste", $conn);}
$sql2 = mysql_query("select i.userid, i.status, i.created as data, i.total as valor, a.name as nome, a.company as unidade
from invoices i
inner join accounts a on (i.userid = a.id)
where i.userid = $nossonumero
group by `duedate`
");
$unidade = mysql_fetch_array($sql2);
$unidade1 =$unidade["unidade"];
$datavenci =$unidade["data"];
$valor_final =$unidade["valor"];
$nome_inquilino = $unidade['nome'];
$new_date = date('Y-m-d', strtotime($datapagamento));
// Atualizando a tabela Invoice
$sqlupdate = mysql_query("UPDATE invoices SET status = 'Paid', total='$valorpago', duedate = '$new_date' WHERE userid = '$nossonumero'");
// Inserindo a transaçao de pagamentos
$sqlinsert = mysql_query("INSERT INTO transactions(ttype, tfrom, tto, amount, date, memo, status) VALUES ('Income', '$nossonumero', '102', '$valorpago', '$new_date', 'Invoice Payment', 'Completed')");
// Adicionando o valor no caixa
$caixa = mysql_query("select balance from accounts WHERE acctype = 'Bank' ");
$account = mysql_fetch_array($caixa);
$balancooriginal =$account["balance"];
$somabalanco = $balancooriginal + $valorpago ;
$bancoupdate = mysql_query("UPDATE accounts SET balance ='$somabalanco'WHERE acctype = 'Bank'");
mysql_close($conn);
?>
<div class="container">
<div class="row-fluid">
<div class="span6">
<div class="widget">
<div class="widget-header">
<div class="title2">
Arquivo Retorno UNICRED ==============> Dados Originais
</div>
</div>
<div class="widget-body">
<div class="tab-widget">
<ul>
<table class="table table-striped mbzero tbl-mail">
<thead>
<tr>
<th width="50%" class="modal-footer">Registro:
<?php echo $nossonumero; ?>
</th>
<th width="50%">
Unidade:
<?php
if ($unidade1 != ''){echo $unidade1;}
else {echo '<span class="alert-danger">Não Cadastrado</span>';}
?>
</th>
<tr>
<th class="modal-footer">Data do pagamento:
<?php echo $new_date; ?>
</th>
<th>Data da Emissão:
<?php echo $datavenci; ?>
</th>
</tr>
<tr>
<th class="modal-footer">Valor Pago:
<?php echo $valorpago2; ?>
</th>
<th>Valor Original:
<?php echo $valor_final; ?></th>
</tr>
</thead>
</table>
</ul>
</div>
</div>
</div>
</div>
<?phpCarregando comentários...