USP_REPORT_DESIGNATIONLEVELREVENUE_BYPURPOSE

Returns the data necessary for the Designation Level Revenue report.

Parameters

Parameter Parameter Type Mode Description
@START datetime IN
@END datetime IN
@CATEGORYCODEID uniqueidentifier IN
@DESIGNATIONLEVELTYPEID uniqueidentifier IN
@GROUPBY tinyint IN
@SELECTIONID uniqueidentifier IN
@CAMPAIGNHIERARCHYPATH hierarchyid IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_REPORT_DESIGNATIONLEVELREVENUE_BYPURPOSE
                (
                    @START datetime = null,
                    @END datetime = null,
                    @CATEGORYCODEID uniqueidentifier = null,
                    @DESIGNATIONLEVELTYPEID uniqueidentifier = null,
                    @GROUPBY tinyint = 0,
                    @SELECTIONID uniqueidentifier = null,
                    @CAMPAIGNHIERARCHYPATH hierarchyid = null,
                    @CURRENTAPPUSERID uniqueidentifier = null
                )
            as    
                begin
                    set @START = dbo.UFN_DATE_GETEARLIESTTIME(@START);
                    set @END = dbo.UFN_DATE_GETLATESTTIME(@END);

                    if @END < @START
                        raiserror('The start date must be on or before the end date.',13,1);                        

                    select 
                        'http://www.blackbaud.com?DESIGNATIONLEVELID=' + CONVERT(nvarchar(36),DL.ID) as [DESIGNATIONLEVELID],
                        DL.NAME,
                        0 as SEQUENCE,
                        YEAR(@END) as PERIODYEAR,
                        coalesce(DLINFO.NUMGIFTS, 0) as TOTALNUMGIFTS,
                        coalesce(DLINFO.NUMDONORS, 0) TOTALDONORS,
                        0 as TOTALRAISED,
                        0 as PERIODNUMGIFTS,
                        coalesce(DLINFO.MAXGIFT, 0) MAXGIFT,
                        0 PERIODAVGGIFT,
                        coalesce(DLINFO.TOTALGIFT, 0) as OVERALLTOTALRAISED,
                        coalesce(DLRECEIVED.TOTALRECEIVED, 0) AS OVERALLTOTALRECEIVED,
                        coalesce(DLPLEDGE.TOTALPLEDGED - (DLPLEDGE.TOTALPAID + DLPLEDGE.TOTALWRITEOFFS), 0) as OVERALLTOTALEXPECTED,
                        case when DLINFO.NUMGIFTS > 0 then
                            DLINFO.TOTALGIFT / DLINFO.NUMGIFTS
                        else
                            0
                        end TOTALAVGGIFT,
                        0 as TOTALRECEIVED,
                        0 as TOTALEXPECTED,
                        0 as PERIODNUMDONORS,
                        NULL as APPEALNAME

                    from dbo.DESIGNATIONLEVEL DL 
                        left join dbo.UFN_DESIGNATIONLEVEL_REVENUECOUNTS(@START, @END, @CAMPAIGNHIERARCHYPATH) as DLINFO on DL.ID = DLINFO.DESIGNATIONLEVELID
                        left join dbo.UFN_DESIGNATIONLEVEL_REVENUERECEIVED(@START, @END, @CAMPAIGNHIERARCHYPATH) as DLRECEIVED on DL.ID = DLRECEIVED.DESIGNATIONLEVELID
                        left join dbo.UFN_DESIGNATIONLEVEL_REVENUEPLEDGED(@START, @END, @CAMPAIGNHIERARCHYPATH) as DLPLEDGE on DL.ID = DLPLEDGE.DESIGNATIONLEVELID
                    where
                        (DL.DESIGNATIONLEVELCATEGORYCODEID = @CATEGORYCODEID or @CATEGORYCODEID is null) and
                        (DL.DESIGNATIONLEVELTYPEID = @DESIGNATIONLEVELTYPEID or @DESIGNATIONLEVELTYPEID IS NULL) and
                        (@SELECTIONID is null or DL.ID in (select ID from dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID)))
                        and dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID,DL.SITEID) = 1
                    order by DL.NAME
                end