<?php include('../../fncr-geral/configuracao_geral.php');

if(isset($_GET['r']) && isset($_GET['m']) && isset($_GET['a'])){

$registro = preg_replace("/[^0-9al]/", "", $_GET['r']);
$periodo_mes = preg_replace("/[^0-9]/", "", $_GET['m']);
$periodo_ano = preg_replace("/[^0-9]/", "", $_GET['a']);

  if($registro=="all"){

    // Dados do Registro
    $sql_registros = $bd->getConexao()->prepare('
    SELECT clubes_financeiro.*, DATE_FORMAT(vencimento,"%d/%m/%Y") AS vencimentoformat
    FROM clubes_financeiro
      LEFT JOIN clubes ON clubes.id = clubes_financeiro.id_clube
    WHERE clubes_financeiro.periodo_mes = :periodo_mes AND clubes_financeiro.periodo_ano = :periodo_ano AND clubes_financeiro.id_boleto = 0 AND clubes.status = 2 AND clubes.cancelado = 0 AND
    (clubes_financeiro.status = 1 or clubes_financeiro.status = 2 or clubes_financeiro.status = 3)');
    $sql_registros->bindValue(':periodo_mes', $periodo_mes, PDO::PARAM_STR);
    $sql_registros->bindValue(':periodo_ano', $periodo_ano, PDO::PARAM_STR);
    if( $sql_registros->execute() ) { $resul_registros = $sql_registros->fetchall(PDO::FETCH_ASSOC);}

  }else{

    // Dados do Registro (específico)
    $sql_registros = $bd->getConexao()->prepare('
    SELECT clubes_financeiro.*, DATE_FORMAT(vencimento,"%d/%m/%Y") AS vencimentoformat
    FROM clubes_financeiro
      LEFT JOIN clubes ON clubes.id = clubes_financeiro.id_clube
    WHERE clubes_financeiro.id = :idfinanceiro AND clubes_financeiro.periodo_mes = :periodo_mes AND clubes_financeiro.periodo_ano = :periodo_ano');
    $sql_registros->bindValue(':idfinanceiro', $registro, PDO::PARAM_STR);
    $sql_registros->bindValue(':periodo_mes', $periodo_mes, PDO::PARAM_STR);
    $sql_registros->bindValue(':periodo_ano', $periodo_ano, PDO::PARAM_STR);
    if( $sql_registros->execute() ) { $resul_registros = $sql_registros->fetchall(PDO::FETCH_ASSOC);}

  }



  // ---------------------- DADOS FIXOS DE CONFIGURA��O DO SEU BOLETO --------------- //

  // NAO ALTERAR!
  include("boleto_gerar.php");

  // DADOS DA SUA CONTA - SICREDI
  $codigobanco = "748";
  $dadosboleto["agencia"] = "0710"; 	// Num da agencia (4 digitos), sem Digito Verificador
  $dadosboleto["conta"] = "21486"; 	  // Num da conta (5 digitos), sem Digito Verificador
  $dadosboleto["conta_dv"] = "1"; 	  // Digito Verificador do Num da conta

  // DADOS PERSONALIZADOS - SICREDI
  $dadosboleto["posto"]= "55";      // Código do posto da cooperativa de crédito
  $dadosboleto["byte_idt"]= "2";	  // Byte de identifica��o do cedente do bloqueto utilizado para compor o nosso número.
  // 1 - Idtf emitente: Cooperativa | 2 a 9 - Idtf emitente: Cedente
  $dadosboleto["carteira"] = "A";   // Código da Carteira: A (Simples)

  // SEUS DADOS
  $dadosboleto["identificacao"] = '';
  $dadosboleto["cpf_cnpj"] = '';
  $dadosboleto["endereco"] = '';
  $dadosboleto["cidade_uf"] = '';
  $dadosboleto["cedente"] = '';

  // último boleto
  $sql_ult_boleto = $bd->getConexao()->prepare('SELECT * FROM clubes_boletos ORDER BY id DESC LIMIT 1');
  if( $sql_ult_boleto->execute() ) { $resul_ult_boleto = $sql_ult_boleto->fetch(PDO::FETCH_ASSOC);}
  $id_ult_boleto = $resul_ult_boleto['id'];

  foreach($resul_registros as $l){

    // DADOS DO BOLETO PARA O SEU CLIENTE
    $taxa_boleto = 000;
    $dias_de_prazo_para_pagamento = 0;
    //$data_venc = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400));
    $data_venc = $l['vencimentoformat'];
    $valor_cobrado = $l['valor']; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal
    $valor_cobrado = str_replace(",", ".",$valor_cobrado);
    $valor_boleto = number_format($valor_cobrado+$taxa_boleto, 2, ',', '');

    $dadosboleto["inicio_nosso_numero"] = date("y");	  // Ano da geração do título ex: 07 para 2007
    $dadosboleto["nosso_numero"] = ($id_ult_boleto+1);  // Nosso numero (máx. 5 digitos) - Numero sequencial de controle.
    $dadosboleto["numero_documento"] = $l['documento'];
    $dadosboleto["data_vencimento"] = $data_venc;       // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA
    $dadosboleto["data_documento"] = date("d/m/Y");     // Data de emissão do Boleto
    $dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional)
    $dadosboleto["valor_boleto"] = $valor_boleto; 	    // Valor do Boleto - REGRA: Com v�rgula e sempre com duas casas depois da virgula

    // DADOS DO SEU CLIENTE
    $dadosboleto["sacado"] = '';
    $dadosboleto["endereco1"] = '';
    $dadosboleto["endereco2"] = '';

    // INFORMACOES PARA O CLIENTE
    $dadosboleto["demonstrativo1"] = '';
    $dadosboleto["demonstrativo2"] = '';
    $dadosboleto["demonstrativo3"] = '';

    // INSTRU��ES PARA O CAIXA
    $dadosboleto["instrucoes1"] = '';
    $dadosboleto["instrucoes2"] = '';
    $dadosboleto["instrucoes3"] = '';
    $dadosboleto["instrucoes4"] = '';

    // DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE
    $dadosboleto["quantidade"] = '';
    $dadosboleto["valor_unitario"] = '';
    $dadosboleto["aceite"] = '';	    // N - remeter cobrança sem aceite do sacado  (cobranças não-registradas)
    // S - remeter cobrança apos aceite do sacado (cobranças registradas)
    $dadosboleto["especie"] = '';
    $dadosboleto["especie_doc"] = ''; // OS - Outros segundo manual para cedentes de cobrança SICREDI

    /* SCRIPT GERAR INF BOLETO */
    $codigo_banco_com_dv = geraCodigoBanco($codigobanco);
    $nummoeda = "9";
    $fator_vencimento = fator_vencimento($dadosboleto["data_vencimento"]);
    $valor = formata_numero($dadosboleto["valor_boleto"],10,0,"valor");
    $agencia = formata_numero($dadosboleto["agencia"],4,0);
    $posto = formata_numero($dadosboleto["posto"],2,0);
    $conta = formata_numero($dadosboleto["conta"],5,0);
    $conta_dv = formata_numero($dadosboleto["conta_dv"],1,0);
    $carteira = $dadosboleto["carteira"];
    $filler1 = 1;  $filler2 = 0;
    $byteidt = $dadosboleto["byte_idt"];
    $tipo_cobranca = 3;
    $tipo_carteira = 1;
    $nnum = $dadosboleto["inicio_nosso_numero"] . $byteidt . formata_numero($dadosboleto["nosso_numero"],5,0);
    $dv_nosso_numero = digitoVerificador_nossonumero("$agencia$posto$conta$nnum");
    $nossonumero_dv ="$nnum$dv_nosso_numero";
    $campolivre = "$tipo_cobranca$tipo_carteira$nossonumero_dv$agencia$posto$conta$filler1$filler2";
    $campolivre_dv = $campolivre . digitoVerificador_campolivre($campolivre);
    $dv = digitoVerificador_barra("$codigobanco$nummoeda$fator_vencimento$valor$campolivre_dv", 9, 0);
    $linha = "$codigobanco$nummoeda$dv$fator_vencimento$valor$campolivre_dv";
    $nossonumero = substr($nossonumero_dv,0,2).'/'.substr($nossonumero_dv,2,6).'-'.substr($nossonumero_dv,8,1);
    $agencia_codigo = $agencia.".". $posto.".".$conta;
    $dadosboleto["codigo_barras"] = $linha;
    $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha);
    $dadosboleto["agencia_codigo"] = $agencia_codigo;
    $dadosboleto["nosso_numero"] = $nossonumero;
    $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv;
    /***************************/

    $sql_cadastrar_data = $bd->getConexao()->prepare('INSERT INTO clubes_boletos
      (id_clube, id_financeiro, documento, nosso_numero, periodo_mes, periodo_ano, valor, vencimento, emissao, remessa_envio, remessa_alteracao, status) VALUES (
      "'.$l['id_clube'].'","'.$l['id'].'","'.$l['documento'].'","'.$dadosboleto["nosso_numero"].'","'.$periodo_mes.'","'.$periodo_ano.'","'.$l['valor'].'","'.$l['vencimento'].'","'.date("Y-m-d").'","0","0","0")');
    if( $sql_cadastrar_data->execute() );

    // último boleto
    $sql_ult_boleto = $bd->getConexao()->prepare('SELECT * FROM clubes_boletos ORDER BY id DESC LIMIT 1');
    if( $sql_ult_boleto->execute() ) { $resul_ult_boleto = $sql_ult_boleto->fetch(PDO::FETCH_ASSOC);}
    $id_ult_boleto = $resul_ult_boleto['id'];

    $sql_alterar = $bd->getConexao()->prepare('UPDATE clubes_financeiro SET
        id_boleto = :id_boleto
        WHERE id = :id_registro');
    $sql_alterar->bindValue(':id_boleto', $id_ult_boleto, PDO::PARAM_STR);
    $sql_alterar->bindValue(':id_registro', $l['id'], PDO::PARAM_STR);
    if( $sql_alterar->execute() );

  }

  header("Location: ../../mensalidades.php?periodo=".$periodo_mes."_".$periodo_ano);  exit;

}
?>
<?php $bd = null; $bd_fn = null;?>