<?php
header('Content-Type: application/json;charset= utf-8');
require("dbinfo.php");
ini_set('memory_limit','5024M');
set_time_limit(0);
require("dl.php");
$con = mysqli_connect($sqlname, $username, $password, $db);
if(!$con){exit;}
mysqli_set_charset($con,"utf8");


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






$fecha_nombre_archivo = dl_fecha::dl_ahora_texto_nombre_archivo();
$nombre_archivo = "referencias/Shapefile/conexiones" . $fecha_nombre_archivo;
$nombre_achivo_con_extension = $nombre_archivo . ".shp";

$nombre_prj = $nombre_archivo . ".prj";
$archivo_prj = fopen($nombre_prj,"w"); 
$renglon = 'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]';
fwrite($archivo_prj,$renglon);
fclose($archivo_prj);


require_once('referencias/Shapefile/ShapefileAutoloader.php');
Shapefile\ShapefileAutoloader::register();
use Shapefile\Shapefile;
use Shapefile\ShapefileException;
use Shapefile\ShapefileWriter;
use Shapefile\Geometry\Point;
use Shapefile\Geometry\Linestring;
$Shapefile = new ShapefileWriter($nombre_archivo);
$Shapefile->setShapeType(Shapefile::SHAPE_TYPE_POLYLINE);

$Shapefile->addFloatField('id');
$Shapefile->addFloatField('padron');
$Shapefile->addFloatField('colector');
$Shapefile->addCharField('profundi', 254);
$Shapefile->addCharField('tipo', 254);
$Shapefile->addCharField('seccion', 254);
$Shapefile->addCharField('alta_fue', 254);
$Shapefile->addCharField('alta_des', 254);
$Shapefile->addCharField('alta_fec', 254);
$Shapefile->addCharField('sur', 254);
$Shapefile->addCharField('etapa', 254);
//$Shapefile->addCharField('ccz', 254);
$Shapefile->addCharField('accion', 254);
//$Shapefile->addFloatField('activo');
$Shapefile->addFloatField('z_col');	
$Shapefile->addFloatField('via');
//$Shapefile->addFloatField('id_trami');
//$Shapefile->addFloatField('id_con_a');
$Shapefile->addCharField('calle', 254);
$Shapefile->addCharField('tramite', 254);
$Shapefile->addCharField('empresa', 254);	
//$Shapefile->addCharField('oses', 254);
//$Shapefile->addCharField('servicio', 254);
//$Shapefile->addCharField('tgms', 254);
//$Shapefile->addCharField('audios', 254);
$Shapefile->addCharField('fotos', 254);
$Shapefile->addCharField('puertas', 254);
//$Shapefile->addCharField('historia', 254);
$Shapefile->addCharField('descripc', 254);




$url_completo = '';

$lista_valores = '';
$valores = json_decode($datos);
for($j = 0;$j<count($valores);$j++)
{
	$lista_valores .= $valores[$j] . ",";
}
$lista_valores = substr($lista_valores,0,strlen($lista_valores) - 1);

$sql = "SELECT Y(STARTPOINT (SHAPE)) AS lat1, X(STARTPOINT(SHAPE)) AS lon1, Y(ENDPOINT(SHAPE)) AS lat2, X(ENDPOINT(SHAPE)) AS lon2,id,padron,colector,profundidad,tipo,seccion,alta_fuent,alta_descr,alta_fecha,sur,etapa,accion,z_col,via,calle,tramite,empresa,fotos,puertas,descripcion FROM conexiones WHERE id IN (";
$sql .= $lista_valores . ")"; 

$resultado = mysqli_query($con,$sql);
if ($resultado != FALSE){
	if (mysqli_num_rows($resultado) > 0){
		while($row = mysqli_fetch_assoc($resultado))
		{
            
                   $x1=$row['lon1'];
				   $y1=$row['lat1'];
				   $x2=$row['lon2'];
				   $y2=$row['lat2'];
				   $id=$row['id'];
				   $padron=$row['padron'];
				   $colector=$row['colector'];
				   $profundidad=$row['profundidad'];
				   $tipo=$row['tipo'];
				   $seccion=$row['seccion'];
				   $alta_fuent=$row['alta_fuent'];
				   $alta_descr=$row['alta_descr'];
				   $alta_fecha=$row['alta_fecha'];
				   $sur=$row['sur'];
				   $etapa=$row['etapa'];
				   $accion=$row['accion'];
				   $z_col=$row['z_col'];
				   $via=$row['via'];
				   $calle=$row['calle'];
				   $tramite=$row['tramite'];
				   $empresa=$row['empresa'];
				   $fotos=$row['fotos'];
				   $puertas=$row['puertas'];
				   $descripcion=$row['descripcion'];

if(is_null($profundidad)){$profundidad = '';}
if(is_null($tipo)){$tipo = '';}
if(is_null($seccion)){$seccion = '';}
if(is_null($alta_fuent)){$alta_fuent = '';}
if(is_null($alta_descr)){$alta_descr = '';}
if(is_null($alta_fecha)){$alta_fecha = '';}
if(is_null($sur)){$sur = '';}
if(is_null($etapa)){$etapa = '';}
if(is_null($accion)){$accion = '';}
if(is_null($calle)){$calle = '';}
if(is_null($tramite)){$tramite = '';}
if(is_null($empresa)){$empresa = '';}
if(is_null($fotos)){$fotos = '';}
if(is_null($puertas)){$puertas = '';}
if(is_null($descripcion)){$descripcion = '';}

					$coords_array = array();
					$elemento = ['x'=>$x1,'y'=>$y1];
					array_push($coords_array,$elemento);
					$elemento = ['x'=>$x2,'y'=>$y2];
					array_push($coords_array,$elemento);	

					$linea = new Linestring();   

					foreach ($coords_array as $i => $coords) {
						$Point = new Point($coords['x'], $coords['y']);
						$linea->addPoint($Point);
					}


						$linea->setData('id',$id);
						$linea->setData('padron',$padron);
						$linea->setData('colector',$colector);
						$linea->setData('profundi', $profundidad);
						$linea->setData('tipo', $tipo);
						$linea->setData('seccion', $seccion);
						$linea->setData('alta_fue', $alta_fuent);
						$linea->setData('alta_des', $alta_descr);
						$linea->setData('alta_fec', $alta_fecha);
						$linea->setData('sur', $sur);
						$linea->setData('etapa', $etapa);
						$linea->setData('accion', $accion);
						$linea->setData('z_col',$z_col);	
						$linea->setData('via',$via);
						$linea->setData('calle', $calle);
						$linea->setData('tramite', $tramite);
						$linea->setData('empresa', $empresa);	
						$linea->setData('fotos', $fotos);
						$linea->setData('puertas', $puertas);
						$linea->setData('descripc', $descripcion);
					$Shapefile->writeRecord($linea);
				}



				$tmp_file = '';
					$Shapefile = null;
					$files = glob($nombre_archivo . "*");
					if (count($files) > 0)
					{
					$zip = new ZipArchive();
					$ruta_completa = $_SERVER['DOCUMENT_ROOT'] . '/CONEXIONES/php/referencias/Shapefile';
					$tmp_file = $ruta_completa . '/conexiones' . $fecha_nombre_archivo . '.zip';
					$zip->open($tmp_file, ZipArchive::CREATE);
					foreach($files as $file){
						$file2 = $_SERVER['DOCUMENT_ROOT'] . '/CONEXIONES/php/' . $file;
						$ruta_archivo = pathinfo($file); 
						$nombre_archivo2 = $ruta_archivo["basename"]; 
						$zip->addFile($file2,$nombre_archivo2);
					}
					$zip->close();

					unlink($nombre_archivo . ".dbf");
					unlink($nombre_archivo . ".shp");
					unlink($nombre_archivo . ".shx");
					unlink($nombre_archivo . ".prj");
					}

					$nombre_archivo = "referencias/Shapefile/conexiones*.zip";
					$files = glob($nombre_archivo);
					foreach($files as $file){
						$ruta_archivo = pathinfo($file); 
						$nombre_archivo2 = $ruta_archivo["dirname"] . "/". $ruta_archivo["basename"];
						$fecha_fichero= dl_fecha::dl_fecha_texto_a_date(date('Y-m-d H:i:s',filemtime($nombre_archivo2)));
						$fecha_ahora = dl_fecha::dl_ahora_date();
						$interval = $fecha_ahora->diff($fecha_fichero);
						$horas =  ($interval->format('%y') * 635) + ($interval->format('%m') * 30) + ($interval->format('%d') * 24) + $interval->format('%h');
						if ($horas > 4){
							unlink($nombre_archivo2);
						}
					}

				$url_completo = $_SERVER['SERVER_NAME'] . '/CONEXIONES/php/referencias/Shapefile/conexiones' . $fecha_nombre_archivo . '.zip';	

	}
}


echo $url_completo;

    ?>

