<?php
	require_once "inc/functions.php";
	require_once "inc/nfc_class.php";
	require_once "inc/parametros_sat.php";
	require_once "inc/messages.php";

if(isset($_POST)){
		$dados_cancela = $_POST;
		$ds_return = $dados_cancela['resposta'];
		$dados_cancela['id_documento'] = base64_decode($dados_cancela['id_documento']);
		
		/* Organiza o retorno em um array */
		$ar_return = array_filter(explode("|", $ds_return));
			
		/* Limpa o Retorno para um novo array */
		$ret_cupom =array(
			'numeroSessao' => '',
			'EEEEE' => '',
			'CCCC' => '',
			'mensagem' => '',
			'cod' => '',
			'mensagemSEFAZ' => '',
			'ArquivoCFeBase64' => '',
			'timeStamp'  => '',
			'chaveConsulta' => '',
			'valorTotalCFe' => '',
			'CPFCNPJValue' => '',
			'assinaturaQRCODE' => ''
		);
			
		$i=0;
		foreach ($ret_cupom as $key => $value){
			if(isset($ar_return[$i])){
			  $ret_cupom[$key]=$ar_return[$i];
			}
		  $i ++;
		}
		
		/*
		echo "<br>" . $dados_cancela['id_documento'];
		echo "<pre>";
		print_r($dados_cancela);
		echo "</pre>";
		*/
		
		// instancia o objeto de atualização no BD
		$Nfc = new NfcCode();
		$Nfc->setNrNota($dados_cancela['id_documento']);
		$autorizado = 0;
		$mensagem   = "";
		$cd_erro_retorno = "00000";
		
		// Confirmação do Cancelamento, 07000 Cancelado com Sucesso, Cupom já cancelado !
		$ar_confirmado = array("07000", "07007"); 
		if(in_array($ret_cupom['EEEEE'], $ar_confirmado)){
		  $chave_acesso = $ret_cupom['chaveConsulta'];

		if($ret_cupom['EEEEE']=="07007" and $ret_cupom['CCCC']=="1218"){
			$ar_xml = $Nfc->getSQL("select ds_xml from erpc_documentos_saida where id=" . $dados_cancela['id_documento'] . " and cd_status_nfe='06000'");
			if(count($ar_xml)>0){
				// XML já gravado no BD, remover cabeçalho para gerar um novo XML de cancelamento 
				$p_ds_xml = preg_replace("/(\t+)/", "", $ar_xml[0]['ds_xml']);
				$p_ds_xml = str_replace('<CFe>' ,  '<CFeCanc>', $p_ds_xml);
				$p_ds_xml = str_replace('</CFe>', '</CFeCanc>', $p_ds_xml);				
				$dados_cancela['dadosCancelamento'] = $p_ds_xml; // addslashes($p_ds_xml);// simplexml_load_string($p_ds_xml);
			    
				$myfile = fopen("xml/sat_7007_corrigido.xml", "w+") or die("Unable to open file!");
				// header( 'Content-type: text/xml' ); preg_replace("/(\t+)/", "", $r_xml);
				fwrite($myfile, $dados_cancela['dadosCancelamento']);
				fclose($myfile);
			}			
			$autorizado=1;
		  }else if($ret_cupom['EEEEE']=="07000"){
			$autorizado=1;
			if(isset($ret_cupom['ArquivoCFeBase64'])){
			   $xml_retorno = base64_decode($ret_cupom['ArquivoCFeBase64']);
			   $dados_cancela['dadosCancelamento'] = $xml_retorno;
			}
		}
		
		if($autorizado==1){
		  $mensagem  = "$autorizado;Cupom cancelado com Sucesso!Chave:$chave_acesso";
		}else{
		  $mensagem  = "$autorizado;" . $ret_cupom['mensagem'] ."!Chave:$chave_acesso";
		 }
		  // $ok = $Nfc->bd_UpdateStatusCfeCancela($ret_cupom, $xml_original);
		  // $ok = $Nfc->bd_UpdateStatusCfeCancela($dados_cancela, $mensagem);
		}else{
    	  $mensagem  = "Houve um erro ao cancelar o Cupom Fiscal de Venda!";
		  $mensagem .= "Detalhe:" . $ret_cupom['mensagem'];
		}
		  
		// exibe uma mensagem ao retornar a lista principal
		$retorno_finaliza = "$autorizado;$mensagem;" . $dados_cancela['id_documento'] . ";$chave_acesso";
			
		// faz o retorno a página solicitada
		$retorno_finaliza = "$autorizado;$mensagem;" . $dados_cancela['id_documento'] . ";$chave_acesso;$cd_erro_retorno";
		if($autorizado==1){
		   addMessage("Cupom cancelado com sucesso!");
		}else{
		   addError($mensagem);
		   // array_push($codeMessages['error'], $mensagem);
		}

	$ok = $Nfc->bd_UpdateStatusCfeCancela($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;
}

 ?>
