USP_KPI_EVENTS_TEAMFUNDRAISINGTEAMPERFORMANCE_VALUE

Parameters

Parameter Parameter Type Mode Description
@VALUE money INOUT
@ASOFDATE datetime IN
@TEAMID uniqueidentifier IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


                    CREATE procedure dbo.USP_KPI_EVENTS_TEAMFUNDRAISINGTEAMPERFORMANCE_VALUE
                    (
                        @VALUE money output
                        @ASOFDATE datetime
                        @TEAMID uniqueidentifier,
                        @CURRENCYID uniqueidentifier = null
                    )               
                    as

                        set nocount on;

                        set @VALUE=0
                        select @ASOFDATE=dbo.UFN_DATE_GETLATESTTIME(@ASOFDATE);

                        with CTE_TEAMHIERARCHY(ID)
                        as
                        (
                            select
                                @TEAMID [ID]

                            union all

                            select
                                TEAMFUNDRAISINGTEAM.ID
                            from dbo.TEAMFUNDRAISINGTEAM
                                inner join CTE_TEAMHIERARCHY on TEAMFUNDRAISINGTEAM.PARENTTEAMID = CTE_TEAMHIERARCHY.ID
                        )
                        select
                            @VALUE=coalesce(sum(coalesce(dbo.UFN_REVENUESOLICITOR_GETAMOUNTINCURRENCY(REVENUESOLICITOR.ID, @CURRENCYID),0)),0)
                        from dbo.TEAMFUNDRAISINGTEAM
                            inner join dbo.TEAMFUNDRAISINGTEAMMEMBER on TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISINGTEAMID = TEAMFUNDRAISINGTEAM.ID
                            inner join dbo.TEAMFUNDRAISER on TEAMFUNDRAISER.ID=TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISERID
                            inner join dbo.REVENUESOLICITOR on REVENUESOLICITOR.CONSTITUENTID=TEAMFUNDRAISER.CONSTITUENTID
                            inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = REVENUESOLICITOR.REVENUESPLITID
                            inner join dbo.REVENUE on REVENUE.APPEALID = TEAMFUNDRAISINGTEAM.APPEALID and REVENUE.ID = REVENUESPLIT.REVENUEID
                        where 
                            TEAMFUNDRAISINGTEAM.ID in (select distinct ID from CTE_TEAMHIERARCHY)
                                and    ((REVENUE.TRANSACTIONTYPECODE = 1) --Pledges

                                    or (REVENUE.TRANSACTIONTYPECODE = 0 and REVENUESPLIT.APPLICATIONCODE in (0,3)) --Gifts and recurring gift payments

                                    or (REVENUESPLIT.APPLICATIONCODE = 1 and REVENUESPLIT.TYPECODE = 0 and REVENUE.TRANSACTIONTYPECODE = 0) --Event registration donation

                                )
                                and (REVENUE.DATE <= @ASOFDATE or @ASOFDATE is null) --On or before as of date