DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_eventos_mapa`(IN `in_fecha_desde` VARCHAR(100), IN `in_fecha_hasta` VARCHAR(100), IN `localizacion_jerarquica` VARCHAR(100), IN `in_operador_movil` VARCHAR(100), IN `ultimo_nivel` INT)
BEGIN

SELECT
Numero, 
OMP.NombreApellido as Vendedor, 
CL.RazonSocial as Cliente,
SUBSTRING_INDEX(cv.PosicionGPS, ';', 1) as lat, 
SUBSTRING_INDEX(cv.PosicionGPS, ';', -1) as lon, 
DATE_FORMAT(cv.FechaHoraInicio,'%d-%m-%Y') as FechaHoraInicio,
DATE_FORMAT(cv.FechaHoraInicio,'%H:%i:%S') as hora,
CONCAT('$ ', FORMAT(cv.TotalNeto, 2)) as total,
'' as motivo

from pedidos cv
INNER JOIN operadores_moviles OMP ON cv.NroOperadorMovil = OMP.NroOperadorMovil
INNER JOIN clientes CL ON cv.CodigoCliente = CL.CodigoCliente
WHERE  (in_fecha_desde IS NULL OR (date_format(str_to_date(cv.FechaHoraInicio, '%Y%m%d'), '%Y%m%d') >= date_format(in_fecha_desde, '%Y%m%d')AND 
										 date_format(str_to_date(cv.FechaHoraInicio, '%Y%m%d'), '%Y%m%d') <= date_format(in_fecha_hasta, '%Y%m%d') )AND			
		(in_operador_movil IS NULL OR FIND_IN_SET(cv.NroOperadorMovil,in_operador_movil))
			 )
             -- agragamos al listado de mapa no visitados
UNION             
SELECT
Numero, 
OMP2.NombreApellido as Vendedor, 
CL2.RazonSocial as Cliente,
SUBSTRING_INDEX(mt.PosicionGPS, ';', 1) as lat, 
SUBSTRING_INDEX(mt.PosicionGPS, ';', -1) as lon, 
DATE_FORMAT(mt.FechaHoraMotivo,'%d-%m-%Y') as FechaHoraInicio,
DATE_FORMAT(mt.FechaHoraMotivo,'%H:%i:%S') as hora,
'' as total,
tmt.Descripcion as motivo

from motivos mt
INNER JOIN operadores_moviles OMP2 ON mt.NroOperadorMovil = OMP2.NroOperadorMovil
INNER JOIN clientes CL2 ON mt.CodigoCliente = CL2.CodigoCliente
INNER JOIN tipos_motivos tmt on mt.MotivoID = tmt.MotivoID
WHERE  (in_fecha_desde IS NULL OR (date_format(str_to_date(mt.FechaHoraMotivo, '%Y%m%d'), '%Y%m%d') >= date_format(in_fecha_desde, '%Y%m%d')AND 
										 date_format(str_to_date(mt.FechaHoraMotivo, '%Y%m%d'), '%Y%m%d') <= date_format(in_fecha_hasta, '%Y%m%d') )AND			
		(in_operador_movil IS NULL OR FIND_IN_SET(mt.NroOperadorMovil,in_operador_movil))
			 )
             ;

END$$
DELIMITER ;
