<?php exit;
include('fncr-geral/configuracao_geral.php');
$pagina = "mensalidades";
$blq_pag = "boleto_retornos";
include('fncr-geral/permissoes_restricao.php');

require_once("boleto/retorno/vendor/autoload.php");

use ManoelCampos\RetornoBoleto\LeituraArquivo;
use ManoelCampos\RetornoBoleto\RetornoFactory;
use ManoelCampos\RetornoBoleto\RetornoInterface;
use ManoelCampos\RetornoBoleto\LinhaArquivo;


$alterar = 0;

// ARQUIVO DE RETORNO
if(isset($_POST['enviar']) && $_POST['enviar'] == 'arquivo') {

  if(isset($_FILES['arquivo'])){

    $arq_name = explode(".", $_FILES['arquivo']['name']);
    $arquivo_nome = $arq_name[0].date("his").'.'.$arq_name[1];

    $arquivo = 'boleto/retorno/arquivos/'. basename($arquivo_nome);

    $mes = "0".substr($arquivo_nome, 5, 1);
    if($mes=="0O"){$mes=10;}
    if($mes=="0N"){$mes=11;}
    if($mes=="0D"){$mes=12;}

    $data =
      date("Y")."-".$mes."-".
      substr($arquivo_nome, 6, 2);

    if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $arquivo)) {
      $sql_cadastrar = $bd->getConexao()->prepare('INSERT INTO clubes_boletos_retornos
      (registro, data, arquivo, status, usuario) VALUES ("'.$datahora_bd.'", "'.$data.'", "'.$arquivo_nome.'", "0", "'.$usuario_id.'")');
      if( $sql_cadastrar->execute() );
      $alterar = 1;
    } else { echo "Erro no envio"; }

  }

}

$registros = array();

$processarLinha1 = function (RetornoInterface $retorno, LinhaArquivo $linha) {
  global $registros;
  if($linha->dados["registro"] == $retorno->getIdDetalhe()){
    if(isset($linha->dados["segmento"]) && $linha->dados["segmento"]=="T"){
      $reg_sub = array(
        "documento"=>$linha->dados['documento'],
        "cod_movimento"=>$linha->dados['cod_movimento'],
        //"valor_decimal"=>$linha->dados['valor_decimal']
      );
      array_push($registros, $reg_sub);
    }
  }
};

if(isset($_POST['enviar']) && $_POST['enviar'] == 'arquivo' && $alterar == 1) {

  // ARQUIVO
  $sql_arquivo = $bd->getConexao()->prepare('SELECT *, DATE_FORMAT(data,"%d/%m/%Y") AS envio FROM clubes_boletos_retornos ORDER BY id DESC LIMIT 1');
  if( $sql_arquivo->execute() ) { $resul_arquivo = $sql_arquivo->fetch(PDO::FETCH_ASSOC);}

  $id_retorno = $resul_arquivo['id'];
  $data_arquivo = $resul_arquivo['data'];

  $fileName = "boleto/retorno/arquivos/".$resul_arquivo['arquivo'];
  $cnab240 = RetornoFactory::getRetorno($fileName);
  $leitura = new LeituraArquivo($processarLinha1, $cnab240);
  $leitura->lerArquivoRetorno();

  foreach($registros as $l){

    // Dados da mensalidade
    $sql_registro = $bd->getConexao()->prepare('SELECT * FROM clubes_financeiro WHERE documento = :documento AND status > 0');
    $sql_registro->bindValue(':documento', $l['documento'], PDO::PARAM_STR);
    if( $sql_registro->execute() ) { $resul_registro = $sql_registro->fetch(PDO::FETCH_ASSOC);}

    $id_financeiro = $resul_registro['id'];
    $id_clube = $resul_registro['id_clube'];

    if($id_financeiro>0){

      // SE FOI CADASTRADO NO BANCO
      if($l['cod_movimento']=="02"){

        // Abre Mensalidade
        $sql_alterar = $bd->getConexao()->prepare('UPDATE clubes_financeiro SET status = 2 WHERE documento = :documento AND status = 1');
        $sql_alterar->bindValue(':documento', $l['documento'], PDO::PARAM_STR);
        if( $sql_alterar->execute() );

        // Abre Boleto = 1 aberto / 2 pago / 3 cancelado
        $sql_alterar_boleto = $bd->getConexao()->prepare('UPDATE clubes_boletos SET status = 1 WHERE documento = :documento');
        $sql_alterar_boleto->bindValue(':documento', $l['documento'], PDO::PARAM_STR);
        if( $sql_alterar_boleto->execute() );

        // Inserir Registro de Status
        $sql_inserir_data = $bd->getConexao()->prepare('INSERT INTO clubes_financeiro_datas
          (id_financeiro, data, hora, status, origem) VALUES
          ("'.$id_financeiro.'", "'.$data_arquivo.'", "'.$hora.'", "2", "1")');
        if( $sql_inserir_data->execute() );

      }

      // SE FOR PAGO
      if($l['cod_movimento']=="06"){

        $sql_alterar = $bd->getConexao()->prepare('UPDATE clubes_financeiro SET
          id_retorno = :id_retorno,
          data_pgto = :data_pgto,
          data_notificacao = :data_pgto,
          data_liberacao = :data_pgto,
          valor_pago = :valor_pago,
          valor_liberado = :valor_pago,
          valor_pendente = 0,
          valor_desc_pag = 0,
          status = 4
          WHERE documento = :documento AND status > 0');
        $sql_alterar->bindValue(':id_retorno', $id_retorno, PDO::PARAM_STR);
        $sql_alterar->bindValue(':data_pgto', $data_arquivo, PDO::PARAM_STR);
        $sql_alterar->bindValue(':valor_pago', $resul_registro['valor'], PDO::PARAM_STR);
        $sql_alterar->bindValue(':documento', $l['documento'], PDO::PARAM_STR);
        if( $sql_alterar->execute() );

        // BOLETOS = 1 aberto / 2 pago / 3 cancelado
        $sql_alterar_boleto = $bd->getConexao()->prepare('UPDATE clubes_boletos SET status = 2 WHERE documento = :documento');
        $sql_alterar_boleto->bindValue(':documento', $l['documento'], PDO::PARAM_STR);
        if( $sql_alterar_boleto->execute() );

        // Inserindo Registros no Financeiro Geral
        $id_categoria_boleto_pago = 63; // Categoria "PokerWeb - Mensalidades"

        if($resul_registro['periodo_mes']!=date("m")){
          $data_vencimento = "20".$resul_registro['periodo_ano'].'-'.$resul_registro['periodo_mes'].'-'.'01';
        }else{
          $data_vencimento = date("Y-m-d");
        }

        $sql = $bd->getConexao()->prepare('INSERT INTO fingeral_registros
        (id_categoria, id_conta, id_clube, valor, periodo_mes, periodo_ano, data_lancamento, data_vencimento, data_pagamento, pagar_automatico, status_pago, status) VALUES
        (:id_categoria, 1, "'.$id_clube.'", :valor, "'.$resul_registro['periodo_mes'].'", "'.$resul_registro['periodo_ano'].'", "'.$data_arquivo.'", "'.$data_vencimento.'", "'.$data_arquivo.'", 1, 1, 0)');
        $sql->bindValue(':id_categoria', $id_categoria_boleto_pago, PDO::PARAM_STR);
        $sql->bindValue(':valor', $resul_registro['valor'], PDO::PARAM_STR);
        if( $sql->execute() );

        // EXCLUIR ESTE DEPOIS DO NOVO FINANCEIRO ESTIVER PRONTO
        $sql_financeiro_geral = $bd->getConexao()->prepare('INSERT INTO financeiro_registros
        (id_centro, id_fornecedor, data, periodo_mes, periodo_ano, valor, acao, caixa_geral, status) VALUES
        ("1", "26", "'.$data_arquivo.'", "'.$resul_registro['periodo_mes'].'", "'.$resul_registro['periodo_ano'].'", "'.$resul_registro['valor'].'", "0", "1", "1")');
        if ($sql_financeiro_geral->execute()) ;

        // Liberar Clube se bloqueado
        if($resul_registro['bloq_status_clube']==0){
          // Liberar Clube se bloqueado
          $sql_liberar_bloqueio = $bd->getConexao()->prepare('UPDATE clubes SET bloqueio = 0 WHERE id = :id_clube');
          $sql_liberar_bloqueio->bindValue(':id_clube', $id_clube, PDO::PARAM_STR);
          if( $sql_liberar_bloqueio->execute() );

          // Inserir Registro de Status
          $sql_inserir_data = $bd->getConexao()->prepare('INSERT INTO clubes_financeiro_datas
          (id_financeiro, data, hora, status, origem) VALUES
          ("'.$id_financeiro.'", "'.$data_arquivo.'", "'.$hora.'", "4", "1")');
          if( $sql_inserir_data->execute() );
        }

      }


      // SE FOI CANCELADO
      if($l['cod_movimento']=="09"){

        // Abre Boleto = 1 aberto / 2 pago / 3 cancelado
        $sql_alterar_boleto = $bd->getConexao()->prepare('UPDATE clubes_boletos SET status = 3 WHERE documento = :documento');
        $sql_alterar_boleto->bindValue(':documento', $l['documento'], PDO::PARAM_STR);
        if( $sql_alterar_boleto->execute() );

      }
    }



  }

}


// Registros
$sql_arquivos = $bd->getConexao()->prepare('
SELECT clubes_boletos_retornos.*,
  DATE_FORMAT(registro,"%d/%m/%Y - %H:%i") AS envio,
  DATE_FORMAT(data,"%d/%m/%Y") AS data_arquivo,
  usuarios.nome AS usuario
FROM clubes_boletos_retornos
  LEFT JOIN usuarios ON usuarios.id = clubes_boletos_retornos.usuario
ORDER BY data DESC');
if( $sql_arquivos->execute() ) { $resul_arquivos = $sql_arquivos->fetchall(PDO::FETCH_ASSOC);}


?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <?php include('fncr-geral/html-head.php');?>

  <link rel="stylesheet" type="text/css" href="js/datatables2/media/css/jquery.dataTables.css">
  <script type="text/javascript" language="javascript" src="js/datatables2/media/js/jquery.dataTables.js"></script>

  <script type="text/javascript" language="javascript" class="init">

    $(document).ready(function() {
      $('#table_arquivos').DataTable({
        "order": [],
        stateSave: false, // Salvar última pesquisa
        "dom": '<"top"fl>rt<"bottom"ip><"clear">', // Layout
        "pagingType": "full_numbers", // Modo Paginação
        "iDisplayLength": 10,

        "language": { // Tradução
          "lengthMenu": "Resultados por P&aacute;gina: _MENU_ ",
          "zeroRecords": "N&atilde;o existe Clubes para esta pesquisa",
          "info": "P&aacute;gina _PAGE_ de _PAGES_",
          "infoEmpty": "N&atilde;o existe Clubes para esta pesquisa",
          "infoFiltered": "(Filtrando de um total de _MAX_ Clubes)",
          "search": "Localizar Clubes: ",
          "paginate": {
            "first": "Primeira",
            "previous": "Anterior",
            "next": "Pr&oacute;xima",
            "last": "&Uacute;ltima"
          }
        }
      });
    });
  </script>

</head>
<body>

<!-- BARRA SUPERIOR -->
<?php include('barra-sup.php');?>
<!-- MENU PRINCIPAL -->
<?php include('menu.php');?>

<section id="content">

<div class="clearfix padder bg-fncr-clearfix">
<h3 class="m-b">Arquivos de Retorno</h3>
</div>

<section id="content" class="content-sidebar bg-white" style="padding-bottom: 100px">
<section class="main">
<br>

  <form class="m-b-none" method="post" action="" enctype="multipart/form-data">
    <input type="hidden" name="enviar" value="arquivo" />

    <div class="col-lg-12">
      <section class="panel">
        <header class="panel-heading">
          <button type="submit" class="btn pull-right btn-xs" style="margin: 0 0 0 15px">Enviar</button>
          <input type="file" name="arquivo" class=" btn-xs" title="Selecionar Arquivo" accept=".crt">
        </header>
        <div class="table-responsive">
          <table id="table_arquivos" class="table table-striped b-t text-small">
            <thead>
            <tr>
              <th class="text-center" width="40" style="font-size: 11px">Reg.</th>
              <th class="text-center" width="100"></th>
              <th class="text-center" width="100">Envio</th>
              <th class="text-center" width="100">Data do Arquivo</th>
              <th class="text-center" width="300">Arquivo</th>
              <th class="text-center" width="100">Usuario</th>
            </tr>
            </thead>
            <tbody>
            <?php foreach ($resul_arquivos as $l) { ?>
              <tr>
                <td class="text-info text-center" style="font-size: 11px"><?php echo $l['id'];?></td>
                <td class="text-info text-center">
                  <a href="boletos_retornos_detalhes.php?r=<?php echo $l['id']?>" class="btn btn-info btn-pagar">Detalhes</a>
                </td>
                <td class="text-info text-center"><?php echo $l['envio'];?></td>
                <td class="text-info text-center"><?php echo $l['data_arquivo'];?></td>
                <td class="text-info"><?php echo $l['arquivo'];?></td>
                <td class="text-info text-center"><?php echo $l['usuario'];?></td>
              </tr>
            <?php } ?>
            </tbody>
          </table>
        </div>
      </section>
    </div>

  </form>

</section>
</section>
</section>

<!-- FOOTER -->
<?php include('footer.php');?>

<!-- app -->
<script src="js/app.js"></script>
<script src="js/app.plugin.js"></script>
<script src="js/app.data.js"></script>
<!-- Sparkline Chart -->
<script src="js/charts/sparkline/jquery.sparkline.min.js"></script>
<!-- Easy Pie Chart -->
<script src="js/charts/easypiechart/jquery.easy-pie-chart.js"></script>
  <!-- select2 -->
<script src="js/select2/select2.min.js"></script>
  <!-- fuelux -->
<script src="js/fuelux/fuelux.js"></script>
<!-- datepicker -->
<script src="js/datepicker/bootstrap-datepicker.js"></script>
<!-- slider -->
<script src="js/slider/bootstrap-slider.js"></script>
<!-- file input -->
<script src="js/file-input/bootstrap.file-input.js"></script>
<!-- combodate -->
<script src="js/combodate/moment.min.js"></script>
<script src="js/combodate/combodate.js"></script>
<!-- parsley -->
<script src="js/parsley/parsley.min.js"></script>

</body>
</html>
<?php $bd = null; $bd_fn = null;?>
