<?php
require_once "connect.php";
require_once "inc/nfc_class.php";

// header('Content-Type: application/json; charset=utf-8');

$dados_cancela = array();
$dados_cupom = array();

// dados da cancela
if(isset($_POST['cancela'])){
  //json_decode
  $dados_cancela = $_POST['cancela'];
}

// dados do cupom
if(isset($_POST['resp'])){
  $dados_cupom = $_POST['resp'];
}


/*
echo "<br>dados da cancela:<pre>";
var_dump($dados_cancela);
echo "</pre>";

echo "dados do cupom:<pre>";

// var_dump(json_decode($dados_cupom));
print_r($dados_cupom);
echo "</pre>";


echo "<h1>FORMATANDO AS RESPOSTAS VINDAS VIA JSON PARA SALVAR NO BD</h1>";
print_r($ret_sat);


exit;*/


// captura o retorno do ecf, através do Cookie no Request do EasySat
$ret_padrao= retorno_mensagem();
$ret_sat   = (array)json_decode($dados_cupom);

$comando = $ret_sat['comando'];
$resposta= $ret_sat['resposta']; // pode ser um array ou texto em caso de erro

// captura os valores de identificação do Cupom Fiscal
$a_dados_cancela = (array)json_decode($dados_cancela);
$id_documento = $a_dados_cancela['id_documento'];
$xml_enviado  = $a_dados_cancela['dadosCancelamento'];
$nr_sessao_cancela = substr("000000" . $a_dados_cancela['numeroSessao'], -6);

// Exibe mensagem ao usuário e faz o redirecionamento para a lista
$autorizado = 0;
$mensagem   = "";
$id_documento_saida = $a_dados_cancela['id_documento'];
$chave_acesso       = '';
$ds_codigo_retorno  = '';

// ajusta o resultado de forma limpa para update no banco
if(is_array($resposta)){
  $i=0;
  foreach ($ret_padrao as $key => $value) {
    if(isset($resposta[$i])){
      $ret_padrao[$key]=$resposta[$i];
      $i ++;
    }
  }
  $nr_sessao_cupom  = substr("000000" . $ret_padrao['numeroSessao'], -6);
  $ds_codigo_retorno= $ret_padrao['EEEEE'];
}




// instancia o objeto de atualização no BD
$Nfc = new NfcCode();
$Nfc->setNrNota($id_documento);

$cd_erro_retorno = "00000";

// código 07000 cupom cancelado com sucesso! e 07007 cupom já cancelado.!!!
if($ds_codigo_retorno=="07000" or $ds_codigo_retorno=="07007"){
  $autorizado     = 1;
  $pr_chave_acesso= $ret_padrao['chaveConsulta'];
  $pr_xml_retorno = base64_decode($ret_padrao['ArquivoCFeBase64']);
  $pr_qr_code     = $ret_padrao['assinaturaQRCODE'];
  $pr_mensagem    = $ret_padrao['mensagem'];
  $cd_erro_retorno= $ret_padrao['CCCC'];

  // arquivo de retorno do xml
  if(!$pr_xml_retorno==""){
    $a_dados_cancela['dadosCancelamento'] = $pr_xml_retorno;
  }
  // qrcode de retorno do xml_enviado
  if(!$pr_qr_code==""){
    $a_dados_cancela['qrcode']= $pr_qr_code;
  }
}else{
  $mensagem  = "Houve um erro ao Cancelar o Cupom!";
  // se não retornar array, EasySat não foi acionado só mensagem de texto.
  if(!is_array($resposta)){
    $erro_resposta = $resposta[0];
  }else{
    $cd_erro_retorno= $ret_padrao['CCCC'];
    $erro_resposta  = $ret_padrao['mensagem'];
  }
  $mensagem .= "Detalhe: " . $erro_resposta;
}

// faz o retorno a página solicitada
$retorno_finaliza = "$autorizado;$mensagem;$id_documento_saida;$chave_acesso;$cd_erro_retorno";
if($autorizado==0){
  addError("Houve um erro ao Cancelar o Documento:Mensagem: $erro_resposta");
}else{
  addMessage("Cupom cancelado com sucesso!");
}

$ok = $Nfc->bd_UpdateStatusCfeCancela($a_dados_cancela, $retorno_finaliza);

echo $retorno_finaliza;
return;

function retorno_mensagem(){
  $ret_cupom =array(
    'numeroSessao' => '',
    'EEEEE' => '',
    'CCCC' => '',
    'mensagem' => '',
    'cod' => '',
    'mensagemSEFAZ' => '',
    'ArquivoCFeBase64' => '',
    'timeStamp'  => '',
    'chaveConsulta' => '',
    'valorTotalCFe' => '',
    'CPFCNPJValue' => '',
    'assinaturaQRCODE' => ''
  );
  return $ret_cupom;
}

 ?>
