<?php  

	include "conexion.php";
	include "insertar_log.php";

	global $conexion;
	global $id_aplicacion;
	global $id_secuencia;
	
	function response($estatus,$estatus_mensaje,$respuesta){
		header("HTTP/1.1".$estatus);
		
		//die($estatus."___>".$estatus_mensaje." resp:".$respuesta);
		
		global $conexion;
		global $id_aplicacion;
		global $id_secuencia;

		$datos = " Ingresa Canjear Vale ";	
		insertarLog($datos,$id_aplicacion);

		$sql = "delete ";
		$sql .= "from  ";
		$sql .= "comandos ";
		$sql .= "where ";
		$sql .= "id_aplicacion=" . $id_aplicacion . " and ";
		$sql .= "id_secuencia=" . $id_secuencia . " ";
		
		$conexion->query($sql);
		
		//echo $sql;
		
		if ($estatus=="45076")
		{
			$estatus_mensaje="Venta asignada a un cliente";
			$datos = " Venta asignada a un cliente ";	
			insertarLog($datos,$id_aplicacion);
		}
		
		$response["estatus"]=$estatus;
		$response["estatus_mensaje"]=$estatus_mensaje;
		$response["respuesta"]=$respuesta;
		
		$json_response = json_encode($response, JSON_UNESCAPED_UNICODE);

		echo $json_response;

	}


	if (!isset($_POST['id_aplicacion']))
	{
		echo response(1,"Request aplicacion requerido","");
        return;
	}
	
	if (!isset($_POST['lst_vales']))
	{
		$datos = " Request lst requerido ";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Request lst requerido","");
        return;
	}
	
	if (!isset($_POST['id_venta']))
	{
		$datos = " Request venta requerido ";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Request venta requerido","");
        return;
	}
	
	$id_aplicacion = $_POST['id_aplicacion'];
	$lst_vales = $_POST['lst_vales'];
	$id_venta = $_POST['id_venta'];

	if(!is_numeric($id_aplicacion))
	{
		echo response(1,"Aplicacion no valida","");
        return;
	}
	
	if(!is_numeric($id_venta))
	{
		$datos = " Venta no valida ";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Venta no valida","");
        return;
	}
	
	
	$id_comando = 8117;
	$id_equipo_clase = 2;
	$id_equipo = 1;
	$id_secuencia = 0;
	
	
	$lst_vales=str_replace('|','&',$lst_vales);
	$req = $id_venta."|".$lst_vales;
	
	$sql = "insert into ";
    $sql .= "comandos (";
    $sql .= "id_aplicacion, ";
    $sql .= "id_secuencia, ";
    $sql .= "id_equipo_clase, ";
    $sql .= "id_equipo, ";
    $sql .= "id_comando, ";
    $sql .= "fecha, ";
    $sql .= "req_dato, ";
    $sql .= "res_dato, ";
    $sql .= "estado ";
    $sql .= ") values ( ";
    $sql .= $id_aplicacion.", ";
    $sql .= "NULL, ";
    $sql .= $id_equipo_clase.", ";
    $sql .= $id_equipo.", ";
    $sql .= $id_comando.", ";
    $sql .= "now(), ";
    $sql .= "'".$req."',";
    $sql .= "'',";
    $sql .= "0 )";

    $resultado = $conexion->query($sql); 

    if($resultado == false)
    {
    	$datos = " Error al insertar comando 8117 ";	
		insertarLog($datos,$id_aplicacion);
    	echo response(1,"Error al insertar comando","");
        return;
    }

    $datos = " Inserto comando 8117 ";	
		insertarLog($datos,$id_aplicacion);

    $sql = "select LAST_INSERT_ID() as id  ";
    
    $resultado = $conexion->query($sql);

    if(!$resultado) 
    {
        echo response(1,"Error al consultar secuencia","");
        return;
    }
    
    while ($row=$resultado->fetch_assoc())
    {
        $id_secuencia = $row['id'];
    }
	
	$resultado->free();
	
	$intentos =21;

	$res_dato ="";
	$i = 0;
	
	do
	{
		sleep(5);
		
		$i++;
		
		$sql = "select ";
		$sql .= "res_dato ";
		$sql .= "from  ";
		$sql .= "comandos ";
		$sql .= "where ";
		$sql .= "id_aplicacion=" . $id_aplicacion . " and ";
		$sql .= "id_secuencia=" . $id_secuencia . " and ";
		$sql .= "estado=2 ";
		
		$resultado = $conexion->query($sql);
			
		if($resultado === false) 	
		{
			$datos = " Error al consultar:".$sql;	
			insertarLog($datos,$id_aplicacion);
			echo response(1,"Error al consultar:","$sql");
			return;
		}
		else	
		{		
			$numero_filas = $resultado->num_rows;
		}
			
		if($numero_filas == 0)
		{
			$resultado->free();
			continue;
		}
		else
		{
			while ($row=$resultado->fetch_row())
			{ 
				$res_dato=$row["0"];
			}
			
			$resultado->free();
			
			$datos_rec = explode("|", $res_dato);
			
			
			if($datos_rec[0]=="0")
			{		
				$datos = " OK:".$datos[1];	
				insertarLog($datos,$id_aplicacion);		
				echo response($datos_rec[0],"OK",$datos_rec[1]);
				return;
			}
			else
			{
				echo response($datos_rec[0],$datos_rec[1],"");
				return;
			}
		}
		
	}while ($i<$intentos);
		$datos = " No se obtuvo respuesta de terminal";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"No se obtuvo respuesta de terminal","");
			
	?>