USP_DATALIST_FAFTRANSFERGIFTTOTEAMMEMBERLIST

List of team/household/company members for transferring gifts.

Parameters

Parameter Parameter Type Mode Description
@CLIENTUSERSID int IN Client Users ID
@EVENTID uniqueidentifier IN Event ID

Definition

Copy


      CREATE procedure dbo.USP_DATALIST_FAFTRANSFERGIFTTOTEAMMEMBERLIST  
              (             
                @CLIENTUSERSID int,  
             @EVENTID uniqueidentifier  
              )  
            as  
             set nocount on;  

    DECLARE @CONSTITUENTID uniqueidentifier  
             DECLARE @REGISTRANTID uniqueidentifier  
             DECLARE @TEAMID uniqueidentifier  
             DECLARE @TEAMTYPE tinyint  
             DECLARE @PARENTTEAMID uniqueidentifier

             DECLARE @DetailedRevenue table  
             (  
              ROLETYPE varchar(100),  
              GOAL money,  
              ACTUAL money,  
              NAME varchar(150),  
              CONSTITUENTID uniqueidentifier  
             )  

             DECLARE   
              @IsIndependentHouseholdMember bit   
              ,@IsIndependentHouseholdLeader bit    
              ,@IsIndependentTeamMember bit    
              ,@IsIndependentTeamLeader bit     
              ,@IsCompanyHouseholdMember bit     
              ,@IsCompanyHouseholdLeader bit     
              ,@IsCompanyTeamHouseholdLeader bit     
              ,@IsCompanyTeamMember bit     
              ,@IsCompanyTeamLeader bit     
              ,@IsCompanyLeader bit     
              ,@IsCompanyTeamHouseholdMember bit  
              ,@IsTeamHouseholdMember bit  
              ,@IsTeamHouseholdLeader bit  

              SET @CONSTITUENTID = dbo.UFN_CONSTITUENT_GET_BY_CLIENTUSERID(@CLIENTUSERSID)   

             EXEC dbo.USP_FAF_REGISTRANT_ROLE  
              @CONSTITUENTID = @CONSTITUENTID  
              ,@EVENTID =@EVENTID  
              ,@IsIndependentHouseholdMember  = @IsIndependentHouseholdMember OUTPUT  
              ,@IsIndependentHouseholdLeader  = @IsIndependentHouseholdLeader OUTPUT  
              ,@IsIndependentTeamMember  = @IsIndependentTeamMember OUTPUT  
              ,@IsIndependentTeamLeader   = @IsIndependentTeamLeader OUTPUT  
              ,@IsCompanyHouseholdMember   = @IsCompanyHouseholdMember OUTPUT  
              ,@IsCompanyHouseholdLeader   = @IsCompanyHouseholdLeader OUTPUT  
              ,@IsCompanyTeamHouseholdLeader   = @IsCompanyTeamHouseholdLeader OUTPUT  
              ,@IsCompanyTeamMember   = @IsCompanyTeamMember OUTPUT  
              ,@IsCompanyTeamLeader   = @IsCompanyTeamLeader OUTPUT  
              ,@IsCompanyLeader   = @IsCompanyLeader OUTPUT  
              ,@IsCompanyTeamHouseholdMember = @IsCompanyTeamHouseholdMember OUTPUT  
              ,@IsTeamHouseholdMember = @IsTeamHouseholdMember OUTPUT  
              ,@IsTeamHouseholdLeader = @IsTeamHouseholdLeader OUTPUT  

             SELECT @REGISTRANTID = REGISTRANTID, @TEAMID = TEAMID, @TEAMTYPE = TEAMTYPECODE, @PARENTTEAMID = PARENTTEAMID  
             FROM dbo.UFN_FAF_GETTEAMINFO_BY_REGISTRANT(@CONSTITUENTID, @EVENTID) FNTEAM  

              -- Personal  

             BEGIN  
              INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)  
              SELECT   
               'Personal',  
               RE.TARGETFUNDRAISINGGOAL,  
               dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(@REGISTRANTID,@EVENTID),  
               C.NAME,  
               C.ID  
              FROM dbo.REGISTRANT R (NOLOCK)  
              INNER JOIN dbo.REGISTRANTEXTENSION RE (NOLOCK)  
              ON R.ID = RE.REGISTRANTID  
              INNER JOIN dbo.CONSTITUENT C (NOLOCK)  
              ON R.CONSTITUENTID = C.ID  
              WHERE R.ID = @REGISTRANTID  
             END  

             BEGIN  

              INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID) 

              ---now a team can have more than one leader so team role type will reflect the users type  

   SELECT TFT.TEAMROLETYPE,  
              RE.TARGETFUNDRAISINGGOAL,  
              dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(TFT.REGISTRANTID,@EVENTID),  
              C.NAME,  
              C.ID 
              from dbo.UFN_FAF_CONSTITUENTS_BY_TEAMID(@TEAMID,@EVENTID) TFT  
              INNER JOIN dbo.REGISTRANT R (NOLOCK)  
              ON R.ID = TFT.REGISTRANTID  
              INNER JOIN dbo.REGISTRANTEXTENSION RE (NOLOCK)  
              ON R.ID = RE.REGISTRANTID  
              INNER JOIN dbo.CONSTITUENT C (NOLOCK)  
              ON R.CONSTITUENTID = C.ID  
              INNER JOIN dbo.TEAMFUNDRAISINGTEAM TEAMF              
              on TEAMF.ID = TFT.TEAMID
              WHERE R.ID <> @REGISTRANTID  

             END  

            ---if user is a leader and there is a subgroup, show the team leader for that subgroup, but not the members  

            IF @IsCompanyLeader = 1  OR @IsIndependentTeamLeader = 1 OR @IsCompanyTeamLeader = 1 
            OR @IsIndependentTeamMember = 1 OR @IsCompanyTeamMember = 1 OR @IsTeamHouseholdLeader = 1 
            OR @IsTeamHouseholdMember = 1
            BEGIN    
              ---return team info, but use the team leader constituent id; this is because the team leader should receive the transferred gift, not the team  

              INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)    

              select   
                TE.TYPE + ' Leader',  
                ---TFT.NAME + ' Leader',  

                TFT.GOAL as GOAL,  
                (select AMOUNTRAISED from dbo.UFN_FAF_GROUPTOTALSROLLUP(@EVENTID, TFT.ID)) as ACTUAL,   
                CHILDCONSTIT.NAME as NAME,  
                CHILDCONSTIT.ID as CONSTITUENTID  
              from dbo.TEAMFUNDRAISINGTEAM TFT (NOLOCK)    
                INNER JOIN dbo.TEAMEXTENSION TE ON TE.TEAMFUNDRAISINGTEAMID=TFT.ID --AND TE.TYPECODE=1    

                INNER JOIN dbo.TEAMFUNDRAISINGTEAMMEMBER M on M.TEAMFUNDRAISINGTEAMID = TFT.ID  
                INNER JOIN dbo.TEAMFUNDRAISER TF on M.TEAMFUNDRAISERID = TF.ID  
                INNER JOIN dbo.CONSTITUENT CHILDCONSTIT on CHILDCONSTIT.ID = TF.CONSTITUENTID  
                INNER JOIN dbo.TEAMFUNDRAISINGTEAMCAPTAIN TCAPT on TCAPT.CONSTITUENTID = CHILDCONSTIT.ID  
              WHERE TFT.PARENTTEAMID=@TEAMID  
              AND TE.STATUSCODE = 0  
            END 

            ---now if user is a sub captain, check for a parent team and show the leaders of the parent team

            IF (@PARENTTEAMID IS NOT null
            AND (@IsIndependentHouseholdLeader = 1
            OR @IsCompanyHouseholdLeader = 1
            OR @IsCompanyTeamHouseholdLeader = 1
            OR @IsCompanyTeamLeader = 1
            OR @IsTeamHouseholdLeader = 1)
             BEGIN    
              ---return team info, but use the team leader constituent id; this is because the team leader should receive the transferred gift, not the team  

              INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID) 
                 SELECT TFT.TEAMROLETYPE,  
              RE.TARGETFUNDRAISINGGOAL,  
              dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(TFT.REGISTRANTID,@EVENTID),  
              C.NAME,  
              C.ID 
              from dbo.UFN_FAF_CONSTITUENTS_BY_TEAMID(@PARENTTEAMID,@EVENTID) TFT  
              INNER JOIN dbo.REGISTRANT R (NOLOCK)  
              ON R.ID = TFT.REGISTRANTID  
              INNER JOIN dbo.REGISTRANTEXTENSION RE (NOLOCK)  
              ON R.ID = RE.REGISTRANTID  
              INNER JOIN dbo.CONSTITUENT C (NOLOCK)  
              ON R.CONSTITUENTID = C.ID  
              INNER JOIN dbo.TEAMFUNDRAISINGTEAM TEAMF              
              on TEAMF.ID = TFT.TEAMID
              WHERE TFT.TEAMROLETYPE <> 'individual' ---if team capt on a company, the team capt should not see company individuals

             END 

              SELECT ROLETYPE ,  
                  GOAL ,  
                  ACTUAL ,  
                  NAME ,  
                  CONSTITUENTID   
              From @DetailedRevenue  
              ORDER BY ROLETYPE,NAME