<?php
header('Content-Type: application/json;charset= utf-8');
require("dbinfo.php");
require("dl.php");

$con = mysqli_connect($sqlname, $username, $password, $db);
if(!$con){exit;}
mysqli_set_charset($con,"utf8");

$consulta = '';
$mensaje = '';

$res = array();
$res_colectores = array();
$res_psingulares = array();
$res_captaciones = array();
$res_control = array();

if($_REQUEST['consulta']){$consulta = $_REQUEST['consulta'];}
if($_REQUEST['tipo']){$tipo = $_REQUEST['tipo'];}



$lista_consulta = json_decode($consulta);

/*
TIPO COLECTORES_______________________________________________________________________________________________________________
TIPO COLECTORES_______________________________________________________________________________________________________________
TIPO COLECTORES_______________________________________________________________________________________________________________
TIPO COLECTORES_______________________________________________________________________________________________________________
*/
if($tipo == 'Colectores')
{
        $sql_total = '';
    
        $primersql = true;


//FILTRO CON FUENTE DE DATOS DE CONEXION

if ($lista_consulta->{'dim1'} == true)
{
                    switch ($lista_consulta->{'dim1_valor'})
                    {
                        case "Menor que 0.15":
                            $sql_total = " dim1 < 0.15";
                            $mensaje = $mensaje . " Dim1 menor 0.15 ";
                        break;
                        case "Mayor igual a 0.15 y menor a 0.20":    
                            $sql_total = " dim1 >= 0.15 AND dim1 < 0.20 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.15 y menor a 0.20 ";
                        break;
                        case "Mayor igual a 0.20 y menor a 0.25":    
                            $sql_total = " dim1 >= 0.20 AND dim1 < 0.25 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.20 y menor a 0.25 ";
                        break;
                        case "Mayor igual a 0.25 y menor a 0.30":    
                            $sql_total = " dim1 >= 0.25 AND dim1 < 0.30 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.25 y menor a 0.30 ";
                        break;            
                        case "Mayor igual a 0.30 y menor a 0.35":    
                            $sql_total = " dim1 >= 0.30 AND dim1 < 0.35 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.30 y menor a 0.35 ";
                        break;
                        case "Mayor igual a 0.35 y menor a 0.40":    
                            $sql_total = " dim1 >= 0.35 AND dim1 < 0.40 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.35 y menor a 0.40 ";
                        break;
                        case "Mayor igual a 0.40 y menor a 0.45":    
                            $sql_total = " dim1 >= 0.40 AND dim1 < 0.45 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.40 y menor a 0.45 ";
                        break;            
                        case "Mayor igual a 0.50 y menor a 0.80":    
                            $sql_total = " dim1 >= 0.50 AND dim1 < 0.80 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.50 y menor a 0.80 ";
                        break;
                        case "Mayor igual a 0.80 y menor a 1.00":    
                            $sql_total = " dim1 >= 0.80 AND dim1 < 1.00 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.8 y menor a 1.00 ";
                        break;
                        case "Mayor igual a 1.00 y menor a 1.20":    
                            $sql_total = " dim1 >= 1.00 AND dim1 < 1.20 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 0.8 y menor a 1.00 ";
                        break;
                        case "Mayor igual a 1.20":    
                            $sql_dim1 = " dim1 >= 1.20 ";
                            $mensaje = $mensaje . " Dim1: Mayor igual a 1.20 ";
                        break;            
                    }
                    $primersql = false;
            }

            if ($lista_consulta->{'dim2'} == true)
            {
                $sql_parcial = '';
                    switch ($lista_consulta->{'dim2_valor'})
                    {
                        case "Menor que 0.15":
                            $sql_parcial = " dim2 < 0.15";
                            $mensaje = $mensaje . " Dim2 menor 0.15 ";
                        break;
                        case "Mayor igual a 0.15 y menor a 0.20":    
                            $sql_parcial = " dim2 >= 0.15 AND dim2 < 0.20 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.15 y menor a 0.20 ";
                        break;
                        case "Mayor igual a 0.20 y menor a 0.25":    
                            $sql_parcial = " dim2 >= 0.20 AND dim2 < 0.25 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.20 y menor a 0.25 ";
                        break;
                        case "Mayor igual a 0.25 y menor a 0.30":    
                            $sql_parcial = " dim2 >= 0.25 AND dim2 < 0.30 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.25 y menor a 0.30 ";
                        break;            
                        case "Mayor igual a 0.30 y menor a 0.35":    
                            $sql_parcial = " dim2 >= 0.30 AND dim2 < 0.35 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.30 y menor a 0.35 ";
                        break;
                        case "Mayor igual a 0.35 y menor a 0.40":    
                            $sql_parcial = " dim2 >= 0.35 AND dim2 < 0.40 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.35 y menor a 0.40 ";
                        break;
                        case "Mayor igual a 0.40 y menor a 0.45":    
                            $sql_parcial = " dim2 >= 0.40 AND dim2 < 0.45 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.40 y menor a 0.45 ";
                        break;            
                        case "Mayor igual a 0.50 y menor a 0.80":    
                            $sql_parcial = " dim2 >= 0.50 AND dim2 < 0.80 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.50 y menor a 0.80 ";
                        break;
                        case "Mayor igual a 0.80 y menor a 1.00":    
                            $sql_parcial = " dim2 >= 0.80 AND dim2 < 1.00 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.8 y menor a 1.00 ";
                        break;
                        case "Mayor igual a 1.00 y menor a 1.20":    
                            $sql_parcial = " dim2 >= 1.00 AND dim2 < 1.20 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 0.8 y menor a 1.00 ";
                        break;
                        case "Mayor igual a 1.20":    
                            $sql_parcial = " dim2 >= 1.20 ";
                            $mensaje = $mensaje . " Dim2: Mayor igual a 1.20 ";
                        break;            
                    }
                    if ($primersql == false)
                    {
                    $sql_total = $sql_total . " AND " . $sql_parcial;
                    }
                    else
                    {
                    $sql_total = $sql_parcial;
                    $primersql = false;
                    }
            }

            //FILTRO CON FUENTE DE DATOS DE ETAPA

            if ($lista_consulta->{'etapa'} == true)
            {  
            $sql_parcial = " etapa = '" . $lista_consulta->{'etapa_valor'} . "' ";
            $mensaje = $mensaje . "   Etapa: " . $lista_consulta->{'etapa_valor'};
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE ACCION

            if ($lista_consulta->{'accion'} == true)
            {  
            $sql_parcial = " accion = '" . $lista_consulta->{'accion_valor'} . "' ";
            $mensaje = $mensaje . "   Accion: " . $lista_consulta->{'accion_valor'};
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }




            //FILTRO CON FUENTE DE DATOS DE CCZ

            if ($lista_consulta->{'ccz'} == true)
            {  
            $sql_parcial = " ccz = '" . $lista_consulta->{'ccz_valor'} . "' ";
            $mensaje = $mensaje . "   CCZ: " . $lista_consulta->{'ccz_valor'};
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }

            //FILTRO CON FUENTE DE DATOS DE CALLE

            if ($lista_consulta->{'calle'} == true)
            {  
            $sql_parcial = " calle = '" . $lista_consulta->{'calle_valor'} . "' ";
            $mensaje = $mensaje . "   Calle: " . $lista_consulta->{'calle_valor'};
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            
            //FILTRO CON FUENTE DE DATOS DE A VALIDAR

            if ($lista_consulta->{'avalidar'} == true)
            {  
            $sql_parcial = " dato3 = 1 ";
            $mensaje = $mensaje . "   A validar ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE HABILITADO

            if ($lista_consulta->{'habilitado'} == true)
            {  
            $sql_parcial = " habilitado <> '' ";
            $mensaje = $mensaje . "   Habilitado ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE PUBLICADO

            if ($lista_consulta->{'publicado'} == true)
            {  
            $sql_parcial = " publicado <> '' ";
            $mensaje = $mensaje . "   Publicado ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE FUERA DE SERVICIO

            if ($lista_consulta->{'fueraservicio'} == true)
            {  
            $sql_parcial = " fueraservicio <> '' ";
            $mensaje = $mensaje . "   Fuera de Servicio ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }



            //FILTRO CON TIPO DE SECCION

            if ($lista_consulta->{'tipo_seccion'} == true)
            {  
                $id_clase = 0;
                $sql = "SELECT id FROM adm_clases WHERE codigo = '" . $lista_consulta->{'tipo_seccion_valor'} . "' AND elemento = 'cat_tramos'";
                $resultado = mysqli_query($con,$sql);
                if ($resultado != FALSE){
                    if (mysqli_num_rows($resultado) > 0){
                       $row = mysqli_fetch_assoc($resultado);
                       $id_clase = $row["id"];
                    }
                }
            $sql_parcial = " tiposec = " . $id_clase . " ";
            $mensaje = $mensaje . "   tiposec: " . $lista_consulta->{'tipo_seccion_valor'};
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }

            //FILTRO CON TIPO DE SECCION

            if ($lista_consulta->{'tipo_tramo'} == true)
            {  
                $id_tipo = 0;
                $sql = "SELECT id FROM adm_tipos WHERE codigo = '" . $lista_consulta->{'tipo_tramo_valor'} . "' AND elemento = 'cat_tramos'";
                $resultado = mysqli_query($con,$sql);
                if ($resultado != FALSE){
                    if (mysqli_num_rows($resultado) > 0){
                       $row = mysqli_fetch_assoc($resultado);
                       $id_tipo = $row["id"];
                    }
                }
            $sql_parcial = " tipotra = " . $id_tipo . " ";
            $mensaje = $mensaje . "   tipotra: " . $lista_consulta->{'tipo_tramo_valor'};
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON MATERIAL

            if ($lista_consulta->{'material'} == true)
            {  
            $sql_parcial = " material = '" . $lista_consulta->{'material_valor'} . "' ";
            $mensaje = $mensaje . "   material: " . $lista_consulta->{'material_valor'};
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }



            $sql = "SELECT id, ASTEXT(SHAPE)  AS geom, tiposec,tipotra,elemred,id_psig_aa,id_psig_ab,dim1,dim2,dim3,dim4,contrato,proyecto,material,zarriba,zabajo,z_tapa_aa,z_tapa_ab,prof_aa,prof_ab,longitud,pendiente,salto,estado,accion,ccz,cuenca,historial,documentos,fotos,audios,videos,alta_fuente,alta_fecha,calle,via,hidraulica,economica,activo,comentarios,etapa,plano,provisorio,dato1,dato2,dato3,dato4,habilitado,publicado,fueraservicio FROM cat_tramos WHERE activo = 1 AND " . $sql_total . " LIMIT 10000 ";

            if ($lista_consulta->{'fecha'} == true)
            {
                $fecha_inicial_texto = substr($lista_consulta->{'fecha1_valor'}, 0 , 10) . " 00:00:00";
                $fecha_inicial = dl_fecha::dl_fecha_texto_a_date($fecha_inicial_texto);
                $fecha_final_texto = substr($lista_consulta->{'fecha2_valor'}, 0 , 10) . " 00:00:00";
                $fecha_final =  dl_fecha::dl_fecha_texto_a_date($fecha_final_texto);
                $mensaje = $mensaje . "   Entre: " . substr($fecha_inicial_texto, 0 , 10) . " y " . substr($fecha_final_texto, 0 , 10);
            }


            $resultado = mysqli_query($con,$sql);
            $cuenta_oks = 0;
            if ($resultado != FALSE){
                if (mysqli_num_rows($resultado) > 0){
                    while($row = mysqli_fetch_assoc($resultado))
                    {
                        // $row = array_map('utf8_encode',$row);
                        $elem = array(
                                        'id'=>$row["id"],
                                        'geom'=>$row["geom"],
                                        'tiposec'=>$row["tiposec"],
                                        'tipotra'=>$row["tipotra"],
                                        'elemred'=>$row["elemred"],
                                        'id_psig_aa'=>$row["id_psig_aa"],
                                        'id_psig_ab'=>$row["id_psig_ab"],
                                        'dim1'=>$row["dim1"],
                                        'dim2'=>$row["dim2"],
                                        'dim3'=>$row["dim3"],
                                        'dim4'=>$row["dim4"],
                                        'contrato'=>$row["contrato"],
                                        'proyecto'=>$row["proyecto"],
                                        'material'=>$row["material"],
                                        'zarriba'=>$row["zarriba"],
                                        'zabajo'=>$row["zabajo"],
                                        'z_tapa_aa'=>$row["z_tapa_aa"],
                                        'z_tapa_ab'=>$row["z_tapa_ab"],
                                        'prof_aa'=>$row["prof_aa"],
                                        'prof_ab'=>$row["prof_ab"],
                                        'longitud'=>$row["longitud"],
                                        'pendiente'=>$row["pendiente"],
                                        'salto'=>$row["salto"],
                                        'estado'=>$row["estado"],
                                        'accion'=>$row["accion"],
                                        'ccz'=>$row["ccz"],
                                        'cuenca'=>$row["cuenca"],
                                        'historial'=>$row["historial"],
                                        'documentos'=>$row["documentos"],
                                        'fotos'=>$row["fotos"],
                                        'audios'=>$row["audios"],
                                        'videos'=>$row["videos"],
                                        'alta_fuente'=>$row["alta_fuente"],
                                        'alta_fecha'=>$row["alta_fecha"],
                                        'calle'=>$row["calle"],
                                        'via'=>$row["via"],
                                        'hidraulica'=>$row["hidraulica"],
                                        'economica'=>$row["economica"],
                                        'activo'=>$row["activo"],
                                        'comentarios'=>$row["comentarios"],
                                        'etapa'=>$row["etapa"],
                                        'plano'=>$row["plano"],
                                        'provisorio'=>$row["provisorio"],
                                        'dato1'=>$row["dato1"],
                                        'dato2'=>$row["dato2"],
                                        'dato3'=>$row["dato3"],
                                        'dato4'=>$row["dato4"],
                                        'habilitado'=>$row["habilitado"],
                                        'publicado'=>$row["publicado"],
                                        'fueraservicio'=>$row["fueraservicio"],
                                        
                                    );
                        $exito_en_consulta = TRUE;

                        if ($lista_consulta->{'fecha'} == true)
                            {
                                $historial = $row["historial"];
                                if ($historial != '')
                                {
                                        $historial_array = json_decode($historial,true);
                                        $filtro_fecha_ok = false;
                                        foreach($historial_array as $clave2)
                                        {
                                            $fecha_historial_texto = $clave2['fecha'];
                                            $fecha_historial = dl_fecha::dl_fecha_texto_a_date($fecha_historial_texto);
                                            if ($fecha_historial >= $fecha_inicial && $fecha_historial <= $fecha_final)
                                            {
                                                $filtro_fecha_ok = true;
                                            }
                                        }
                                        if ($filtro_fecha_ok == true)
                                        {
                                            $cuenta_oks++;
                                            array_push($res_colectores,$elem);
                                        }
                                }       
                            }
                            else
                            {
                                $cuenta_oks++;
                                array_push($res_colectores,$elem);
                            } 
                            if ($cuenta_oks > 10000){break;}  
                        }
                    }



                }


                $cantidad_resultados = count($res_colectores);
                array_push($res_control,$cantidad_resultados);
                array_push($res_control,$mensaje);
                array_push($res, $res_colectores);
                array_push($res, $res_control);

}	


/*
TIPO COLECTORES_______________________________________________________________________________________________________________
TIPO COLECTORES_______________________________________________________________________________________________________________
TIPO COLECTORES_______________________________________________________________________________________________________________
TIPO COLECTORES_______________________________________________________________________________________________________________
*/










/*
TIPO PSINGULARES_______________________________________________________________________________________________________________
TIPO PSINGULARES______________________________________________________________________________________________________________
TIPO PSINGULARES______________________________________________________________________________________________________________
TIPO PSINGULARES______________________________________________________________________________________________________________
*/
if($tipo == 'PSingulares')
{
                        $sql_total = '';
                    
                        $primersql = true;


                //FILTRO CON FUENTE DE DATOS DE ETAPA

                if ($lista_consulta->{'etapa'} == true)
                {  
                $sql_parcial = " etapa = '" . $lista_consulta->{'etapa_valor'} . "' ";
                $mensaje = $mensaje . "   Etapa: " . $lista_consulta->{'etapa_valor'};
                $sql_total = $sql_parcial;
                $primersql = false;
                }


                //FILTRO CON FUENTE DE DATOS DE ACCION

                if ($lista_consulta->{'accion'} == true)
                {  
                $sql_parcial = " accion = '" . $lista_consulta->{'accion_valor'} . "' ";
                $mensaje = $mensaje . "   Accion: " . $lista_consulta->{'accion_valor'};
                if ($primersql == false)
                {
                $sql_total = $sql_total . " AND " . $sql_parcial;
                }
                else
                {
                $sql_total = $sql_parcial;
                $primersql = false;
                }
                }




                //FILTRO CON FUENTE DE DATOS DE CCZ

                if ($lista_consulta->{'ccz'} == true)
                {  
                $sql_parcial = " ccz = '" . $lista_consulta->{'ccz_valor'} . "' ";
                $mensaje = $mensaje . "   CCZ: " . $lista_consulta->{'ccz_valor'};
                if ($primersql == false)
                {
                $sql_total = $sql_total . " AND " . $sql_parcial;
                }
                else
                {
                $sql_total = $sql_parcial;
                $primersql = false;
                }
                }

                //FILTRO CON FUENTE DE DATOS DE CALLE

                if ($lista_consulta->{'calle'} == true)
                {  
                $sql_parcial = " calle = '" . $lista_consulta->{'calle_valor'} . "' ";
                $mensaje = $mensaje . "   Calle: " . $lista_consulta->{'calle_valor'};
                if ($primersql == false)
                {
                $sql_total = $sql_total . " AND " . $sql_parcial;
                }
                else
                {
                $sql_total = $sql_parcial;
                $primersql = false;
                }
                }



            
            //FILTRO CON FUENTE DE DATOS DE A VALIDAR

            if ($lista_consulta->{'avalidar'} == true)
            {  
            $sql_parcial = " dato3 = 1 ";
            $mensaje = $mensaje . "   A validar ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE HABILITADO

            if ($lista_consulta->{'habilitado'} == true)
            {  
            $sql_parcial = " habilitado <> '' ";
            $mensaje = $mensaje . "   Habilitado ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE PUBLICADO

            if ($lista_consulta->{'publicado'} == true)
            {  
            $sql_parcial = " publicado <> '' ";
            $mensaje = $mensaje . "   Publicado ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE FUERA DE SERVICIO

            if ($lista_consulta->{'fueraservicio'} == true)
            {  
            $sql_parcial = " fueraservicio <> '' ";
            $mensaje = $mensaje . "   Fuera de Servicio ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }




                //FILTRO CON TIPO 

                if ($lista_consulta->{'tipo'} == true)
                {  
                    $id_tipo = 0;
                    $sql = "SELECT id FROM adm_tipos WHERE codigo = '" . $lista_consulta->{'tipo_valor'} . "' AND elemento = 'cat_psingulares'";
                    $resultado = mysqli_query($con,$sql);
                    if ($resultado != FALSE){
                        if (mysqli_num_rows($resultado) > 0){
                           $row = mysqli_fetch_assoc($resultado);
                           $id_tipo = $row["id"];
                        }
                    }
                $sql_parcial = " tipo = " . $id_tipo . " ";
                $mensaje = $mensaje . "   tipo: " . $lista_consulta->{'tipo_valor'};
                if ($primersql == false)
                {
                $sql_total = $sql_total . " AND " . $sql_parcial;
                }
                else
                {
                $sql_total = $sql_parcial;
                $primersql = false;
                }
                }


                //FILTRO CON PROFUNDIDAD

                if ($lista_consulta->{'profundidad'} == true)
                {
                    $sql_parcial = '';
                        switch ($lista_consulta->{'profundidad_valor'})
                        {
                            case "Menos de 1":
                                $sql_parcial = " profundidad < 1";
                                $mensaje = $mensaje . " profundidad menor 1 ";
                            break;
                            case "Mayor igual a 1 y menor a 2":    
                                $sql_parcial = " profundidad >= 1 AND profundidad < 2 ";
                                $mensaje = $mensaje . " profundidad: Mayor igual a 1 y menor a 2 ";
                            break;
                            case "Mayor igual a 2 y menor a 3":    
                                $sql_parcial = " profundidad >= 2 AND profundidad < 3 ";
                                $mensaje = $mensaje . " profundidad: Mayor igual a 2 y menor a 3 ";
                            break;
                            case "Mayor igual a 3 y menor a 4":    
                                $sql_parcial = " profundidad >= 3 AND profundidad < 4 ";
                                $mensaje = $mensaje . " profundidad: Mayor igual a 3 y menor a 4 ";
                            break;
                            case "Mayor de 4":    
                                $sql_parcial = " profundidad >= 1 AND profundidad < 2 ";
                                $mensaje = $mensaje . " profundidad: Mayor igual a 1 y menor a 2 ";
                            break;                                    
                        }
                        if ($primersql == false)
                        {
                        $sql_total = $sql_total . " AND " . $sql_parcial;
                        }
                        else
                        {
                        $sql_total = $sql_parcial;
                        $primersql = false;
                        }
                }



                //FILTRO CON PROFUNDIDAD

                if ($lista_consulta->{'salto'} == true)
                {
                    $sql_parcial = '';
                        switch ($lista_consulta->{'salto_valor'})
                        {
                            case "Menos de 0.25":
                                $sql_parcial = " salto < 0.25";
                                $mensaje = $mensaje . " salto menor 0.25 ";
                            break;
                            case "Mayor igual a 0.25 y menor a 0.50":    
                                $sql_parcial = " salto >= 0.25 AND salto < 0.50 ";
                                $mensaje = $mensaje . " profundidad: Mayor igual a 0.25 y menor a 0.50 ";
                            break;
                            case "Mayor igual a 0.50 y menor a 0.75":    
                                $sql_parcial = " salto >= 0.50 AND salto < 0.75 ";
                                $mensaje = $mensaje . " salto: Mayor igual a 0.50 y menor a 0.75 ";
                            break;
                            case "Mayor igual a 0.75 y menor a 1.00":    
                                $sql_parcial = " salto >= 0.75 AND salto < 1.00 ";
                                $mensaje = $mensaje . " salto: Mayor igual a 0.75 y menor a 1.00 ";
                            break;
                            case "Mayor de 1.00":    
                                $sql_parcial = " salto >= 1 ";
                                $mensaje = $mensaje . " salto: Mayor igual a 1.00 ";
                            break;                                    
                        }
                        if ($primersql == false)
                        {
                        $sql_total = $sql_total . " AND " . $sql_parcial;
                        }
                        else
                        {
                        $sql_total = $sql_parcial;
                        $primersql = false;
                        }
                }



                $sql = "SELECT id, X(SHAPE) AS lon, Y(SHAPE) AS lat, tipo,elem_red,tramos,z_tapa,inspeccion,profundidad,salto,z_ab,alta_fuente,alta_fecha,calle,via,contrato,estado,ccz,cuenca,proyecto,accion,historial,fotos,audios,documentos,comentarios,hidraulica,economica,activo,etapa,plano,provisorio,dato1,dato2,dato3,dato4,habilitado,publicado,fueraservicio FROM cat_psingulares WHERE activo = 1 AND " . $sql_total . " LIMIT 10000 ";

                if ($lista_consulta->{'fecha'} == true)
                {
                    $fecha_inicial_texto = substr($lista_consulta->{'fecha1_valor'}, 0 , 10) . " 00:00:00";
                    $fecha_inicial = dl_fecha::dl_fecha_texto_a_date($fecha_inicial_texto);
                    $fecha_final_texto = substr($lista_consulta->{'fecha2_valor'}, 0 , 10) . " 00:00:00";
                    $fecha_final =  dl_fecha::dl_fecha_texto_a_date($fecha_final_texto);
                    $mensaje = $mensaje . "   Entre: " . substr($fecha_inicial_texto, 0 , 10) . " y " . substr($fecha_final_texto, 0 , 10);
                }


                $resultado = mysqli_query($con,$sql);
                $cuenta_oks = 0;
                if ($resultado != FALSE){
                    if (mysqli_num_rows($resultado) > 0){
                        while($row = mysqli_fetch_assoc($resultado))
                        {
                            // $row = array_map('utf8_encode',$row);
                            $elem = array(
                                            'id'=>$row["id"],
                                            'lat'=>$row["lat"],
                                            'lon'=>$row["lon"],
                                            'tipo'=>$row["tipo"],
                                            'elem_red'=>$row["elem_red"],
                                            'tramos'=>$row["tramos"],
                                            'z_tapa'=>$row["z_tapa"],
                                            'inspeccion'=>$row["inspeccion"],
                                            'profundidad'=>$row["profundidad"],
                                            'salto'=>$row["salto"],
                                            'z_ab'=>$row["z_ab"],
                                            'alta_fuente'=>$row["alta_fuente"],
                                            'alta_fecha'=>$row["alta_fecha"],
                                            'calle'=>$row["calle"],
                                            'via'=>$row["via"],
                                            'contrato'=>$row["contrato"],
                                            'estado'=>$row["estado"],
                                            'ccz'=>$row["ccz"],
                                            'cuenca'=>$row["cuenca"],
                                            'proyecto'=>$row["proyecto"],
                                            'accion'=>$row["accion"],
                                            'historial'=>$row["historial"],
                                            'fotos'=>$row["fotos"],
                                            'audios'=>$row["audios"],
                                            'documentos'=>$row["documentos"],
                                            'comentarios'=>$row["comentarios"],
                                            'hidraulica'=>$row["hidraulica"],
                                            'economica'=>$row["economica"],
                                            'activo'=>$row["activo"],
                                            'etapa'=>$row["etapa"],
                                            'plano'=>$row["plano"],
                                            'provisorio'=>$row["provisorio"],
                                            'dato1'=>$row["dato1"],
                                            'dato2'=>$row["dato2"],
                                            'dato3'=>$row["dato3"],
                                            'dato4'=>$row["dato4"],
                                            'habilitado'=>$row["habilitado"],
                                            'publicado'=>$row["publicado"],
                                            'fueraservicio'=>$row["fueraservicio"]
                                        );
                            $exito_en_consulta = TRUE;

                            if ($lista_consulta->{'fecha'} == true)
                                {
                                    $historial = $row["historial"];
                                    if ($historial != '')
                                    {
                                            $historial_array = json_decode($historial,true);
                                            $filtro_fecha_ok = false;
                                            foreach($historial_array as $clave2)
                                            {
                                                $fecha_historial_texto = $clave2['fecha'];
                                                $fecha_historial = dl_fecha::dl_fecha_texto_a_date($fecha_historial_texto);
                                                if ($fecha_historial >= $fecha_inicial && $fecha_historial <= $fecha_final)
                                                {
                                                    $filtro_fecha_ok = true;
                                                }
                                            }
                                            if ($filtro_fecha_ok == true)
                                            {
                                                $cuenta_oks++;
                                                array_push($res_psingulares,$elem);
                                            }
                                    }       
                                }
                                else
                                {
                                    $cuenta_oks++;
                                    array_push($res_psingulares,$elem);
                                } 
                                if ($cuenta_oks > 10000){break;}  
                            }
                        }



                    }


                    $cantidad_resultados = count($res_psingulares);
                    array_push($res_control,$cantidad_resultados);
                    array_push($res_control,$mensaje);
                    array_push($res, $res_psingulares);
                    array_push($res, $res_control);

}	


/*
TIPO PSINGULARES_______________________________________________________________________________________________________________
TIPO PSINGULARES______________________________________________________________________________________________________________
TIPO PSINGULARES_______________________________________________________________________________________________________________
TIPO PSINGULARES______________________________________________________________________________________________________________
*/










/*
TIPO CAPTACIONES_______________________________________________________________________________________________________________
TIPO CAPTACIONES______________________________________________________________________________________________________________
TIPO CAPTACIONES_______________________________________________________________________________________________________________
TIPO CAPTACIONES______________________________________________________________________________________________________________
*/
if($tipo == 'Captaciones')
                {
                        $sql_total = '';
                    
                        $primersql = true;


                //FILTRO CON FUENTE DE DATOS DE ETAPA

                if ($lista_consulta->{'etapa'} == true)
                {  
                $sql_parcial = " etapa = '" . $lista_consulta->{'etapa_valor'} . "' ";
                $mensaje = $mensaje . "   Etapa: " . $lista_consulta->{'etapa_valor'};
                $sql_total = $sql_parcial;
                $primersql = false;
                }


                //FILTRO CON FUENTE DE DATOS DE ACCION

                if ($lista_consulta->{'estado'} == true)
                {  
                $sql_parcial = " estado = '" . $lista_consulta->{'estado_valor'} . "' ";
                $mensaje = $mensaje . "   Estado: " . $lista_consulta->{'estado_valor'};
                    if ($primersql == false)
                    {
                    $sql_total = $sql_total . " AND " . $sql_parcial;
                    }
                    else
                    {
                    $sql_total = $sql_parcial;
                    $primersql = false;
                    }
                }




                //FILTRO CON FUENTE DE DATOS DE CCZ

                if ($lista_consulta->{'ccz'} == true)
                {  
                $sql_parcial = " ccz = '" . $lista_consulta->{'ccz_valor'} . "' ";
                $mensaje = $mensaje . "   CCZ: " . $lista_consulta->{'ccz_valor'};
                if ($primersql == false)
                {
                $sql_total = $sql_total . " AND " . $sql_parcial;
                }
                else
                {
                $sql_total = $sql_parcial;
                $primersql = false;
                }
                }

                //FILTRO CON FUENTE DE DATOS DE CALLE

                if ($lista_consulta->{'calle'} == true)
                {  
                $sql_parcial = " calle = '" . $lista_consulta->{'calle_valor'} . "' ";
                $mensaje = $mensaje . "   Calle: " . $lista_consulta->{'calle_valor'};
                if ($primersql == false)
                {
                $sql_total = $sql_total . " AND " . $sql_parcial;
                }
                else
                {
                $sql_total = $sql_parcial;
                $primersql = false;
                }
                }


      

            
            //FILTRO CON FUENTE DE DATOS DE A VALIDAR

            if ($lista_consulta->{'avalidar'} == true)
            {  
            $sql_parcial = " dato3 = 1 ";
            $mensaje = $mensaje . "   A validar ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE HABILITADO

            if ($lista_consulta->{'habilitado'} == true)
            {  
            $sql_parcial = " habilitado <> '' ";
            $mensaje = $mensaje . "   Habilitado ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE PUBLICADO

            if ($lista_consulta->{'publicado'} == true)
            {  
            $sql_parcial = " publicado <> '' ";
            $mensaje = $mensaje . "   Publicado ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }


            //FILTRO CON FUENTE DE DATOS DE FUERA DE SERVICIO

            if ($lista_consulta->{'fueraservicio'} == true)
            {  
            $sql_parcial = " fueraservicio <> '' ";
            $mensaje = $mensaje . "   Fuera de Servicio ";
            if ($primersql == false)
            {
            $sql_total = $sql_total . " AND " . $sql_parcial;
            }
            else
            {
            $sql_total = $sql_parcial;
            $primersql = false;
            }
            }




                //FILTRO CON TIPO 

                if ($lista_consulta->{'tipo'} == true)
                {  
                    $id_tipo = 0;
                    $sql = "SELECT id FROM adm_tipos WHERE codigo = '" . $lista_consulta->{'tipo_valor'} . "' AND elemento = 'cat_captaciones'";
                    $resultado = mysqli_query($con,$sql);
                    if ($resultado != FALSE){
                        if (mysqli_num_rows($resultado) > 0){
                           $row = mysqli_fetch_assoc($resultado);
                           $id_tipo = $row["id"];
                        }
                    }
                $sql_parcial = " tipo = " . $id_tipo . " ";
                $mensaje = $mensaje . "   tipo: " . $lista_consulta->{'tipo_valor'};
                if ($primersql == false)
                {
                $sql_total = $sql_total . " AND " . $sql_parcial;
                }
                else
                {
                $sql_total = $sql_parcial;
                $primersql = false;
                }
                }


                //FILTRO CON PROFUNDIDAD

                if ($lista_consulta->{'dimension'} == true)
                {
                    $sql_parcial = '';
                        switch ($lista_consulta->{'dimension_valor'})
                        {
                            case "Menos de 1":
                                $sql_parcial = " dim < 1";
                                $mensaje = $mensaje . " dimension menor 1 ";
                            break;
                            case "Mayor igual a 1 y menor a 2":    
                                $sql_parcial = " dim >= 1 AND dim < 2 ";
                                $mensaje = $mensaje . " dimension: Mayor igual a 1 y menor a 2 ";
                            break;
                            case "Mayor igual a 2 y menor a 3":    
                                $sql_parcial = " dim >= 2 AND dim < 3 ";
                                $mensaje = $mensaje . " dimension: Mayor igual a 2 y menor a 3 ";
                            break;
                            case "Mayor igual a 3 y menor a 4":    
                                $sql_parcial = " dim >= 3 AND dim < 4 ";
                                $mensaje = $mensaje . " dimension: Mayor igual a 3 y menor a 4 ";
                            break;
                            case "Mayor de 4":    
                                $sql_parcial = " dim >= 1 AND dim < 2 ";
                                $mensaje = $mensaje . " dimension: Mayor igual a 1 y menor a 2 ";
                            break;                                    
                        }
                        if ($primersql == false)
                        {
                        $sql_total = $sql_total . " AND " . $sql_parcial;
                        }
                        else
                        {
                        $sql_total = $sql_parcial;
                        $primersql = false;
                        }
                }



                //FILTRO CON BOCAS

                if ($lista_consulta->{'bocas'} == true)
                {
                    $sql_parcial = '';
                        switch ($lista_consulta->{'bocas_valor'})
                        {
                            case "1":
                                $sql_parcial = " cant_bocas = '1' ";
                                $mensaje = $mensaje . " 1 boca ";
                            break;
                            case "2":    
                                $sql_parcial = " cant_bocas = '2' ";
                                $mensaje = $mensaje . " 2 bocas ";
                            break;
                            case "3":    
                                $sql_parcial = " cant_bocas = '3' ";
                                $mensaje = $mensaje . " 3 bocas ";
                            break;
                            case "4":    
                                $sql_parcial = " cant_bocas = '4' ";
                                $mensaje = $mensaje . " 4 bocas ";
                            break;
                            case "Mas de 4":    
                                $sql_parcial = " CAST(cant_bocas AS int) > 4 ";
                                $mensaje = $mensaje . " mas de 4 bocas ";
                            break;                                    
                        }
                        if ($primersql == false)
                        {
                        $sql_total = $sql_total . " AND " . $sql_parcial;
                        }
                        else
                        {
                        $sql_total = $sql_parcial;
                        $primersql = false;
                        }
                }



                $sql = "SELECT  X(SHAPE) AS lon, Y(SHAPE) AS lat,elem_red,id_tramo,id_conex_capt,tipo,clase,dim,cant_bocas,alta_fuente,alta_fecha,rotacion,z_col,z_tapa,calle,via,contrato,estado,proyecto,accion,ccz,cuenca,historial,fotos,audios,documentos,comentarios,hidraulica,economica,activo,etapa,plano,provisorio,dato1,dato2,dato3,dato4,habilitado,publicado,fueraservicio FROM cat_captaciones WHERE activo = 1 AND " . $sql_total . " LIMIT 10000 ";

                if ($lista_consulta->{'fecha'} == true)
                {
                    $fecha_inicial_texto = substr($lista_consulta->{'fecha1_valor'}, 0 , 10) . " 00:00:00";
                    $fecha_inicial = dl_fecha::dl_fecha_texto_a_date($fecha_inicial_texto);
                    $fecha_final_texto = substr($lista_consulta->{'fecha2_valor'}, 0 , 10) . " 00:00:00";
                    $fecha_final =  dl_fecha::dl_fecha_texto_a_date($fecha_final_texto);
                    $mensaje = $mensaje . "   Entre: " . substr($fecha_inicial_texto, 0 , 10) . " y " . substr($fecha_final_texto, 0 , 10);
                }


                $resultado = mysqli_query($con,$sql);
                $cuenta_oks = 0;
                if ($resultado != FALSE){
                    if (mysqli_num_rows($resultado) > 0){
                        while($row = mysqli_fetch_assoc($resultado))
                        {
                            // $row = array_map('utf8_encode',$row);
                            $elem = array(
                                            'lat'=>$row["lat"],
                                            'lon'=>$row["lon"],
                                            'elem_red'=>$row["elem_red"],
                                            'id_tramo'=>$row["id_tramo"],
                                            'id_conex_capt'=>$row["id_conex_capt"],
                                            'tipo'=>$row["tipo"],
                                            'clase'=>$row["clase"],
                                            'dim'=>$row["dim"],
                                            'cant_bocas'=>$row["cant_bocas"],
                                            'alta_fuente'=>$row["alta_fuente"],
                                            'alta_fecha'=>$row["alta_fecha"],
                                            'rotacion'=>$row["rotacion"],
                                            'z_col'=>$row["z_col"],
                                            'z_tapa'=>$row["z_tapa"],
                                            'calle'=>$row["calle"],
                                            'via'=>$row["via"],
                                            'contrato'=>$row["contrato"],
                                            'estado'=>$row["estado"],
                                            'ccz'=>$row["ccz"],
                                            'cuenca'=>$row["cuenca"],
                                            'proyecto'=>$row["proyecto"],
                                            'accion'=>$row["accion"],
                                            'historial'=>$row["historial"],
                                            'fotos'=>$row["fotos"],
                                            'audios'=>$row["audios"],
                                            'documentos'=>$row["documentos"],
                                            'comentarios'=>$row["comentarios"],
                                            'hidraulica'=>$row["hidraulica"],
                                            'economica'=>$row["economica"],
                                            'activo'=>$row["activo"],
                                            'etapa'=>$row["etapa"],
                                            'plano'=>$row["plano"],
                                            'provisorio'=>$row["provisorio"],
                                            'dato1'=>$row["dato1"],
                                            'dato2'=>$row["dato2"],
                                            'dato3'=>$row["dato3"],
                                            'dato4'=>$row["dato4"],
                                            'habilitado'=>$row["habilitado"],
                                            'publicado'=>$row["publicado"],
                                            'fueraservicio'=>$row["fueraservicio"]
                                        );
                            $exito_en_consulta = TRUE;

                            if ($lista_consulta->{'fecha'} == true)
                                {
                                    $historial = $row["historial"];
                                    if ($historial != '')
                                    {
                                            $historial_array = json_decode($historial,true);
                                            $filtro_fecha_ok = false;
                                            foreach($historial_array as $clave2)
                                            {
                                                $fecha_historial_texto = $clave2['fecha'];
                                                $fecha_historial = dl_fecha::dl_fecha_texto_a_date($fecha_historial_texto);
                                                if ($fecha_historial >= $fecha_inicial && $fecha_historial <= $fecha_final)
                                                {
                                                    $filtro_fecha_ok = true;
                                                }
                                            }
                                            if ($filtro_fecha_ok == true)
                                            {
                                                $cuenta_oks++;
                                                array_push($res_captaciones,$elem);
                                            }
                                    }       
                                }
                                else
                                {
                                    $cuenta_oks++;
                                    array_push($res_captaciones,$elem);
                                } 
                                if ($cuenta_oks > 10000){break;}  
                            }
                        }



                    }


                    $cantidad_resultados = count($res_captaciones);
                    array_push($res_control,$cantidad_resultados);
                    array_push($res_control,$mensaje);
                    array_push($res, $res_captaciones);
                    array_push($res, $res_control);

}	


/*
TIPO CAPTACIONES_______________________________________________________________________________________________________________
TIPO CAPTACIONES______________________________________________________________________________________________________________
TIPO CAPTACIONES_______________________________________________________________________________________________________________
TIPO CAPTACIONES______________________________________________________________________________________________________________
*/




mysqli_close($con);
echo json_encode($res);
?>



