UFN_FAFGROUP_HASREACHEDLIMIT

Returns true (bit = 1) if the given team hasn't reached the number limit.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN
@TEAMID uniqueidentifier IN
@REGISTRANTROLE tinyint IN

Definition

Copy


CREATE function dbo.UFN_FAFGROUP_HASREACHEDLIMIT(@EVENTID uniqueidentifier, @TEAMID uniqueidentifier, @REGISTRANTROLE tinyint)
returns bit with execute as caller
as begin
  DECLARE @TEAMTYPE tinyint
  DECLARE @FORCOMPANYMEMBER bit
  DECLARE @TEAMMEMBERSLIMIT int  
    DECLARE @HOUSEHOLDMEMBERSLIMIT int  
    DECLARE @COMPANYTEAMMEMBERSLIMIT int  
    DECLARE @COMPANYTEAMSLIMIT int

    DECLARE @MEMBERS int
    DECLARE @TEAMS int

    DECLARE @HASREACHEDLIMIT bit  
    SET @HASREACHEDLIMIT = 1

    SELECT @TEAMTYPE = CASE @REGISTRANTROLE
      when 0 then 0
      when 1 then 2 
      when 2 then 0 
      when 3 then 1 
      when 4 then 2 
        when 5 then 1 
      when 6 then 0 
      when 7 then 2 
      when 8 then 0 
      when 9 then 3
    END

  IF @TEAMTYPE = 0 OR @TEAMID IS NULL
    return 0

  IF @REGISTRANTROLE = 7
    SET @FORCOMPANYMEMBER = 1
  ELSE
    SET @FORCOMPANYMEMBER = 0

  SELECT @TEAMMEMBERSLIMIT = ISNULL(TEAMMEMBERSLIMIT,0), @HOUSEHOLDMEMBERSLIMIT = ISNULL(HOUSEHOLDMEMBERSLIMIT, 0), 
        @COMPANYTEAMSLIMIT = ISNULL(COMPANYTEAMSLIMIT, 0), @COMPANYTEAMMEMBERSLIMIT = ISNULL(COMPANYTEAMMEMBERSLIMIT, 0)
    from dbo.EVENTTEAMFAFCONFIG EC
    where EVENTID = @EVENTID

    IF @TEAMTYPE = 1
    BEGIN
        SET @MEMBERS = (SELECT COUNT(*) FROM dbo.UFN_FAF_TEAMMEMBERLIST_BY_TEAMID(@TEAMID))
        IF @TEAMMEMBERSLIMIT = 0 OR @MEMBERS < @TEAMMEMBERSLIMIT
            SET @HASREACHEDLIMIT = 0
    END
    ELSE IF @TEAMTYPE = 3
    BEGIN
        SET @MEMBERS = (SELECT COUNT(*) FROM dbo.UFN_FAF_HOUSEHOLDMEMBERS_BY_HHTEAMID(@TEAMID))
        IF @HOUSEHOLDMEMBERSLIMIT = 0 OR @MEMBERS < @HOUSEHOLDMEMBERSLIMIT
            SET @HASREACHEDLIMIT = 0
    END
    ELSE IF @TEAMTYPE = 2
    BEGIN
        SET @MEMBERS = (SELECT COUNT(*) FROM dbo.UFN_FAF_COMPANYINDIVIDUALLIST_BY_COMPANYID(@TEAMID))

        SET @TEAMS = (SELECT COUNT(*) FROM dbo.UFN_FAF_GETTEAMHIEARACHY(@TEAMID) WHERE [level] > 0 and TEAMID IN 
                (SELECT TEAMFUNDRAISINGTEAMID FROM dbo.TEAMEXTENSION where EVENTID=@EVENTID and TYPECODE = 1)
              )

        IF @FORCOMPANYMEMBER = 1
      BEGIN
              IF @COMPANYTEAMMEMBERSLIMIT = 0 OR @MEMBERS < @COMPANYTEAMMEMBERSLIMIT
                  SET @HASREACHEDLIMIT = 0
      END
        ELSE
      BEGIN
              IF @COMPANYTEAMSLIMIT = 0 OR @TEAMS < @COMPANYTEAMSLIMIT
                  SET @HASREACHEDLIMIT = 0
      END
    END

    return @HASREACHEDLIMIT     
end