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

GO

CREATE FUNCTION [dbo].[CF_Cli_Cant_Ref](@Cli INT) 
RETURNS INT
AS
BEGIN

DECLARE @Cab_Grupo INT
DECLARE @Retorno INT

SET @Cab_Grupo = ISNULL((SELECT Id_Cliente_Ref FROM Clientes WHERE Id_Cliente = @Cli),0)

IF @Cab_Grupo = 0
	SET @Cab_Grupo = @Cli
	
SET @Retorno = ISNULL((SELECT COUNT(*) + 1 FROM Clientes WHERE Id_Cliente_Ref = @Cab_Grupo AND Activo = 1),1)

RETURN @Retorno
END

