<?php
//Obtengo la ruta General de los archivos!
$uri ='../../Classes/core_class/consultasDb.php';

include_once($uri);

class ver_clientes_mapa extends consultasDb
{

	public function __construct()
	{
		parent::__construct('');
		$this->setDbLink(parent::Conectar());
	}

	public function GetSucursales()
	{
	   $sucursales = new consultasDb('');
	   $sucursales->setConsulta('SELECT LocalizacionJerarquicaID, Descripcion FROM Sucursales');
	   $resultado_sucursales = $sucursales->query();
	   $sucursales_array= array();
	   while($row = $sucursales->fetchArray($resultado_sucursales))
	   {
			array_push($sucursales_array,$row);
	   }
	   
	   return $sucursales_array; 
	}

	public function GetOperadoresMoviles()
	{
		$operadores_moviles = new consultasDb('');
		$operadores_moviles->setConsulta("select * from operadores_moviles");
		$resultado_operadores_moviles = $operadores_moviles->query();
	
		$operadores_moviles_array= array();
		while($row = $operadores_moviles->fetchArray($resultado_operadores_moviles))
		{
			array_push($operadores_moviles_array,$row);
		}
		return $operadores_moviles_array;
	}
	
	public function GetDistritosBySucursalID($parametros)
	{
		$distritos = new consultasDb('');
		$distritos->setConsulta("CALL get_distritos_by_sucursal_id('".implode(",",json_decode($parametros['sucursales']))."')");
		$resultado_distritos = $distritos->query();
	
		$distritos_array= array();
		while($row = $distritos->fetchArray($resultado_distritos))
		{
			array_push($distritos_array,$row);
		}
		return json_encode($distritos_array);
	}
	
	public function GetZonasByDistritosID($parametros)
	{
		$zonas = new consultasDb('');
		$zonas->setConsulta("CALL get_zonas_by_distrito_id('".implode(",",json_decode($parametros['distritos']))."')");
		$resultado_zonas = $zonas->query();
	
		$zonas_array= array();
		while($row = $zonas->fetchArray($resultado_zonas))
		{
			array_push($zonas_array,$row);
		}
		return json_encode($zonas_array);
	}

	public function GetConfiguraciones($ConfiguracionNombre)
	{
		$configuraciones = new consultasDb('');
		$configuraciones->setConsulta("SELECT * FROM configuraciones WHERE ConfiguracionNombre = '".$ConfiguracionNombre."'");
		$q = $configuraciones->query();
		$row = $configuraciones->fetchArray($q);
		$configuraciones->Desconectar();
		return $row["ConfiguracionValor"];
	}
	
	public function GetSucursalesAsociadasPorOperador($operador_monitor_id)
	{
		$sucursales_asociadas = new consultasDb('');
		$sucursales_asociadas->setConsulta("SELECT LocalizacionJerarquicaID
	   									   FROM operadores_monitores_sucursales
										   WHERE OperadorMonitorID = ".$operador_monitor_id);
		$resultado_sucursales_asociadas = $sucursales_asociadas->query();
	
		$sucursales_asociadas_array= array();
		while($row = $sucursales_asociadas->fetchArray($resultado_sucursales_asociadas))
		{
			array_push($sucursales_asociadas_array,$row["LocalizacionJerarquicaID"]);
		}
		return $sucursales_asociadas_array;
	}
	
	public function GetClientesMapa($parametros)
	{		
		try
		{			
			$getMapa = new consultasDb("");
			$query ="call get_eventos_mapa('".$parametros['fecha_desde']."','"
										.$parametros['fecha_hasta']."','"
									    .implode(",",json_decode($parametros['localizaciones_jerarquicas']))."','"
									    .implode(",",json_decode($parametros['operadores_moviles']))."','"
										.$parametros['ultimo_nivel']."');";

			$getMapa->setConsulta($query);
			$q = $getMapa->query();
			$getMapa->Desconectar();
			$json = '[';
			
			if($q){
				$first = true;
				while($row = $getMapa->fetchArray($q)){
					if($first) {
						$first = false;
					} else {
						$json .= ',';
					}
					if($parametros['ultimo_nivel']=='1'){	
						$json .= '{
						"vend":"'.$row["Vendedor"].'",
						"fecha":"'.$row["FechaHoraInicio"].'",
						"hora":"'.$row["hora"].'",
						"cliente":"'.$row["Cliente"].'",
						"pedido":"'.$row["Numero"].'",
						"total":"'.$row["total"].'",
						"motivo":"'.$row["motivo"].'",
						"latitude":"'.$row["lat"].'",
						"longitude":"'.$row["lon"].'"}';
					}
					
					else if($parametros['ultimo_nivel']=='2'){	
						$json .= '{
						"vend":"'.$row["Vendedor"].'",
						"fecha":"'.$row["FechaHoraInicio"].'",
						"hora":"'.$row["hora"].'",
						"cliente":"'.$row["Cliente"].'",
						"pedido":"'.$row["Numero"].'",
						"total":"'.$row["total"].'",
						"motivo":"'.$row["motivo"].'",
						"latitude":"'.$row["lat"].'",
						"longitude":"'.$row["lon"].'"}';
					}
					
					else if($parametros['ultimo_nivel']=='3'){	
						$json .= '{
						"vend":"'.$row["Vendedor"].'",
						"fecha":"'.$row["FechaHoraInicio"].'",
						"hora":"'.$row["hora"].'",
						"cliente":"'.$row["Cliente"].'",
						"pedido":"'.$row["Numero"].'",
						"total":"'.$row["total"].'",
						"motivo":"'.$row["motivo"].'",
						"latitude":"'.$row["lat"].'",
						"longitude":"'.$row["lon"].'"}';
					}
				}
				$json .= ']';
			} else {
				$json .= '[]';
			}
			echo $json;			//echo {"aaData":[["20150701130725","8411","1369","-32.17111333333333 ; -60.206085"],["20150701131400","2580","1370","-32.17088666666667 ; -60.20638"],["20150701153058","1143","1371","-32.17107333333333 ; -60.20625166666667"],["20150701153928","2580","1372","-32.171145 ; -60.20619666666666"]]}
			
			//echo {[["20150701130725","8411","1369","-32.17111333333333 ; -60.206085"],["20150701131400","2580","1370","-32.17088666666667 ; -60.20638"],["20150701153058","1143","1371","-32.17107333333333 ; -60.20625166666667"],["20150701153928","2580","1372","-32.171145 ; -60.20619666666666"]]}
			//[{"id":48,"title":"Helgelandskysten","longitude":"12.63376","latitude":"66.02219"},{"id":46,"title":"Tysfjord","longitude":"16.50279","latitude":"68.03515"},{"id":44,"title":"Sledehunds-ekspedisjon","longitude":"7.53744","latitude":"60.08929"},{"id":43,"title":"Amundsens sydpolferd","longitude":"11.38411","latitude":"62.57481"},{"id":39,"title":"Vikingtokt","longitude":"6.96781","latitude":"60.96335"},{"id":6,"title":"Tungtvann- sabotasjen","longitude":"8.49139","latitude":"59.87111"}];
			//[{fecha2015070113072584111369","-32.17111333333333 "," -60.206085"},{fecha2015070113140025801370","-32.17088666666667 "," -60.20638"},{fecha2015070115305811431371","-32.17107333333333 "," -60.20625166666667"},{fecha2015070115392825801372","-32.171145 "," -60.20619666666666"}]		
		} 
		catch (Exception $e) 
		{
			return 'Excepción capturada: '.  $e->getMessage(). "\n";
		}
	}
	
	
}
?>