USP_DATALIST_FUNDINGREQUESTSFORFUNDRAISERDASHBOARD

Returns a summary of funding requests for a given fundraiser for use by the dashboard.

Parameters

Parameter Parameter Type Mode Description
@FUNDRAISERID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DATEFILTER tinyint IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@INCLUDENODATE bit IN
@SECURITYFEATUREID uniqueidentifier IN Input parameter indicating the ID of the feature to use for site security checking.
@SECURITYFEATURETYPE tinyint IN Input parameter indicating the type of the feature to use for site security checking.

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_FUNDINGREQUESTSFORFUNDRAISERDASHBOARD
                (
                    @FUNDRAISERID uniqueidentifier,
                    @CURRENTAPPUSERID uniqueidentifier = null,
                    @DATEFILTER tinyint,
                    @STARTDATE datetime = null,
                    @ENDDATE datetime = null
                    @INCLUDENODATE bit = null,
                    @SECURITYFEATUREID uniqueidentifier = null,
                    @SECURITYFEATURETYPE tinyint = null
                )
                as
                    set nocount on;

                    exec dbo.USP_RESOLVEDATEFILTER @DATEFILTER, @STARTDATE output, @ENDDATE output;

                    declare @AMOUNTREQUESTED money
                    declare @AMOUNTAWARDED money

          declare @CURRENCYID uniqueidentifier;
          select @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(APPUSER.ID) from dbo.APPUSER where APPUSER.CONSTITUENTID = @FUNDRAISERID;
          if @CURRENCYID is null
            set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

          declare @DECIMALDIGITS tinyint;
          declare @ROUNDINGTYPECODE tinyint;

          select @DECIMALDIGITS = DECIMALDIGITS, 
                 @ROUNDINGTYPECODE = ROUNDINGTYPECODE 
          from dbo.CURRENCY where ID = @CURRENCYID

                    select @AMOUNTREQUESTED = sum(coalesce(FRB.AMOUNTINCURRENCY,0))
                    from dbo.FUNDINGREQUEST
            left join dbo.UFN_FUNDINGREQUEST_GETAMOUNTREQUESTEDINCURRENCY_BULK(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),@DECIMALDIGITS, @ROUNDINGTYPECODE) FRB
            on FRB.ID = FUNDINGREQUEST.ID
                        inner join dbo.FUNDINGPLAN on FUNDINGPLAN.ID = FUNDINGREQUEST.FUNDINGPLANID
                    where FUNDINGPLAN.INACTIVE = 0
                        and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[FUNDINGPLAN].[SITEID] or (SITEID is null and [FUNDINGPLAN].[SITEID] is null)))
                        and (
                            FUNDINGREQUEST.PRIMARYMANAGERID = @FUNDRAISERID
                            or FUNDINGREQUEST.SECONDARYMANAGERID = @FUNDRAISERID
                            or @FUNDRAISERID in(
                                select SPONSORID
                                from dbo.FUNDINGREQUESTSPONSOR
                                where FUNDINGREQUESTSPONSOR.FUNDINGREQUESTID = FUNDINGREQUEST.ID
                            )
                        )
                        and (
                            (@INCLUDENODATE = 1 and FUNDINGREQUEST.DATESUBMITTED is null)
                            or (
                                FUNDINGREQUEST.DATESUBMITTED >= @STARTDATE
                                and FUNDINGREQUEST.DATESUBMITTED <= @ENDDATE
                            )
                        )

                    select @AMOUNTAWARDED = sum(coalesce(RB.AMOUNTINCURRENCY,0))
                    from dbo.REVENUE
                        inner join dbo.REVENUEFUNDINGREQUEST on REVENUEFUNDINGREQUEST.ID = REVENUE.ID
                        inner join dbo.FUNDINGREQUEST on FUNDINGREQUEST.ID = REVENUEFUNDINGREQUEST.FUNDINGREQUESTID
                        inner join dbo.FUNDINGPLAN on FUNDINGPLAN.ID = FUNDINGREQUEST.FUNDINGPLANID
            left join dbo.UFN_REVENUE_GETAMOUNTSINCURRENCY_BULK(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),@DECIMALDIGITS, @ROUNDINGTYPECODE) RB on RB.ID = REVENUE.ID
                    where FUNDINGPLAN.INACTIVE = 0
                        and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[FUNDINGPLAN].[SITEID] or (SITEID is null and [FUNDINGPLAN].[SITEID] is null)))
                        and (
                            FUNDINGREQUEST.PRIMARYMANAGERID = @FUNDRAISERID
                            or FUNDINGREQUEST.SECONDARYMANAGERID = @FUNDRAISERID
                            or @FUNDRAISERID in(
                                select SPONSORID
                                from dbo.FUNDINGREQUESTSPONSOR
                                where FUNDINGREQUESTSPONSOR.FUNDINGREQUESTID = FUNDINGREQUEST.ID
                            )
                        )
                        and (
                            (@INCLUDENODATE = 1 and FUNDINGREQUEST.DATESUBMITTED is null)
                            or (
                                FUNDINGREQUEST.DATESUBMITTED >= @STARTDATE
                                and FUNDINGREQUEST.DATESUBMITTED <= @ENDDATE
                            )
                        )


                    select 
            coalesce(@AMOUNTREQUESTED, 0) AMOUNTREQUESTED,
            coalesce(@AMOUNTAWARDED, 0) AMOUNTAWARDED,
            @CURRENCYID CURRENCYID