USP_REPORT_DESIGNATIONLEVELREVENUE_BYPURPOSE_WITHIDSET
Alternate version of USP_REPORT_DESIGNATIONLEVELREVENUE_BYPURPOSE which allows for the inclusion of an ID set.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@IDSETID | uniqueidentifier | IN | |
@START | datetime | IN | |
@END | datetime | IN | |
@CATEGORYCODEID | uniqueidentifier | IN | |
@DESIGNATIONLEVELTYPEID | uniqueidentifier | IN | |
@GROUPBY | tinyint | IN |
Definition
Copy
/*
Generated by Blackbaud Application Framework
Date: 12/17/2008 2:13:25 AM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=1.7.1271.0, Culture=neutral, PublicKeyToken=null
*/
create procedure dbo.USP_REPORT_DESIGNATIONLEVELREVENUE_BYPURPOSE_WITHIDSET (@IDSETID uniqueidentifier = null, @START datetime, @END datetime, @CATEGORYCODEID uniqueidentifier, @DESIGNATIONLEVELTYPEID uniqueidentifier, @GROUPBY tinyint)
with execute as owner
as
set nocount on;
declare @r int;
if @IDSETID is null
begin
exec @r = dbo.[USP_REPORT_DESIGNATIONLEVELREVENUE_BYPURPOSE] @START, @END, @CATEGORYCODEID, @DESIGNATIONLEVELTYPEID, @GROUPBY;
end
else
begin
if not exists(select [ID] from dbo.[IDSETREGISTER] where [ID] = @IDSETID)
raiserror('ID set does not exist in the database.', 15, 1);
declare @DBOBJECTNAME nvarchar(max);
declare @DBOBJECTTYPE smallint;
declare @SQLTOEXEC nvarchar(max);
select
@DBOBJECTNAME = [DBOBJECTNAME],
@DBOBJECTTYPE = [OBJECTTYPE]
from dbo.[IDSETREGISTER]
where [ID] = @IDSETID;
if left(@DBOBJECTNAME, 1) <> '['
set @DBOBJECTNAME = '[' + @DBOBJECTNAME + ']';
if @DBOBJECTTYPE = 1
begin
set @DBOBJECTNAME = @DBOBJECTNAME + '(';
set @DBOBJECTNAME = @DBOBJECTNAME + ')';
end
else
begin
if @DBOBJECTTYPE = 2
set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @IDSETID) + ''')';
end
set @SQLTOEXEC = N'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,
DLINFO.NUMGIFTS as TOTALNUMGIFTS,
DLINFO.NUMDONORS TOTALDONORS,
(coalesce(DLRECEIVED.TOTALRECEIVED, 0) +
coalesce(DLPLEDGE.TOTALPLEDGED - (DLPLEDGE.TOTALPAID + DLPLEDGE.TOTALWRITEOFFS), 0)) TOTALRAISED,
0 as PERIODNUMGIFTS,
coalesce(DLINFO.MAXGIFT, 0) MAXGIFT
from dbo.DESIGNATIONLEVEL DL
left join dbo.UFN_DESIGNATIONLEVEL_REVENUECOUNTS(@START, @END) as DLINFO on DL.ID = DLINFO.DESIGNATIONLEVELID
left join dbo.UFN_DESIGNATIONLEVEL_REVENUERECEIVED(@START, @END) as DLRECEIVED on DL.ID = DLRECEIVED.DESIGNATIONLEVELID
left join dbo.UFN_DESIGNATIONLEVEL_REVENUEPLEDGED(@START, @END) as DLPLEDGE on DL.ID = DLPLEDGE.DESIGNATIONLEVELID
inner join dbo.' + @DBOBJECTNAME + ' as [IDSET_c372ab6f_046d_4bc5_b110_d39324a0433b] on [DL].[ID] = [IDSET_c372ab6f_046d_4bc5_b110_d39324a0433b].[ID]
where
(DL.DESIGNATIONLEVELCATEGORYCODEID = @CATEGORYCODEID or @CATEGORYCODEID is null) and
(DL.DESIGNATIONLEVELTYPEID = @DESIGNATIONLEVELTYPEID or @DESIGNATIONLEVELTYPEID IS NULL)
order by DL.DESIGNATIONLEVELTYPEID, DL.NAME
end';
exec @r = sp_executesql @SQLTOEXEC, N'@START datetime, @END datetime, @CATEGORYCODEID uniqueidentifier, @DESIGNATIONLEVELTYPEID uniqueidentifier, @GROUPBY tinyint', @START = @START, @END = @END, @CATEGORYCODEID = @CATEGORYCODEID, @DESIGNATIONLEVELTYPEID = @DESIGNATIONLEVELTYPEID, @GROUPBY = @GROUPBY;
end
return @r;