<?php $acesso_bd = "ok"; include('fncr-geral/coneccao-bd.php');

  require_once "js/PagSeguroLibrary/PagSeguroLibrary.php";
  $email = "lswebsites@hotmail.com";
  $token = "5418AF7C4B824F7C8DE7C2012DE7EE08";
  $notificationCode = $_POST['notificationCode'];
  $url = "https://ws.pagseguro.uol.com.br/v2/transactions/notifications/".$notificationCode."?email=".$email."&token=".$token;

  $curl = curl_init($url);
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  $response = curl_exec($curl);
  $http = curl_getinfo($curl);

  if($response == 'Unauthorized'){   print_r($response);   exit;  }
  curl_close($curl);
  $response= simplexml_load_string($response);
  if(count($response -> error) > 0){   print_r($response);   exit;  }

/********* CONFIGURAÇÃO LOCAL *********/

// Data e Hora atual
date_default_timezone_set("Brazil/East");
$data_atual = date('Y/m/d');
$hora = date('H:i');

$id_registro        = $response->reference;
$status_pgt         = $response->status;
$cod_transacao      = $response->code;
$valor_transacao    = $response->grossAmount;
$data_notificacao   = $response->lastEventDate;   $data_notificacao = explode('T', $data_notificacao);
$valor_desc_pag     = $response->feeAmount;
$valor_liberado     = $response->netAmount;
$data_liberacao     = $response->escrowEndDate;   $data_liberacao = explode('T', $data_liberacao);
$boleto             = $response->paymentLink;

// Dados do Registro para verificar vencimento
$sql_registro = $bd->getConexao()->prepare('SELECT * FROM clubes_financeiro WHERE id = :id_registro');
$sql_registro->bindValue(':id_registro', $id_registro, PDO::PARAM_STR);
if( $sql_registro->execute() ) { $resul_registro = $sql_registro->fetch(PDO::FETCH_ASSOC);}

if($resul_registro['status']!=4){

  $id_clube = $resul_registro['id_clube'];
  $valor_pendente = $resul_registro['valor'] - $valor_transacao;

  // Salvando o código de transacao
  $sql_alterar_reg = $bd->getConexao()->prepare('UPDATE clubes_financeiro SET
      transacao = :transacao,
      valor_pago = :valor_transacao,
      data_notificacao = :data_notificacao,
      valor_pendente = :valor_pendente,
      valor_desc_pag = :valor_desc_pag,
      valor_liberado = :valor_liberado,
      boleto = :boleto
      WHERE id = :id_registro');
  $sql_alterar_reg->bindValue(':transacao',$cod_transacao, PDO::PARAM_STR);
  $sql_alterar_reg->bindValue(':valor_transacao',$valor_transacao, PDO::PARAM_STR);
  $sql_alterar_reg->bindValue(':data_notificacao',$data_notificacao[0], PDO::PARAM_STR);
  $sql_alterar_reg->bindValue(':valor_pendente',$valor_pendente, PDO::PARAM_STR);
  $sql_alterar_reg->bindValue(':valor_desc_pag',$valor_desc_pag, PDO::PARAM_STR);
  $sql_alterar_reg->bindValue(':valor_liberado',$valor_liberado, PDO::PARAM_STR);
  $sql_alterar_reg->bindValue(':boleto',$boleto, PDO::PARAM_STR);
  $sql_alterar_reg->bindValue(':id_registro', $id_registro, PDO::PARAM_STR);
  if( $sql_alterar_reg->execute() );

  // Status Pag-seguro
  $sql_statuspag = $bd->getConexao()->prepare('SELECT * FROM clubes_financeiro_statuspag WHERE id = :id_pag');
  $sql_statuspag->bindValue(':id_pag', $status_pgt, PDO::PARAM_STR);
  if( $sql_statuspag->execute() ) { $resul_statuspag = $sql_statuspag->fetch(PDO::FETCH_ASSOC);}

  $status_fncr = $resul_statuspag['id_status'];
  $atualizar_registro = 1;
  $inserir_data = 1;

  if($status_fncr == 0 && $status_pgt == 7){ // se foi cancelado
    // Comparando as Datas
    if(strtotime($data_atual) > strtotime($resul_registro['vencimento'])){
      $status_fncr = 3;
    }elseif(strtotime($data_atual) <= strtotime($resul_registro['vencimento'])){
      $status_fncr = 2;
    }
  }

  if($status_fncr == 0){
    // Pago e Disponivel
    if($status_pgt == 4){  $atualizar_registro = 0; $inserir_data = 0; }
    // Entrou em disputa
    if($status_pgt == 5){  $atualizar_registro = 0; $inserir_data = 0; }
    // Dinheiro devolvido ao comprador
    if($status_pgt == 6){  $atualizar_registro = 0; $inserir_data = 0; }
    // se não foi finalizado
    if($status_pgt == 7){
      if(strtotime($data_atual) > strtotime($resul_registro['vencimento'])){  $status_fncr = 3;
      }elseif(strtotime($data_atual) <= strtotime($resul_registro['vencimento'])){      $status_fncr = 2;    }
    }
    // Dinheiro devolvido ao comprador
    if($status_pgt == 8){  $atualizar_registro = 0; $inserir_data = 0; }
    // Contestado
    if($status_pgt == 9){  $atualizar_registro = 0; $inserir_data = 0; }
  }

  // Atualizando Status do Registro e Data FNCR
  if($atualizar_registro == 1){
    $sql_alterar_reg = $bd->getConexao()->prepare('UPDATE clubes_financeiro SET
    status = :id_status
    WHERE id = :id_registro');
    $sql_alterar_reg->bindValue(':id_status',$status_fncr, PDO::PARAM_STR);
    $sql_alterar_reg->bindValue(':id_registro', $response->reference, PDO::PARAM_STR);
    if( $sql_alterar_reg->execute() );
  }

  if($status_fncr == 4){
    $sql_data_pgto = $bd->getConexao()->prepare('UPDATE clubes_financeiro SET
    data_pgto = :data_pgto,
    data_liberacao = :data_liberacao
    WHERE id = :id_registro');
    $sql_data_pgto->bindValue(':id_registro', $id_registro, PDO::PARAM_STR);
    $sql_data_pgto->bindValue(':data_pgto', $data_notificacao[0], PDO::PARAM_STR);
    $sql_data_pgto->bindValue(':data_liberacao',$data_liberacao[0], PDO::PARAM_STR);
    if( $sql_data_pgto->execute() );

    // Inserindo Registros no Financeiro Geral
    $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", "1", "'.$data_atual.'", "'.$resul_registro['periodo_mes'].'", "'.$resul_registro['periodo_ano'].'", "'.$valor_liberado.'", "0", "1", "1")');
    if ($sql_financeiro_geral->execute()) ;

    $sql_data_pgto = $bd->getConexao()->prepare('UPDATE clubes SET
    bloqueio = 0 WHERE id = :id_clube');
    $sql_data_pgto->bindValue(':id_clube', $id_clube, PDO::PARAM_STR);
    if( $sql_data_pgto->execute() );
  }

  if($inserir_data == 1){
  $sql_inserir_data = $bd->getConexao()->prepare('INSERT INTO clubes_financeiro_datas
    (id_financeiro, data, hora, status, origem) VALUES
    ("'.$response->reference.'", "'.$data_atual.'", "'.$hora.'", "'.$status_fncr.'", "1")');
  if( $sql_inserir_data->execute() );
  }

  // Atualizando data PAG-Seguro
  $sql_inserir_data = $bd->getConexao()->prepare('INSERT INTO clubes_financeiro_dataspag
    (id_financeiro, data, hora, status) VALUES
    ("'.$response->reference.'", "'.$data_atual.'", "'.$hora.'", "'.$response->status.'")');
  if( $sql_inserir_data->execute() );


}

$bd = null;
?>


