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

include_once($uri);

class pedidos extends consultasDb
{
	private $tipoEventoID;
	private $nroOperadorMovil;
	private $nroDispositivoMovil;
	private $fechaHoraEvento;
	private $posicionGPS;
	private $descripcion;

	public function __construct($nroOperadorMovil="",$nroDispositivoMovil="",$fechaHoraEvento="",$posicionGPS="",$descripcion="")
	{
		parent::__construct('pedidos');
		$this->setDbLink(parent::Conectar());

		$this->setNroOperadorMovil($nroOperadorMovil);
		$this->setNroDispositivoMovil($nroDispositivoMovil);
		$this->setFechaHoraEvento($fechaHoraEvento);
		$this->setPosicionGPS($posicionGPS);
		$this->setDescripcion($descripcion);
	}

	//Setters

	public function setNroOperadorMovil($nroOperadorMovil)
	{
		$this->nroOperadorMovil = $nroOperadorMovil;
	}
	public function setNroDispositivoMovil($nroDispositivoMovil)
	{
		$this->nroDispositivoMovil = $nroDispositivoMovil;
	}
	public function setFechaHoraEvento($fechaHoraEvento)
	{
		$this->fechaHoraEvento = $fechaHoraEvento;
	}
	public function setPosicionGPS($posicionGPS)
	{
		$this->posicionGPS = $posicionGPS;
	}
	public function setDescripcion($descripcion)
	{
		$this->descripcion = $descripcion;
	}
	

	//Getters

	public function getNroOperadorMovil()
	{
		return $this->nroOperadorMovil;
	}
	public function getNroDispositivoMovil()
	{
		return $this->nroDispositivoMovil;
	}
	public function getFechaHoraEvento()
	{
		return $this->fechaHoraEvento;
	}
	public function getPosicionGPS()
	{
		return $this->posicionGPS;
	}
	public function getDescripcion()
	{
		return $this->descripcion;
	}

	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 GetClientes()
	{	   
	   $clientes = new consultasDb('');
	   $clientes->setConsulta("SELECT * FROM clientes");
	   $resultado_clientes = $clientes->query();
	   
	   $clientes_array= array();
	   while($row = $clientes->fetchArray($resultado_clientes))
	   {
			array_push($clientes_array,$row);
	   }	   
	   return $clientes_array;
	}
	
	public function GetOperadoresMoviles($operador_monitor_id)
	{	   
	   $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 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 GetDispositivosMoviles()
	{	   
	   $dispositivos_moviles = new consultasDb('');
	   $dispositivos_moviles->setConsulta("SELECT NroDispositivoMovil FROM dispositivos_moviles");
	   $resultado_dispositivos_moviles = $dispositivos_moviles->query();
	   
	   $dispositivos_moviles_array= array();
	   while($row = $dispositivos_moviles->fetchArray($resultado_dispositivos_moviles))
	   {
			array_push($dispositivos_moviles_array,$row);
	   }	   
	   return $dispositivos_moviles_array;
	}
	
	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 GetPedidos($parametros)
	{		
		try
		{
			switch($parametros['ultimo_id'])
			{
				case 1:
					$sucursales =  "'".implode(",",json_decode($parametros['sucursales']))."'";
					$distritos = $parametros['distritos'];
					$zonas = $parametros['zonas'];
					break;
				case 2:
					$sucursales =  $parametros['sucursales'];
					$distritos = "'".implode(",",json_decode($parametros['distritos']))."'";
					$zonas = $parametros['zonas']; 				
					break;
				case 3:
					$sucursales =  $parametros['sucursales'];
					$distritos = $parametros['distritos'];
					$zonas = "'".implode(",",json_decode($parametros['zonas']))."'";				
					break;		
			}
			
			$getEventos = new consultasDb("");
			$query ="call get_pedidos('".trim($parametros['fecha_desde'])."','"
										.trim($parametros['fecha_hasta'])."',"
									    .trim($parametros['fecha_entrega_desde']).","
										.trim($parametros['fecha_entrega_hasta']).","
										.trim($parametros['diferido']).","
										.trim($sucursales).","
									    .trim($distritos).","
										.trim($zonas).","
										.trim($parametros['nombre_operador_movil']).","
										.trim($parametros['numero_dispositivo_movil']).","
										.trim($parametros['cliente']).","
										.trim($parametros['ultimo_id']).");";
										
			//echo $query;

			$getEventos->setConsulta($query);
			$q = $getEventos->query();
			$getEventos->Desconectar();
			
			$json = '{"aaData":[';
			
			if($q){
				$first = true;
				while($row = $getEventos->fetchArray($q)){
					if($first) {
						$first = false;
					} else {
						$json .= ',';
					}
					if($parametros['ultimo_id'] == '3')					
						$json .= '["'.trim($row["Numero"]).'","'.
						trim($row["FechaDePedido"]).'","'.
						trim($row["Sucursal"]).'","'.
						trim($row["Distrito"]).'","'.
						trim($row["Zona"]).'","'.										
						trim($row["NroDispositivoMovil"]).'","'.
						trim($row["NroOperadorMovil"]).' - '.trim($row["NombreApellido"]).'","'.
						trim($row["CodigoCliente"]).' - '.trim($row["RazonSocial"]).'","'.
						trim($row["PosicionGPS"]).'","'.
						trim($row["HoraInicio"]).'","'.
						trim($row["HoraFin"]).'","'.
						trim($row["Duracion"]).'","'.
						trim($row["DiaSemana"]).'","'.
						trim($row["FechaEntrega"]).'","'.
						trim($row["TotalNeto"]).'","'.
						trim($row["CantidadLineas"]).'","'.
						trim($row["Unidades"]).'","'.
						trim($row["Subunidades"]).'","'.
						trim($row["Uc"]).'"]';
					else if($parametros['ultimo_id'] == '2')					
						$json .= '["'.trim($row["Numero"]).'","'.
						trim($row["FechaDePedido"]).'","'.
						trim($row["Sucursal"]).'","'.
						trim($row["Distrito"]).'","'.						
						trim($row["NroDispositivoMovil"]).'","'.
						trim($row["NroOperadorMovil"]).' - '.trim($row["NombreApellido"]).'","'.
						trim($row["CodigoCliente"]).' - '.trim($row["RazonSocial"]).'","'.
						trim($row["PosicionGPS"]).'","'.
						trim($row["HoraInicio"]).'","'.
						trim($row["HoraFin"]).'","'.
						trim($row["Duracion"]).'","'.
						trim($row["DiaSemana"]).'","'.
						trim($row["FechaEntrega"]).'","'.
						trim($row["TotalNeto"]).'","'.
						trim($row["CantidadLineas"]).'","'.
						trim($row["Unidades"]).'","'.
						trim($row["Subunidades"]).'","'.
						trim($row["Uc"]).'"]'; 
					else 					
						$json .= '["'.trim($row["Numero"]).'","'.
						trim($row["FechaDePedido"]).'","'.
						trim($row["Sucursal"]).'","'.								
						trim($row["NroDispositivoMovil"]).'","'.
						trim($row["NroOperadorMovil"]).' - '.trim($row["NombreApellido"]).'","'.
						trim($row["CodigoCliente"]).' - '.trim($row["RazonSocial"]).'","'.
						trim($row["PosicionGPS"]).'","'.
						trim($row["HoraInicio"]).'","'.
						trim($row["HoraFin"]).'","'.
						trim($row["Duracion"]).'","'.
						trim($row["DiaSemana"]).'","'.
						trim($row["FechaEntrega"]).'","'.
						trim($row["TotalNeto"]).'","'.
						trim($row["CantidadLineas"]).'","'.
						trim($row["Unidades"]).'","'.
						trim($row["Subunidades"]).'","'.
						trim($row["Uc"]).'"]';
				}
				$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";
		}
	}
}
?>