IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'[dbo].[CF_SCA_ValidarContratosTipos]') 
                   and [type] = 'FN')
BEGIN
    DROP FUNCTION dbo.CF_SCA_ValidarContratosTipos
END
GO

CREATE FUNCTION [dbo].[CF_SCA_ValidarContratosTipos](@pId_Cliente INT, @pId_Acceso SMALLINT, @pFecha DATETIME)
RETURNS INT
AS
BEGIN
DECLARE @ContratoHabilitado INT

SET @ContratoHabilitado = 0

SET @ContratoHabilitado = ISNULL((SELECT MAX(CO.Id_Contrato)
								FROM Contratos CO, CD_Accesos_Cont_Tipos CACT
								WHERE 
								CO.Id_Cliente = @pId_Cliente
								AND CO.Id_Tipo_Con = CACT.Id_Tipo_Con
								--AND CO.Activo = 1 --22/01/2019 se comenta porque se controla solo por las fechas desde y hasta
								AND CO.Id_Tipo_Con IN (SELECT Id_Tipo_Con FROM CD_Accesos_Cont_Tipos WHERE Id_Acceso = @pId_Acceso)
								AND ISNULL(CACT.Flag_Habilitado, 'H') = 'H'
								AND CO.Fecha_Desde < (@pFecha + 1)
								AND (CO.Fecha_Hasta IS NULL OR CO.Fecha_Hasta >= @pFecha))
								,0)


RETURN ISNULL(@ContratoHabilitado, 0)

END