<?
/*
Autor: Lic. Carlos Alberto Vaca Coronado
Version: 3.4.0
Cambio: archivo nuevo para verificar los CFDI en el SAT
*/

//require_once('../WS//lib/nusoap.php');
//error_reporting(E_ALL);
require_once('../WS/lib/nusoap/src/nusoap.php');
require_once('../WS/ws_SAT.php');
require_once('../conexion/conectar.php');

$conexion = new CONDB();
$conexion->conectar();

$re=$_REQUEST["id"];
$tipodocto=$_REQUEST["id2"];
$serie=$_REQUEST["id3"];
$folio=$_REQUEST["id4"];
$uuid=$_REQUEST["id5"];

$result = mysqli_query($conexion->CONEXION,"select rfc_receptor,total from recibedoce where rfcemisor='$re' and tipodocto='$tipodocto' and serie='$serie' and folio=$folio and uuid='$uuid' limit 1");

if(mysqli_num_rows($result) <= 0){
	echo "No se encontro el registro del documento.";
	exit;
}

$tmp = mysqli_fetch_array($result,MYSQLI_ASSOC);
$rr = $tmp["rfc_receptor"];
$tt = $tmp["total"];

$rFecha = mysqli_query($conexion->CONEXION,"select max(fecharecibido) as fecharecibido from detallerecibedoce where rfcemisor='$re' and tipodocto='$tipodocto' and serie='$serie' and folio='$folio' and uuid='$uuid'");

if(mysqli_num_rows($rFecha) > 0){
	$tmpF = mysqli_fetch_array($rFecha,MYSQLI_ASSOC);
	$fecha = $tmpF['fecharecibido'];
}else{
	echo "No se encontraron las validaciones del documento. Intente nuevamente";
	exit;
}

$ws = new WSSAT();

$ws->expresionImpresa="?re=$re&rr=$rr&tt=$tt&id=".$uuid;
$ws->verificaCFDI();

$requestWSDL = $ws->ws_sat->request;
$responseWSDL = $ws->ws_sat->response;

/*echo htmlspecialchars($requestWSDL,ENT_QUOTES)."<br/><br/><br/>";
echo htmlspecialchars($responseWSDL,ENT_QUOTES);
exit;*/

if($ws->codigoStatus == "S"){
	if(trim($ws->estadoCFDI)=="Cancelado"){
		$Estatus='C';
	}else{
		$Estatus='V';
	}
}else{
	$Estatus='?';
}

$mensajeCompleto=$ws->mensajeCompleto."\n".$ws->estadoCFDI."\n";

$query="update recibedoce set verificacionSAT='$Estatus' where rfcemisor='$re' and tipodocto='$tipodocto' and serie='$serie' and folio='$folio' and uuid='$uuid'";

if(mysqli_query($conexion->CONEXION,$query)){
	$query="insert into detallerecibedoce set rfcemisor='$re',tipodocto='$tipodocto',serie='$serie',folio='$folio',
	uuid='$uuid',fechaEvento=NOW(),evento='Verificacion de CFDI', status='$Estatus',fecharecibido='$fecha',xml='',pdf='',comentario='".mysqli_real_escape_string($conexion->CONEXION,str_replace("-"," ",limpiar_caracteres_especiales($mensajeCompleto)))."<<SAT>>',request='".mysqli_real_escape_string($conexion->CONEXION,$requestWSDL)."',response='".mysqli_real_escape_string($conexion->CONEXION,$responseWSDL)."'";
	
	if(mysqli_query($conexion->CONEXION,$query)){
	?>
		<center><h1>Resultado de la verificaci&oacute;n</h1></center>
		<table style="text-align: left; padding: 20px 20px 20px 20px">
		<tr><th>Codigo de Estatus:</th><td><?=$ws->codigoStatus?></td></tr>
		<tr><th>Resultado:</th><td><?=str_replace("-"," ",limpiar_caracteres_especiales($ws->mensaje))?></td></tr>
		<tr><th>Estado del CFDI:</th><td><?=$ws->estadoCFDI?></td></tr>
		</table>
	<?}else{
		echo "<br/>Error: ".mysqli_error($conexion->CONEXION);
	}
}else{
	echo mysqli_error($conexion->CONEXION);
}


function limpiar_caracteres_especiales($s) {
	$s = preg_replace("[áàâãª]","a",$s);
	$s = preg_replace("[ÁÀÂÃ]","A",$s);
	$s = preg_replace("[éèê]","e",$s);
	$s = preg_replace("[ÉÈÊ]","E",$s);
	$s = preg_replace("[íìî]","i",$s);
	$s = preg_replace("[ÍÌÎ]","I",$s);
	$s = preg_replace("[óòôõº]","o",$s);
	$s = preg_replace("[ÓÒÔÕ]","O",$s);
	$s = preg_replace("[úùû]","u",$s);
	$s = preg_replace("[ÚÙÛ]","U",$s);
	$s = str_replace(" ","-",$s);
	$s = str_replace("ñ","n",$s);
	$s = str_replace("Ñ","N",$s);
	//para ampliar los caracteres a reemplazar agregar lineas de este tipo:
	//$s = str_replace("caracter-que-queremos-cambiar","caracter-por-el-cual-lo-vamos-a-cambiar",$s);
	return $s;
}
?>