USP_DATALIST_FAFDASHBOARDFUNDRAISING

Get info for Fundraising dashboard in FAF

Parameters

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

Definition

Copy


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

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

                DECLARE @DetailedRevenue table
                (
                    ROLETYPE varchar(100),
                    GOAL money,
                    ACTUAL money,
                    NAME varchar(256),
                    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
                FROM dbo.UFN_FAF_GETTEAMINFO_BY_REGISTRANT(@CONSTITUENTID, @EVENTID) FNTEAM


                -- Household


                IF(@IsCompanyHouseholdLeader = 1 OR @IsCompanyHouseholdMember = 1 OR @IsCompanyTeamHouseholdLeader = 1 OR @IsCompanyTeamHouseholdMember = 1
                    OR @IsTeamHouseholdMember = 1 OR @IsTeamHouseholdLeader = 1 OR @IsIndependentHouseholdMember = 1 OR @IsIndependentHouseholdLeader = 1)
                BEGIN
                    INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)
                    Select 'Household',
                        TFT.GOAL,
                        (select AMOUNTRAISED from dbo.UFN_FAF_GROUPTOTALSROLLUP(@EVENTID, @TEAMID)),
                        TFT.NAME,
                        TE.TEAMCONSTITUENTID
                    from dbo.TEAMFUNDRAISINGTEAM TFT (NOLOCK)
                    INNER JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TE.TEAMFUNDRAISINGTEAMID = TFT.ID
                    WHERE TFT.ID = @TEAMID
                END

                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

                IF(@IsIndependentTeamLeader = 1 OR @IsCompanyTeamLeader = 1 OR @IsCompanyLeader = 1 OR @IsIndependentHouseholdLeader = 1 OR @IsCompanyHouseholdLeader = 1 OR @IsCompanyTeamHouseholdLeader = 1 OR @IsTeamHouseholdLeader = 1)
                BEGIN

                    INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)
                    SELECT (CASE TFT.TEAMTYPECODE  WHEN 1 THEN 'Teammember' WHEN 2 THEN 'Individual' WHEN 3 THEN 'Householdmember' ELSE '' END),
                    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
                    WHERE R.ID <> @REGISTRANTID

                    INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)
                    Select 'Household',
                        TE.TARGETFUNDRAISINGGOAL,
                        (select AMOUNTRAISED from dbo.UFN_FAF_GROUPTOTALSROLLUP(@EVENTID, TFT.ID)),
                        TFT.NAME,
                        TE.TEAMCONSTITUENTID
                    from dbo.TEAMFUNDRAISINGTEAM TFT (NOLOCK)
                    INNER JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TE.TEAMFUNDRAISINGTEAMID = TFT.ID
                    WHERE TFT.PARENTTEAMID = @TEAMID AND TE.TYPECODE=3

                    IF @TEAMTYPE = 1
                    begin
                        INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)
                        SELECT 'Total',
                                TFT.GOAL,
                                (select AMOUNTRAISED from dbo.UFN_FAF_GROUPTOTALSROLLUP(@EVENTID, @TEAMID)),
                                TFT.NAME,
                                TE.TEAMCONSTITUENTID
                        FROM dbo.TEAMFUNDRAISINGTEAM TFT (NOLOCK)
                        INNER JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TFT.ID = TE.TEAMFUNDRAISINGTEAMID
                        WHERE TFT.ID = @TEAMID
                    end
                END

                IF @IsCompanyLeader = 1
                BEGIN
                    INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)
                    select 'Team',
                        TFT.GOAL,
                        (select AMOUNTRAISED from dbo.UFN_FAF_GROUPTOTALSROLLUP(@EVENTID, TFT.ID)),
                        TFT.NAME,
                        TE.TEAMCONSTITUENTID
                    from dbo.TEAMFUNDRAISINGTEAM TFT (NOLOCK)
                    INNER JOIN dbo.TEAMEXTENSION TE ON TE.TEAMFUNDRAISINGTEAMID = TFT.ID
                    WHERE TFT.PARENTTEAMID = @TEAMID AND TE.STATUSCODE = 0 AND TE.TYPECODE = 1

                    INSERT INTO @DetailedRevenue (ROLETYPE,GOAL,ACTUAL,NAME,CONSTITUENTID)
                    SELECT 'Total',
                            TFT.GOAL,
                            (select AMOUNTRAISED from dbo.UFN_FAF_GROUPTOTALSROLLUP(@EVENTID, @TEAMID)),
                            TFT.NAME,
                            TE.TEAMCONSTITUENTID
                    FROM dbo.TEAMFUNDRAISINGTEAM TFT (NOLOCK)
                    INNER JOIN dbo.TEAMEXTENSION TE (NOLOCK) ON TFT.ID = TE.TEAMFUNDRAISINGTEAMID
                    WHERE TFT.ID = @TEAMID
                END

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