<?php  

	include "conexion.php";
	include "insertar_log.php";
	$id_aplicacion = $_POST['id_aplicacion'];
	$barcode = $_POST['barcode'];
	if(isset($_POST['transaccion'])) {
	    $transaccion = $_POST['transaccion'];
	} else {
	    $transaccion = false;
	}
	$datos = " Ingresa a validar_vale barcode=".$barcode;	
	insertarLog($datos,$id_aplicacion);
	
	function response($estatus,$estatus_mensaje,$respuesta){
		header("HTTP/1.1".$estatus);

		$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['barcode']))
	{
		$datos = " Error Request barcode requerido ";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Request barcode requerido","");
        return;
	}
	
	

	if(strlen($barcode)!=15)
	{
		$datos = " Error Longitud de código no válida ";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Longitud de código no válida","");
        return;
	}
	
	if(!is_numeric($barcode))
	{
		$datos = " Error Código no valido ";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Código no valido","");
        return;
	}
	
	if(!is_numeric($id_aplicacion))
	{
		$datos = " Error Aplicacion no valida ";	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Aplicacion no valida","");
        return;
	}
	
	$id_vale=substr($barcode,0,5);
	$id_detalle=substr($barcode,5,5);
	$s_uuid=substr($barcode,10,5);

	$estado = 0;
	$monto = 0;
	
	$id_cliente=0;	

	$sql = "select ";
	$sql .= "estado, ";
	$sql .= "monto ";
	$sql .= "from ";
	$sql .= "vales_detalle ";
	$sql .= "where ";
	$sql .= "uuid ='" . $s_uuid . "' and ";
	$sql .= "id_vale =" . $id_vale . " and ";
	$sql .= "id_detalle =" . $id_detalle . " ";
	
	
	$resultado = $conexion->query($sql);
			
	if($resultado === false) 	
	{
		$datos = " Error al obtener informacion del vale=".$id_vale ;	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Error al consultar","");
        return;
	}
	else	
	{		
		$numero_filas = $resultado->num_rows;
	}
		
	if($numero_filas == 0)
	{
		$datos = " Error vale no existe vale=".$id_vale ;	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Vale no existe","");
        return;
	}
	else
	{
		while ($row=$resultado->fetch_row())
		{ 
			$estado=$row["0"];
			$monto=$row["1"];
		}
		$resultado->free();
		
	}

	$sql = "select ";
	$sql .= "id_cliente ";
	$sql .= "from ";
	$sql .= "vales ";
	$sql .= "where ";
	$sql .= "id_vale =" . $id_vale;
	
	
	$resultado = $conexion->query($sql);
			
	if($resultado === false) 	
	{
		$datos = " Error al obtener id_cliente del vale  ".$id_vale ;	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Error al consultar","");
        return;
	}
	
	while($fila = $resultado->fetch_assoc())
	{
		$id_cliente=$fila["id_cliente"];
	}
	$resultado->free();
	

	
	if($estado !=0) 	
	{
		$datos = " Error Vale ya canjeado vale=".$id_vale ;	
		insertarLog($datos,$id_aplicacion);
		echo response(1,"Vale ya canjeado","");
        return;
	}
	
	$respuesta=$monto."-".$id_cliente;

	if($transaccion){
    	$sql = "select ";
		$sql .= "dispersion ";
		$sql .= "from ";
		$sql .= "clientes ";
		$sql .= "where ";
		$sql .= "id_cliente=".$id_cliente;
    

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

	    if($resultado === false) 	
		{
			$datos = " Error al obtener dispersion del cliente  ".$id_cliente ;	
			insertarLog($datos,$id_aplicacion);
			echo response(1,"Error al consultar","");
	        return;
		}
		
		while($fila = $resultado->fetch_assoc())
		{
			$dispersion=$fila["dispersion"];
		}

		$resultado->free();

		if ($dispersion != 0) {
			$datos = " El cliente cuenta con dispersion  ".$id_cliente ;	
			insertarLog($datos,$id_aplicacion);
			echo response(2,$id_cliente,"");
	        return;
		}

	}
	


	
	if($transaccion)
	{
		$sql = "update ";
		$sql .= "vales_detalle ";
		$sql .= "set ";
		$sql .= "estado=2 ";
		$sql .= "where ";
		$sql .= "id_detalle=".$id_detalle;
		$sql .= " and id_vale=".$id_vale;
	
		$resultado = $conexion->query($sql);
		
		if($resultado == false)
	    {
	    	$datos = " Error al actualizar vale detalle ".$id_detalle;	
			insertarLog($datos,$id_aplicacion);
	        echo response(1,"Error al actualizar vale detalle","");
	        return;
	    }
    }


	$datos = " Termina proceso validar_vale.";	
		insertarLog($datos,$id_aplicacion);
		
	echo response(0,"OK",$respuesta);
	return;
?>