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

class localizaciones_jerarquicas extends consultasDb
{
	private $localizacionJerarquicaID;
	private $tipoLocalizacionJerarquicaID;
	private $localizacionJerarquicaPadreID;
	private $descripcion;

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

	//Setters

	public function setTipoLocalizacionJerarquicaID($tipoLocalizacionJerarquicaID)
	{
		$this->tipoLocalizacionJerarquicaID = $tipoLocalizacionJerarquicaID;
	}
	public function setLocalizacionJerarquicaPadreID($localizacionJerarquicaPadreID)
	{
		$this->localizacionJerarquicaPadreID = $localizacionJerarquicaPadreID;
	}
	public function setDescripcion($descripcion)
	{
		$this->descripcion = $descripcion;
	}
	

	//Getters

	public function getTipoLocalizacionJerarquicaID()
	{
		return $this->tipoLocalizacionJerarquicaID;
	}
	public function getLocalizacionJerarquicaPadreID()
	{
		return $this->localizacionJerarquicaPadreID;
	}
	public function getDescripcion()
	{
		return $this->descripcion;
	}

	public function nuevo($parametros)
	{
		try{
			$nuevo = new consultasDb("");
			$sql = "CALL insert_localizaciones_jerarquicas(".trim($parametros['numero']).",".trim($parametros['tipo_localizacion_jerarquica_id']).",".trim($parametros['localizacion_jerarquica_padre_id']).",'".trim($parametros['nombre'])."')";
			$nuevo->setConsulta($sql);
			$q = $nuevo->query();
			$nuevo->Desconectar();
			if($q)
				$_SESSION['exito'] = "Localización jerárquica agregada correctamente.";
			else
				$_SESSION['error'] = "No se ha podido agregar la localización jerárquica.";
			
			return $q;
		} catch (Exception $e) {
			echo 'Excepción capturada: ',  $e->getMessage(), "\n";
		}
	}

	public function editar($parametros)
	{
		try{
			$editar = new consultasDb("");
			$sql = "CALL update_localizaciones_jerarquicas(".trim($parametros['id']).",'".trim($parametros['numero'])."','".trim($parametros['nombre'])."',".trim($parametros['tipo_localizacion_jerarquica_id']).",".trim($parametros['localizacion_jerarquica_padre_id']).")";
			$editar->setConsulta($sql);
			$q = $editar->query();
			$editar->Desconectar();
			
			if($q)
				$_SESSION['exito'] = "Localización jerárquica editada correctamente.";
			else
				$_SESSION['error'] = "No se ha podido editar la localización jerárquica.";
			
			return $q;
		} catch (Exception $e) {
			echo 'Excepción capturada: ',  $e->getMessage(), "\n";
		}
	}

	public function eliminar($parametros)
	{
		try
		{
			$eliminar = new consultasDb("");
			$eliminar->setConsulta('CALL delete_localizaciones_jerarquicas('.$parametros["LocalizacionJerarquicaID"].');');
			$q = $eliminar->query();
			$eliminar->Desconectar();
			
			if($q)
				$_SESSION['exito'] = "Localización jerárquica eliminada correctamente.";
			else
				$_SESSION['error'] = "No se ha podido eliminar la localización jerárquica.";
			
			return $q;
		} catch (Exception $e) {
			echo 'Excepción capturada: ',  $e->getMessage(), "\n";
		}
	}
	
	public function GetSucursales()
	{
	   $sucursal = new consultasDb('');
	   $sucursal->setConsulta('SELECT * FROM Sucursales');
	   $resultado_sucursales = $sucursal->query();
	   $sucursales_array = array();
	   while($row = $sucursal->fetchArray($resultado_sucursales))
	   {
			array_push($sucursales_array,$row);
	   }	   
	   return $sucursales_array; 
	}
	
	public function GetDistritos()
	{
	   $distritos = new consultasDb('');
	   $distritos->setConsulta('SELECT * FROM distritos_detalles');
	   $resultado_distritos = $distritos->query();
	   $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 zonas_detalles');
	   $resultado_zonas = $zonas->query();
	   $zonas_array = array();
	   while($row = $zonas->fetchArray($resultado_zonas))
	   {
			array_push($zonas_array,$row);
	   }	   
	   return $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 verificarNumeroLocalizacionJerarquica($parametros)
	{
		$verificar = new consultasDb("");
		$verificar->setConsulta("select * from localizaciones_jerarquicas 
								where NumeroLocalizacionJerarquica = ".$parametros["numero"]." 
								AND TipoLocalizacionJerarquicaID = ".$parametros["tipo"]);
		$q = $verificar->numRow();
		return $q;
	}
	
	public function verificarNombreLocalizacionJerarquica($parametros)
	{
		$verificar = new consultasDb("");
		$verificar->setConsulta("select * from localizaciones_jerarquicas where Descripcion = '".trim($parametros["nombre"])."' AND TipoLocalizacionJerarquicaID = ".$parametros["tipo"]);
		$q = $verificar->numRow();
		return $q;
	}
	
	public function verificarOperadorAsociado($parametros)
	{
		$verificar = new consultasDb("");
		$verificar->setConsulta("select * from operadores_monitores_sucursales WHERE LocalizacionJerarquicaID = ".$parametros["id"]);
		$q = $verificar->numRow();
		return $q;
	}
	
	public function verificarDistritoAsociado($parametros)
	{
		$verificar = new consultasDb("");
		$verificar->setConsulta("select * from localizaciones_jerarquicas where LocalizacionJerarquicaPadreID = ".$parametros["id"]);
		$q = $verificar->numRow();
		return $q;
	}
}
?>