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

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

$dados_venda = array();
$dados_cupom = array();

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

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

// 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'];

// ajusta o resultado de forma limpa para update no banco
if($comando=="EnviarDadosVenda"){
    $i=0;
    foreach ($ret_padrao as $key => $value) {
        if(isset($resposta[$i])){
            $ret_padrao[$key]=$resposta[$i];
            $i ++;
        }
    }
}

/*
 echo "<pre>";
 print_r($ret_padrao);
 echo "</pre>";
 exit;
 */

$a_dados_venda = (array)json_decode($dados_venda);

// captura os valores de identificação do Cupom Fiscal
$id_documento    = $a_dados_venda['id_documento'];
$xml_original    = $a_dados_venda['dadosVenda'];
$nr_sessao_venda = substr("000000" . $a_dados_venda['numeroSessao'], -6);
$nr_sessao_cupom = substr("000000" . $ret_padrao['numeroSessao'], -6);

// Se não retornou a mensagem de erro, captura erro da resposta do EasySat
if($ret_padrao['cod']==""){
    $ret_padrao['cod'] =="000"; // 000 Erro de Conexão EasySat
}

if($ret_padrao['mensagem']==""){
    $ret_padrao['mensagem'] = $resposta[0];
}


/* Sessões informadas nos objects correspondem, atualiza BD; Executa o comando no BD
 if($nr_sessao_venda==$nr_sessao_cupom){
 global $id_documento;
 global $xml_original;
 */
// instancia o objeto de atualização no BD
$Nfc = new NfcCode();
$Nfc->setNrNota($id_documento);

// executa o comando de atualização, passando o retorno e xml original se necessário!
$ok = $Nfc->bd_UpdateStatusNfc($ret_padrao, $xml_original);





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

if($ret_padrao['EEEEE']!="06000"){
    $mensagem  = "Houve um erro ao emitir o Cupom Fiscal de Venda!";
    $mensagem .= "Detalhe:" . $ret_padrao['mensagem'];
    
}else{
    $chave_acesso = $ret_padrao['chaveConsulta'];
    
    $mensagem  = "Cupom emitido com Sucesso!Chave:$chave_acesso";
    $movimenta = new Movimentacao;
    $movimenta->saidaEstoque($id_documento, 2);
    $autorizado=1;
}

// faz o retorno a página solicitada
$retorno_finaliza = "$autorizado;$mensagem;$id_documento_saida;$chave_acesso";
if($autorizado==0){
    addError($retorno_finaliza);
}else{
    addMessage($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;
}

?>
