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

include_once($uri);

class informes_localizacion_jerarquica 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 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 GetInformes($parametros)
	{		
		try
		{			
			$informes = new consultasDb("");
			//armamos el nombre del procedimiento.
			$procedimiento_nombre = "";
			if($parametros['localizacion_jerarquica_configurado']==3) 
				$procedimiento_nombre .= "get_informes_zonas_";
			elseif($parametros['localizacion_jerarquica_configurado']==2) 
				$procedimiento_nombre .= "get_informes_distritos_";
			else
				$procedimiento_nombre .= "get_informes_sucursales_";
			
			if($parametros['nivel']==3) 
				$procedimiento_nombre .= "zonas";
			elseif($parametros['nivel']==2) 
				$procedimiento_nombre .= "distritos";
			else
				$procedimiento_nombre .= "sucursales";	
			
			
			$query ="call ".$procedimiento_nombre."('".$parametros["fecha_desde"]."',
													 '".$parametros["fecha_hasta"]."',
													 '".implode(",",json_decode($parametros['localizacion_jerarquica']))."');";
			
			//echo $query;
			
			$informes->setConsulta($query);
			$q = $informes->query();
			$informes->Desconectar();
			$json = '{"aaData":[';
			
			if($q){
				$first = true;
				while($row = $informes->fetchArray($q)){
					if($first) {
						$first = false;
					} else {
						$json .= ',';
					}

					if($parametros['nivel']==1){
						
						if($parametros['localizacion_jerarquica_configurado']==3) 
							$localizaciones_jer = trim($row["Sucursal_Descripcion"]).'","","","';
						elseif($parametros['localizacion_jerarquica_configurado']==2) 
							$localizaciones_jer = trim($row["Sucursal_Descripcion"]).'","","';
						else
							$localizaciones_jer = trim($row["Sucursal_Descripcion"]).'","';
						
							
						$json .= '["'.trim($row["Fecha"]).'","'.$localizaciones_jer.
						trim($row["Ruta"]).'","'.
						trim($row["CantClientes"]).'","'.
						trim($row["cantVisitadosConVentas"]).'","'.
						trim($row["PorcVisitadosConVentas"]).' %","'.
						trim($row["cantVisitadosSinVentas"]).'","'.
						trim($row["PorcVisitadosSinVentas"]).' %","'.
						trim($row["cantNoVisitados"]).'","'.
						trim($row["PorcNoVisitado"]).' %","'.
						trim($row["cantFueraRuta"]).'","'.
						trim($row["PorcFueraDeRuta"]).' %","'.
						trim($row["PrimeraVisita"]).'","'.
						trim($row["UltimaVisita"]).'","'.
						trim($row["Duracion"]).'","'.
						trim($row["CantidadUnidades"]).'","'.
						trim($row["CantidadUc"]).'"]';
					}
					
					else if($parametros['nivel']==2)
					{
						if($parametros['localizacion_jerarquica_configurado']==3)
							$localizaciones_jer = trim($row["Sucursal_Descripcion"]).'","'.trim($row["Distrito_Descripcion"]).'","","';
						elseif($parametros['localizacion_jerarquica_configurado']==2)
							$localizaciones_jer = trim($row["Sucursal_Descripcion"]).'","'.trim($row["Distrito_Descripcion"]).'","'; 							
							
						$json .= '["'.trim($row["Fecha"]).'","'.$localizaciones_jer
						.trim($row["Ruta"]).'","'
						.trim($row["CantClientes"]).'","'
						.trim($row["cantVisitadosConVentas"]).'","'
						.trim($row["PorcVisitadosConVentas"]).' %","'
						.trim($row["cantVisitadosSinVentas"]).'","'
						.trim($row["PorcVisitadosSinVentas"]).' %","'
						.trim($row["cantNoVisitados"]).'","'
						.trim($row["PorcNoVisitado"]).' %","'
						.trim($row["cantFueraRuta"]).'","'
						.trim($row["PorcFueraDeRuta"]).' %","'
						.trim($row["PrimeraVisita"]).'","'
						.trim($row["UltimaVisita"]).'","'
						.trim($row["Duracion"]).'","'
						.trim($row["CantidadUnidades"]).'","'
						.trim($row["CantidadUc"]).'"]';
					}
					
					else if($parametros['nivel']==3){	
						$json .= '["'.trim($row["Fecha"]).'","'
						.trim($row["Sucursal_Descripcion"]).'","'
						.trim($row["Distrito_Descripcion"]).'","'
						.trim($row["Zona_Descripcion"]).'","'
						.trim($row["Ruta"]).'","'
						.trim($row["CantClientes"]).'","'
						.trim($row["cantVisitadosConVentas"]).'","'
						.trim($row["PorcVisitadosConVentas"]).' %","'
						.trim($row["cantVisitadosSinVentas"]).'","'
						.trim($row["PorcVisitadosSinVentas"]).' %","'
						.trim($row["cantNoVisitados"]).'","'
						.trim($row["PorcNoVisitado"]).' %","'
						.trim($row["cantFueraRuta"]).'","'
						.trim($row["PorcFueraDeRuta"]).' %","'
						.trim($row["PrimeraVisita"]).'","'
						.trim($row["UltimaVisita"]).'","'
						.trim($row["Duracion"]).'","'
						.trim($row["CantidadUnidades"]).'","'
						.trim($row["CantidadUc"]).'"]';
					}
				}
				$json .= ']}';
			} else {
				$json .= '[]}';
			}
			echo $json;
			//echo '{"aaData":[["04-04-2014","09:35:15","Jose Perez 1","115","Carga"],["03-04-2014","10:35:15","Joe Perez 8","116","Nuevo"]]}';
		} 
		catch (Exception $e) 
		{
			return 'Excepción capturada: '.  $e->getMessage(). "\n";
		}
	}
}
?>