if exists(select 1 from sys.objects where name='f_horometrovisita') drop function f_horometrovisita;
go

CREATE FUNCTION [dbo].f_horometrovisita(@id_visita int)
	RETURNS varchar(100)
AS
BEGIN
	declare @horometro varchar(100)
	declare @horometroVisita float
	declare @horometroTempario float
	declare @idEquipo int
	declare @idOT int
	select @horometro=
		(case when [cat_catalogo.tempario_periodoHoras] = 0 and [cat_catalogo.tempario_periodoDias] > 0 then 
			'' 
		 else CAST(horometro AS VARCHAR(50)) end)
		 ,@idEquipo=cnt_contratoEquipo_id_equipo
		 ,@horometroVisita=horometro
		 ,@horometroTempario=[cat_catalogo.tempario_periodoHoras]
		 ,@idOT=[id_documento.ot]
	from view_cnt_visitafija
	where id=@id_visita

	if @horometro!='' and @idOT=0 and exists (select 1 from view_equ_ciclohorometro where id_equipo=@idEquipo and nciclo>1 )
	begin
		declare @ultimoCiclo int=(select max(nciclo)from view_equ_ciclohorometro where id_equipo=@idEquipo)
		declare @horasAntes float=(select sum(horoMetroFinal-horometroInicial) from equ_ciclohorometro where id_equipo=@idEquipo and active=1 and Nciclo<@ultimoCiclo)
		
		set @horometro = cast(@horometroVisita-@horasAntes as varchar(20)) + ' (' + @horometro + ')' 
	end




	RETURN @horometro 
END
GO

if exists(select 1 from sys.objects where name='f_horometroservicio') drop function f_horometroservicio;
go

CREATE FUNCTION [dbo].f_horometroservicio(@id_ot int)
	RETURNS varchar(100)
AS
BEGIN
	declare @horometro varchar(100)
	select @horometro=
		CAST(horometro AS VARCHAR(50))
	from view_equ_trazabilidad
	where id_documento=@id_ot

	RETURN @horometro 
END