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

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

SET @ContratoRechazado = 0

SET @ContratoRechazado = 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 
								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') = 'R'
								AND CO.Fecha_Desde < (@pFecha + 1)
								AND (CO.Fecha_Hasta IS NULL OR CO.Fecha_Hasta >= @pFecha))
								,0)

RETURN ISNULL(@ContratoRechazado, 0)

END