<?php session_start(); 
$uri ='../../Classes/core_class/consultasDb.php';

include_once($uri);

class operadores_moviles extends consultasDb
{

	public function __construct()
	{
		parent::__construct('');
		$this->setDbLink(parent::Conectar());
	}
	
	public function Eliminar($parametros)
	{
		try
		{
			$eliminar = new consultasDb("");
			$eliminar->setConsulta('CALL delete_operadores_moviles('.$parametros["id"].');');
			$q = $eliminar->query();
			$eliminar->Desconectar();
			if($q)
				$_SESSION['exito'] = "El móvil eliminado correctamente.";
			return $q;
		} catch (Exception $e) {
			echo 'Excepción capturada: ',  $e->getMessage(), "\n";
		}
	}
	
	public function Editar($parametros)
	{
		$editar = new consultasDb("");
		$sql = "CALL update_operadores_moviles('".$parametros['nombre_apellido']."','".$parametros['numero_operador']."',".$parametros['localizacion_jerarquica'].")";
		echo $sql;
		$editar->setConsulta($sql);
		$q = $editar->query();
		if($q)
			$_SESSION['exito'] = "El operador móvil editado correctamente.";
		$editar->Desconectar();
		
		return $q;
	}
	
	public function Nuevo($parametros)
	{
		$editar = new consultasDb("");
		$sql = "CALL insert_operadores_moviles('".$parametros['numero_operador']."','".$parametros['nombre_apellido']."',".$parametros['localizacion_jerarquica'].")";

		$editar->setConsulta($sql);
		$q = $editar->query();
		if($q)
			$_SESSION['exito'] = "El operador móvil insertado correctamente.";
		$editar->Desconectar();
		
		return $q;
	}

	public function GetSucursales()
	{
	   $sucursales = new consultasDb('');
	   $sucursales->setConsulta('SELECT LocalizacionJerarquicaID, Descripcion FROM Sucursales');
	   $resultado_sucursales = $sucursales->query();
	   $sucursales->Desconectar();
	   
	   $sucursales_array= array();
	   while($row = $sucursales->fetchArray($resultado_sucursales))
	   {
			array_push($sucursales_array,$row);
	   }
	   
	   return $sucursales_array; 
	}
	
	public function GetDistritos()
	{
	   $distritos = new consultasDb('');
	   $distritos->setConsulta('select * from localizaciones_jerarquicas where TipoLocalizacionJerarquicaID = 2');
	   $resultado_distritos = $distritos->query();
	   $distritos->Desconectar();
	   
	   
	   $distritos_array= array();
	   while($row = $distritos->fetchArray($resultado_distritos))
	   {
			array_push($distritos_array,$row);
	   }
	   
	   return $distritos_array; 
	}
	
	public function GetZonas()
	{
	   $zonas = new consultasDb('');
	   $zonas->setConsulta('select * from localizaciones_jerarquicas where TipoLocalizacionJerarquicaID = 3');
	   $resultado_zonas = $zonas->query();
	   $zonas->Desconectar();
	   
	   $zonas_array= array();
	   while($row = $zonas->fetchArray($resultado_zonas))
	   {
			array_push($zonas_array,$row);
	   }
	   
	   return $zonas_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->Desconectar();
	   
	   $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->Desconectar();
	   
	   $zonas_array= array();
	   while($row = $zonas->fetchArray($resultado_zonas))
	   {
			array_push($zonas_array,$row);
	   }	   
	   return json_encode($zonas_array);
	}
	
	public function GetOperadoresMoviles($ultimoId)
	{	   
	   $operadores_moviles = new consultasDb('');
	   if($ultimoId == 3)
	   		$operadores_moviles->setConsulta("SELECT om.NroOperadorMovil, 
											om.NombreApellido,
											(	
												SELECT ljj.LocalizacionJerarquicaPadreID 
												FROM localizaciones_jerarquicas ljj 
												WHERE ljj.LocalizacionJerarquicaID = lj.LocalizacionJerarquicaPadreID 
											) AS SucursalID,
											lj.LocalizacionJerarquicaPadreID AS DistritoID, 
											lj.LocalizacionJerarquicaID as ZonaID,
											ifnull(lj.Descripcion, 'SIN LOCALIZACION JERARQUICA') AS Descripcion 
											FROM operadores_moviles om
											LEFT JOIN localizaciones_jerarquicas lj ON lj.LocalizacionJerarquicaID = om.LocalizacionJerarquicaID;");
	   elseif($ultimoId == 2)
	   		$operadores_moviles->setConsulta("SELECT om.NroOperadorMovil, 
												om.NombreApellido,
												(	
													SELECT LocalizacionJerarquicaPadreID 
													FROM localizaciones_jerarquicas ljj 
													WHERE ljj.LocalizacionJerarquicaID = lj.LocalizacionJerarquicaID 
												) AS SucursalID,
												lj.LocalizacionJerarquicaID AS DistritoID, 
												(SELECT null) as ZonaID,
												ifnull(lj.Descripcion, 'SIN LOCALIZACION JERARQUICA') AS Descripcion 
												FROM operadores_moviles om
												LEFT JOIN localizaciones_jerarquicas lj ON lj.LocalizacionJerarquicaID = om.LocalizacionJerarquicaID;");
	   else
	   		$operadores_moviles->setConsulta("SELECT om.NroOperadorMovil, 
											  om.NombreApellido,
											  lj.LocalizacionJerarquicaID AS SucursalID,
											  (SELECT null) AS DistritoID, 
											  (SELECT null) AS ZonaID,
											  ifnull(lj.Descripcion, 'SIN LOCALIZACION JERARQUICA') AS Descripcion 
											  FROM operadores_moviles om
											  LEFT JOIN localizaciones_jerarquicas lj ON lj.LocalizacionJerarquicaID = om.LocalizacionJerarquicaID;");
	   
	   $resultado_operadores_moviles = $operadores_moviles->query();
	   $operadores_moviles->Desconectar();
	   
	   
	   $operadores_moviles_array= array();
	   while($row = $operadores_moviles->fetchArray($resultado_operadores_moviles))
	   {
			array_push($operadores_moviles_array,$row);
	   }	   
	   return $operadores_moviles_array;
	}
	
	public function GetOperadoresMovilesSinLJ()
	{	   
	   $operadores_moviles = new consultasDb('');
	   $operadores_moviles->setConsulta("select * from operadores_moviles where isnull(LocalizacionJerarquicaID)");
	   $resultado_operadores_moviles = $operadores_moviles->query();
	   $operadores_moviles->Desconectar();
	   
	   $operadores_moviles_array= array();
	   while($row = $operadores_moviles->fetchArray($resultado_operadores_moviles))
	   {
			array_push($operadores_moviles_array,$row);
	   }	   
	   return $operadores_moviles_array;
	}
	
	public function GetOperadoresMovilesSinLJSon()
	{	   
	   $operadores_moviles = new consultasDb('');
	   $operadores_moviles->setConsulta("select * from operadores_moviles where isnull(LocalizacionJerarquicaID)");
	   $resultado_operadores_moviles = $operadores_moviles->query();
	   $operadores_moviles->Desconectar();
	   
	   $operadores_moviles_array= array();
	   while($row = $operadores_moviles->fetchArray($resultado_operadores_moviles))
	   {
			array_push($operadores_moviles_array,$row);
	   }	   
	   return json_encode($operadores_moviles_array);
	}
	
	public function GetConfiguraciones($ConfiguracionNombre)
	{
	   $configuraciones = new consultasDb('');
	   $configuraciones->setConsulta("SELECT * FROM configuraciones WHERE ConfiguracionNombre = '".$ConfiguracionNombre."'");
	   $q = $configuraciones->query();
	   $configuraciones->Desconectar();
	   
	   
	   $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->Desconectar();
	   
	   $sucursales_asociadas_array= array();
	   while($row = $sucursales_asociadas->fetchArray($resultado_sucursales_asociadas))
	   {
			array_push($sucursales_asociadas_array,$row["LocalizacionJerarquicaID"]);
	   }	   
	   return $sucursales_asociadas_array;
	}	
}
?>