
ALTER PROCEDURE [dbo].[rep_listadoHerramientas]
	
		@p_tercero as INT = 0,
		@p_catalogo_equipo as INT = 0,
		@p_usuario as INT = 0,
		@p_fechaPrestamo_ff as smalldatetime = null,
		@p_fechaPrestamo_ff_b as smalldatetime = null,
		@p_fechaDevolucion_ff as smalldatetime = null,
		@p_fechaDevolucion_ff_b as smalldatetime = null,
		@p_fechaCompromiso_ff as smalldatetime = null,
		@p_fechaCompromiso_ff_b as smalldatetime = null,
		@p_eid varchar(100)

AS
BEGIN


select * from 
(
select equipo,equipo_serial,id_tercero,[id_catalogo.equipo] as modelo,
(
	case when
	(select  top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc) > 0 
		then 0
		else 1
		end 
) as disponible,

(
	case when
	(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc) > 0 
	then 
	(select fechaCompromiso_ff from equ_prestamo where id=(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc))
	else null
	end 
) as fechaCompromiso,

(
	case when
	(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc) > 0 
	then 
	(select fechaPrestamo_ff from equ_prestamo where id=(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc))
	else null
	end 
) as fechaPrestamo,
(
	case when
	(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc) > 0 
	then 
	(select seg_usuario_entrego_usuario from view_equ_prestamo where id=(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc))
	else null
	end 
) as usuario,

(
	case when
	(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc) > 0 
	then 
	(select fechaDevolucion_ff from equ_prestamo_equipo where id_equipo= equ_equipo.id and id_prestamo=(select   top 1 id_prestamo from equ_trazabilidad where id_equipo= equ_equipo.id order by id_equipo,fecha_ff desc))
	else null
	end 
) as fechaDevolucion

from equ_equipo inner join
cat_catalogo on cat_catalogo.id = equ_equipo.[id_catalogo.equipo]

where
equ_equipo.active=1
and cat_catalogo.id_subtipocatalogo=2

) as tabla1
where
(@p_tercero=0 or id_tercero = @p_tercero)
and (@p_catalogo_equipo=0 or modelo = @p_catalogo_equipo)
and (@p_usuario=0 or usuario = @p_usuario)
and (@p_fechaPrestamo_ff is null or fechaPrestamo >= @p_fechaPrestamo_ff)
and (@p_fechaPrestamo_ff_b is null or fechaPrestamo <= @p_fechaPrestamo_ff_b)
and (@p_fechaDevolucion_ff is null or fechaDevolucion >= @p_fechaDevolucion_ff)
and (@p_fechaDevolucion_ff_b is null or fechaDevolucion <= @p_fechaDevolucion_ff_b)
and (@p_fechaCompromiso_ff is null or fechaCompromiso >= @p_fechaCompromiso_ff)
and (@p_fechaCompromiso_ff_b is null or fechaCompromiso <= @p_fechaCompromiso_ff_b)


END
GO
