<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
require_once 'api/nfephp/bootstrap.php';
require_once  'connect.php';
require_once 'inc/messages.php';

use NFePHP\NFe\ToolsNFe;

$nfe = new ToolsNFe('api/nfephp/config/config.json');
$nfe->setModelo('55');

//210200 – Confirmação da Operação
//210210 – Ciência da Operação
//210220 – Desconhecimento da Operação
//210240 – Operação não Realizada ===> é obritatoria uma justificativa para esse caso

/*
 OK EM Ciência da Operação pelo Destinatário (Órgão Autor: AN) 
$chave = '35180205761098000113550010000021721000047205';

echo "<br>" . base64_encode('35180205761098000113550010000021721000047205');
*/


// $chave_crip   = $_POST['chave'];
$id     = $_POST['id'];
$chave  = $_POST['chave']; //base64_decode($chave_crip);
$tpEvento= $_POST['evento']; // $tpEvento = '210210'; //ciencia da operação
$tpAmb   = '1'; // 1 Sempre em ambiente de produção, 2 no Homologação não traz registros
$xJust   = '';

if(isset($_POST['xJust'])){
  $xJust   = $_POST['xJust'];	
}


/* Somente consultar a Sefaz com os parametros necessários */
if($chave=="" or $tpEvento==""){
	addError("É necessário informar a Chave e Evento");
	header("location:erpc_nfecode_importacao_painel.php");

}else if($tpEvento=="210240" && $xJust==""){
	addError("É necessário informar uma justificativa no caso 210240");
	header("location:erpc_nfecode_importacao_painel.php");
}

    /*
    echo "<br>id:$id";
    echo "<br>chave:$chave";
    echo "<br>evento:$tpEvento";
    echo "<br>xJust:$xJust";
    echo "<br>tpAmb:$tpAmb";
    */
	
    $aResposta = array();
	try{
	   $xml = $nfe->sefazManifesta($chave, $tpAmb, $xJust = '', $tpEvento = $tpEvento, $aResposta);

    }catch (Exception $e) {
	    $msg_erro = "Houve um erro ao Registrar Manifesto / Download do XML: " . $chave . " - " . $e -> getMessage() . "\n";
	    addError($msg_erro);	    
	}

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

	if($aResposta['bStat']=="1" && $aResposta['cStat']=="128"){
		/*Faz o Download do XML Automaticamente para o BD */
		$sql = "update erpc_documentos_entrada set cd_status_nfe=128, ds_status_nfe='$tpEvento Lote de evento processado', dh_alteracao=now(), id_status_xml_importado=1 where id = $id";

		if($sql!=""){
		  	$sql = str_replace("''", "null", $sql);

			$stmt = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
			$ok   = mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));

		  if($ok=1){
		    addMessage("Manifesto enviado com sucesso, aguarde liberação da Sefaz do XML: $ds_chave");
		  }
		}
	}

header("location:erpc_nfecode_importacao_painel.php");

?>