<?
set_time_limit(30);

libxml_use_internal_errors(true);
require_once('../WS/lib/nusoap/src/nusoap.php');
require_once('../WS/ws_SAT.php');
require("../conexion/conectar.php");
require("../libs/funciones.php");
define("USUARIO","recibecfd");
define("PASSWORD","r3c1b3cfd");
header('Content-Type: application/json');

date_default_timezone_set('America/Mexico_City');


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

try{
		$contenido = file_get_contents('php://input');
		// $contenido = '{ "usuario": "recibecfd", "password": "r3c1b3cfd", "uuid": "D3423"}';

		$resultadoWS = array();

		if(trim($contenido) == ""){
			$resultadoWS["status"]=100;
			$resultadoWS["mensaje"]="Los parametros no pueden ser vacíos";
			echo json_encode($resultadoWS);
			exit;
		}

		$json = json_decode($contenido);

		if(trim($json->usuario) != USUARIO || trim($json->password) != PASSWORD){
			$resultadoWS["status"]=101;
			$resultadoWS["mensaje"]="Usuario y password incorrecto";
			echo json_encode($resultadoWS);
			exit;
		}

		$tCFDI = Array();

		$query="select rfcEmisor as rfcemisor, uuid, rfc_receptor as rfcreceptor, total from recibedoce where uuid like '".$json->uuid."%' limit 1";
		if($r = mysqli_query($conexion->CONEXION,$query)){
			if(mysqli_num_rows($r) == 0){
				$resultadoWS["status"]=103;
				$resultadoWS["mensaje"]="UUID no encontrado.";
				echo json_encode($resultadoWS);
				exit;	
			}else{
				$tCFDI = mysqli_fetch_assoc($r);
			}
		}else{
			$resultadoWS["status"]=300;
			$resultadoWS["mensaje"]="Ocurrio un error al consultar el CFDI";
			echo json_encode($resultadoWS);
			exit;	
		}

		if(trim($json->uuid) == ""){
			$resultadoWS["status"]=102;
			$resultadoWS["mensaje"]="Faltan parametros.";
			echo json_encode($resultadoWS);
			exit;
		}
	
		if(strlen(trim($json->uuid)) < 5){
			$resultadoWS["status"]=102;
			$resultadoWS["mensaje"]="El uuid debe de tener por lo menos 5 caracteres.";
			echo json_encode($resultadoWS);
			exit;
		}

		$ws = new WSSAT();

		$ws->expresionImpresa="?re=".str_replace("&","&amp;",$tCFDI["rfcemisor"])."&rr=".str_replace("&","&amp;",$tCFDI["rfcreceptor"])."&tt=".number_format($tCFDI["total"],2,".","")."&id=".$tCFDI["uuid"];

		// echo $ws->expresionImpresa;exit;
		$ws->verificaCFDI();

		
		$Estatus='?';

		if($ws->codigoStatus == "S"){
			if(trim($ws->estadoCFDI)=="Cancelado"){
				$Estatus='C';
			}else{
				$Estatus='V';
			}
		}
	
		// $mensajeCompleto=$ws->mensajeCompleto."\n".$ws->estadoCFDI."\n";
		
		$query="update recibedoce set verificacionSAT='$Estatus' where uuid='".$tCFDI["uuid"]."'";
		if(!mysqli_query($conexion->CONEXION,$query)){
			$resultadoWS["status"]=201;
			$resultadoWS["mensaje"]="Validación generada correctamente. Con error al actualizar en el portal";
			$resultadoWS["estadoCFDI"] = $ws->estadoCFDI;
			$resultadoWS["codigoStatus"] = $ws->codigoStatus;
			$resultadoWS["response"] = $ws->response;
		}else{
			$resultadoWS["status"]=200;
			$resultadoWS["mensaje"]="Validación generada correctamente.";
			$resultadoWS["estadoCFDI"] = $ws->estadoCFDI;
			$resultadoWS["codigoStatus"] = $ws->codigoStatus;
			$resultadoWS["response"] = $ws->response;
		}
		
		echo json_encode($resultadoWS);
		exit;

	}catch(Exception $e){
		$resultadoWS["status"]=400;
		$resultadoWS["mensaje"]="Excepción: ".$e->getMessage();
		echo json_encode($resultadoWS);
		exit;
	}
?>
