USP_REPORT_DESIGNATIONLEVELREVENUE_BYDATE
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_BYDATE
(
@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,
PERIODS.SEQUENCE,
PERIODS.PERIODYEAR,
coalesce(DLOVERALLINFO.NUMGIFTS, 0) as TOTALNUMGIFTS,
coalesce(DLOVERALLINFO.NUMDONORS, 0) as TOTALDONORS,
(coalesce(RECEIVED.TOTALRECEIVED, 0) + coalesce(PLEDGE.TOTALPLEDGED - (PLEDGE.TOTALPAID + PLEDGE.TOTALWRITEOFFS), 0)) as TOTALRAISED,
coalesce(DLINFO.NUMGIFTS, 0) as PERIODNUMGIFTS,
coalesce(DLINFO.MAXGIFT, 0) as MAXGIFT,
case when DLINFO.NUMGIFTS > 0 then
DLINFO.TOTALGIFT / DLINFO.NUMGIFTS
else
0
end PERIODAVGGIFT,
DLOVERALLINFO.TOTALGIFT as OVERALLTOTALRAISED,
coalesce(OVERALLRECEIVED.TOTALRECEIVED, 0) AS OVERALLTOTALRECEIVED,
coalesce(OVERALLPLEDGE.TOTALPLEDGED - (OVERALLPLEDGE.TOTALPAID + OVERALLPLEDGE.TOTALWRITEOFFS), 0) as OVERALLTOTALEXPECTED,
case when DLOVERALLINFO.NUMGIFTS > 0 then
DLOVERALLINFO.TOTALGIFT / DLOVERALLINFO.NUMGIFTS
else
0
end TOTALAVGGIFT,
coalesce(RECEIVED.TOTALRECEIVED, 0) as TOTALRECEIVED,
coalesce(PLEDGE.TOTALPLEDGED - (PLEDGE.TOTALPAID + PLEDGE.TOTALWRITEOFFS), 0) as TOTALEXPECTED,
coalesce(DLINFO.NUMDONORS, 0) as PERIODNUMDONORS,
NULL as APPEALNAME
from dbo.UFN_DESIGNATIONREPORT_GETPERIODS(@START, @END, @GROUPBY) PERIODS
cross join dbo.DESIGNATIONLEVEL DL
left join dbo.UFN_DESIGNATIONLEVEL_REVENUECOUNTS_BYPERIOD(@START, @END, @GROUPBY,@CAMPAIGNHIERARCHYPATH) DLINFO
on DL.ID = DLINFO.DESIGNATIONLEVELID and DLINFO.STARTDATE = PERIODS.STARTDATE
left join dbo.UFN_DESIGNATIONLEVEL_REVENUERECEIVED_BYPERIOD(@START, @END, @GROUPBY,@CAMPAIGNHIERARCHYPATH) RECEIVED
on DL.ID = RECEIVED.DESIGNATIONLEVELID and PERIODS.STARTDATE = RECEIVED.STARTDATE
left join dbo.UFN_DESIGNATIONLEVEL_REVENUEPLEDGED_BYPERIOD(@START, @END, @GROUPBY,@CAMPAIGNHIERARCHYPATH) PLEDGE
on DL.ID = PLEDGE.DESIGNATIONLEVELID and PERIODS.STARTDATE = PLEDGE.STARTDATE
left join dbo.UFN_DESIGNATIONLEVEL_REVENUECOUNTS(@START, @END,@CAMPAIGNHIERARCHYPATH) DLOVERALLINFO
on DL.ID = DLOVERALLINFO.DESIGNATIONLEVELID
left join dbo.UFN_DESIGNATIONLEVEL_REVENUERECEIVED(@START, @END,@CAMPAIGNHIERARCHYPATH) OVERALLRECEIVED
on DL.ID = OVERALLRECEIVED.DESIGNATIONLEVELID
left join dbo.UFN_DESIGNATIONLEVEL_REVENUEPLEDGED(@START, @END,@CAMPAIGNHIERARCHYPATH) OVERALLPLEDGE
on DL.ID = OVERALLPLEDGE.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, PERIODS.PERIODYEAR, PERIODS.SEQUENCE
end