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

CREATE FUNCTION [dbo].[CF_SCA_ValidarCategHorario](@pId_Cliente INT, @pId_Acceso SMALLINT, @pFecha DATETIME)
RETURNS SMALLINT
AS
BEGIN
DECLARE @Retorno				SMALLINT
DECLARE @DiaActual				TINYINT
DECLARE @Id_Tipo_Cli			SMALLINT

--[CD_ACCESOS_HORARIOS].[Dia] = 0 -> Domingo ,1->Lunes ....


SET @DiaActual = DATEPART(DW,@pFecha)

IF (@@DATEFIRST= 7)
   SET @DiaActual = @DiaActual - 1


IF (@DiaActual=7) 
	SET @DiaActual = 0

SET @Id_Tipo_Cli = (SELECT Id_Tipo_Cli FROM Clientes WHERE Id_Cliente = @pId_Cliente)


-------------------------------------Verifica cuando el PRODUCTO está VACIO, CATEGORIA está CARGADA
SET @Retorno = ISNULL((SELECT Id_Tipo_Cli FROM CD_ACCESOS_HORARIOS WHERE Id_Acceso = @pId_Acceso
               AND ISNULL(Id_Producto,'') = ''
               AND Id_Tipo_Cli = @Id_Tipo_Cli
               AND Dia = @DiaActual
               AND ( (Hora_Desde IS NULL AND Hora_Hasta IS NULL) OR (CAST(@pFecha AS TIME) BETWEEN CAST(Hora_Desde AS TIME) AND CAST(Hora_Hasta AS TIME)))),0)



RETURN ISNULL(@Retorno, 0)

END