
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[a_sel_dis_evento_estadoEventos_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[a_sel_dis_evento_estadoEventos_m]
GO
CREATE PROCEDURE [dbo].[a_sel_dis_evento_estadoEventos_m]
	@p_eid as varchar (50)='',
	@p_filtro as varchar (8000) = '1=1',
	@p_orden as varchar (8000) = 'id',
	@p_campos as varchar (8000) = 'id' AS
BEGIN
exec (
'SELECT  '+ @p_campos +' , case when view_dis_evento_estadoEvento.dis_evento_duracion_hh=convert(smalldatetime,''1900-01-01 00:00:00.000'',103) and 
(select top 1  dis1.fechaHoraRegistro_fh  from dis_evento_estadoEvento dis1 where dis1.active=1 and dis1.id_evento= view_dis_evento_estadoEvento.id_evento and dis1.fechaHoraRegistro_fh> view_dis_evento_estadoEvento.fechaHoraRegistro_fh order by dis1.fechaHoraRegistro_fh asc ) is null 
then getdate() 
else
Case when (select top 1   dis1.fechaHoraRegistro_fh  from dis_evento_estadoEvento dis1 where  dis1.active=1 and dis1.id_evento=view_dis_evento_estadoEvento.id_evento and dis1.fechaHoraRegistro_fh>view_dis_evento_estadoEvento.fechaHoraRegistro_fh order by dis1.fechaHoraRegistro_fh asc ) is null 
then 
view_dis_evento_estadoEvento.dis_evento_duracion_hh
else 
(select top 1   dis1.fechaHoraRegistro_fh  from dis_evento_estadoEvento dis1  where  dis1.active=1 and dis1.id_evento=view_dis_evento_estadoEvento.id_evento and dis1.fechaHoraRegistro_fh>view_dis_evento_estadoEvento.fechaHoraRegistro_fh order by dis1.fechaHoraRegistro_fh asc ) 
end
end as dis_evento_estadoEvento_duracion_hh from view_dis_evento_estadoEvento 
WHERE (active=1)AND (eid like '''+@p_eid+'%'+''' ) AND  (' + @p_filtro + ')ORDER BY ' + @p_orden

)
END

GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[a_sel_dis_evento_estadoEventos]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[a_sel_dis_evento_estadoEventos]
GO
CREATE PROCEDURE [dbo].[a_sel_dis_evento_estadoEventos]
		@p_filtro as varchar (8000) = '1=1',
	@p_orden as varchar (8000) = 'id',
	@p_campos as varchar (8000) = 'id' AS
BEGIN
exec (
'SELECT  '+ @p_campos +' , case when view_dis_evento_estadoEvento.dis_evento_duracion_hh=convert(smalldatetime,''1900-01-01 00:00:00.000'',103) and 
(select top 1  dis1.fechaHoraRegistro_fh  from dis_evento_estadoEvento dis1 where dis1.active=1 and dis1.id_evento= view_dis_evento_estadoEvento.id_evento and dis1.fechaHoraRegistro_fh> view_dis_evento_estadoEvento.fechaHoraRegistro_fh order by dis1.fechaHoraRegistro_fh asc ) is null 
then getdate() 
else
Case when (select top 1   dis1.fechaHoraRegistro_fh  from dis_evento_estadoEvento dis1 where  dis1.active=1 and dis1.id_evento=view_dis_evento_estadoEvento.id_evento and dis1.fechaHoraRegistro_fh>view_dis_evento_estadoEvento.fechaHoraRegistro_fh order by dis1.fechaHoraRegistro_fh asc ) is null 
then 
view_dis_evento_estadoEvento.dis_evento_duracion_hh
else 
(select top 1   dis1.fechaHoraRegistro_fh  from dis_evento_estadoEvento dis1  where  dis1.active=1 and dis1.id_evento=view_dis_evento_estadoEvento.id_evento and dis1.fechaHoraRegistro_fh>view_dis_evento_estadoEvento.fechaHoraRegistro_fh order by dis1.fechaHoraRegistro_fh asc ) 
end
end as dis_evento_estadoEvento_duracion_hh from view_dis_evento_estadoEvento
WHERE  (active=1)AND  (' + @p_filtro + ')ORDER BY ' + @p_orden
)
END
