USP_REPORT_MEMBERSHIPAPPEAL_WITHIDSET
Alternate version of USP_REPORT_MEMBERSHIPAPPEAL which allows for the inclusion of an ID set.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@IDSETID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CATEGORYID | uniqueidentifier | IN | |
@BUSINESSUNITID | uniqueidentifier | IN | |
@REPORTCODEID | uniqueidentifier | IN | |
@SITEID | uniqueidentifier | IN | |
@GROUPBY | tinyint | IN |
Definition
Copy
/*
Generated by Blackbaud Application Framework
Date: 3/19/2013 1:33:34 AM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=3.0.504.0, Culture=neutral, PublicKeyToken=null
*/
CREATE procedure dbo.USP_REPORT_MEMBERSHIPAPPEAL_WITHIDSET (@IDSETID uniqueidentifier = null, @STARTDATE datetime, @ENDDATE datetime, @CATEGORYID uniqueidentifier, @BUSINESSUNITID uniqueidentifier, @REPORTCODEID uniqueidentifier, @SITEID uniqueidentifier, @GROUPBY tinyint)
with execute as owner
as
set nocount on;
declare @r int;
if @IDSETID is null
begin
exec @r = dbo.[USP_REPORT_MEMBERSHIPAPPEAL] @STARTDATE, @ENDDATE, @CATEGORYID, @BUSINESSUNITID, @REPORTCODEID, @SITEID, @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 = cast(N'set nocount on;
-- Total variables
declare @TOTALDONORS int
declare @TOTALGOAL int
declare @TOTALRAISED int
declare @TOTALRECEIVED int
declare @TOTALSOLICITED int
declare @TOTALMEMBERS int
declare @TOTALDONATIONS int
-- Calculating totals for report.
select
@TOTALMEMBERS = sum(coalesce(marcs.DONORCOUNT, 0)),
@TOTALDONATIONS = sum(coalesce(marcs.GIFTCOUNT, 0)),
@TOTALSOLICITED = sum(coalesce(mascs.SOLICITEDCOUNT,0)),
@TOTALGOAL = sum(coalesce(a.GOAL,0)),
@TOTALRECEIVED = sum(coalesce(mra.TOTALRECEIVED, 0)),
@TOTALRAISED = sum(coalesce(MRA.TOTALRECEIVED,0) + coalesce((mpe.TOTALPLEDGED - (mpe.PLEDGESPAID + mpe.PLEDGESWRITTENOFF)),0))
from dbo.UFN_MEMBER_RAISEDBYAPPEAL(@STARTDATE,@ENDDATE) MRA
full join dbo.UFN_MEMBER_PLEDGEDBYAPPEAL(@STARTDATE,@ENDDATE) mpe on (mpe.APPEALID=MRA.APPEALID)
right join dbo.APPEAL a on a.ID=MRA.APPEALID or a.ID=mpe.APPEALID
inner join dbo.' as nvarchar(max)) + @DBOBJECTNAME + cast(N' as [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2] on [a].[ID] = [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2].[ID]
left join dbo.UFN_MEMBER_APPEALREVENUECOUNTS(@STARTDATE,@ENDDATE) marcs on marcs.APPEALID=a.ID
left join dbo.UFN_MEMBER_APPEALSOLICITEDCOUNTS(@STARTDATE,@ENDDATE) mascs on mascs.APPEALID=a.ID where
(a.APPEALCATEGORYCODEID = @CATEGORYID or @CATEGORYID is null) and
(a.BUSINESSUNITCODEID = @BUSINESSUNITID or @BUSINESSUNITID is null) and
(a.APPEALREPORT1CODEID = @REPORTCODEID or @REPORTCODEID is null) and
(a.SITEID = @SITEID or @SITEID is null) and
(a.MEMBERSHIPPROGRAMID is not null)
select
@TOTALDONORS=count(distinct(r.CONSTITUENTID))
from dbo.FINANCIALTRANSACTION r
inner join REVENUE_EXT RE on RE.ID = r.ID
inner join APPEAL a on a.ID = RE.APPEALID
inner join dbo.FINANCIALTRANSACTIONLINEITEM RS on RS.FINANCIALTRANSACTIONID = r.ID
inner join dbo.REVENUESPLIT_EXT RSE on RSE.ID = RS.ID
inner join dbo.' as nvarchar(max)) + @DBOBJECTNAME + cast(N' as [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2] on [a].[ID] = [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2].[ID]
where RS.TYPECODE <> 1
and R.DELETEDON is null
and RS.DELETEDON is null and
(RE.APPEALID is not null) and
(r.TYPECODE in (1, 3) or --Pledge/MG Pledge
(r.TYPECODE = 0 and RSE.APPLICATIONCODE in (0, 3))) and --Payment (Gift or Recurring gift payment)
(cast(r.DATE as datetime) >= dbo.UFN_DATE_GETLATESTTIME(@STARTDATE) or @STARTDATE is null) and
(cast(r.DATE as datetime) <= dbo.UFN_DATE_GETLATESTTIME(@ENDDATE) or @ENDDATE is null) and
(a.APPEALCATEGORYCODEID = @CATEGORYID or @CATEGORYID is null) and
(a.BUSINESSUNITCODEID = @BUSINESSUNITID or @BUSINESSUNITID is null) and
(a.APPEALREPORT1CODEID = @REPORTCODEID or @REPORTCODEID is null) and
(a.SITEID = @SITEID or @SITEID is null) and
(a.MEMBERSHIPPROGRAMID is not null)
-- No grouping
if @GROUPBY = 0
begin
select
''http://www.blackbaud.com/APPEALID?APPEALID='' + CONVERT(nvarchar(36),a.ID) as APPEALID,
a.[NAME],
a.GOAL,
coalesce(mascs.SOLICITEDCOUNT,0) SOLICITEDCOUNT,
coalesce(marcs.DONORCOUNT, 0) DONORCOUNT,
coalesce(marcs.GIFTCOUNT,0) GIFTCOUNT,
coalesce(@TOTALDONORS,0) TOTALDONORS,
null DESNAME,
coalesce(MRA.TOTALRECEIVED,0) + coalesce((mpe.TOTALPLEDGED - (mpe.PLEDGESPAID + mpe.PLEDGESWRITTENOFF)),0) APPEALTOTALRAISED,
coalesce(MRA.TOTALRECEIVED,0) APPEALTOTALRECEIVED,
null TRANSACTIONTOTALRECEIVED,
null TRANSACTIONTOTALRAISED,
coalesce(@TOTALGOAL, 0) TOTALGOAL,
coalesce(@TOTALRAISED,0) TOTALRAISED,
coalesce(@TOTALRECEIVED, 0) TOTALRECEIVED,
coalesce(@TOTALSOLICITED, 0) TOTALSOLICITED,
coalesce(@TOTALMEMBERS, 0) TOTALMEMBERS,
coalesce(@TOTALDONATIONS, 0) TOTALDONATIONS
from dbo.UFN_MEMBER_RAISEDBYAPPEAL(@STARTDATE,@ENDDATE) MRA
full join dbo.UFN_MEMBER_PLEDGEDBYAPPEAL(@STARTDATE,@ENDDATE) mpe on (mpe.APPEALID=MRA.APPEALID)
right join dbo.APPEAL a on a.ID=MRA.APPEALID or a.ID=mpe.APPEALID
inner join dbo.' as nvarchar(max)) + @DBOBJECTNAME + cast(N' as [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2] on [a].[ID] = [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2].[ID]
left join dbo.UFN_MEMBER_APPEALREVENUECOUNTS(@STARTDATE,@ENDDATE) marcs on marcs.APPEALID=a.ID
left join dbo.UFN_MEMBER_APPEALSOLICITEDCOUNTS(@STARTDATE,@ENDDATE) mascs on mascs.APPEALID=a.ID
where
(a.APPEALCATEGORYCODEID = @CATEGORYID or @CATEGORYID is null) and
(a.BUSINESSUNITCODEID = @BUSINESSUNITID or @BUSINESSUNITID is null) and
(a.APPEALREPORT1CODEID = @REPORTCODEID or @REPORTCODEID is null) and
(a.SITEID = @SITEID or @SITEID is null) and
(a.MEMBERSHIPPROGRAMID is not null)
order by a.NAME
end
-- Group by activity (join, renew, rejoin, etc...)
else if @GROUPBY = 1
begin
select
''http://www.blackbaud.com/APPEALID?APPEALID='' + CONVERT(nvarchar(36),a.ID) as APPEALID,
a.[NAME],
a.GOAL,
coalesce(mascs.SOLICITEDCOUNT,0) SOLICITEDCOUNT,
--coalesce(arcs.DONORCOUNT,0) DONORCOUNT,
coalesce(marcs.DONORCOUNT, 0) DONORCOUNT,
coalesce(marcs.GIFTCOUNT,0) GIFTCOUNT,
coalesce(@TOTALDONORS,0) TOTALDONORS,
dbo.UFN_MEMBERSHIPTRANSACTION_ACTIONCODE_GETDESCRIPTION(MTRA.MTACTION) DESNAME,
coalesce(MRA.TOTALRECEIVED,0) + coalesce((mpe.TOTALPLEDGED - (mpe.PLEDGESPAID + mpe.PLEDGESWRITTENOFF)),0) APPEALTOTALRAISED,
coalesce(MRA.TOTALRECEIVED,0) APPEALTOTALRECEIVED,
coalesce(MTRA.MTTOTALRECEIVED, 0) TRANSACTIONTOTALRECEIVED,
coalesce(MTRA.MTTOTALRECEIVED, 0) TRANSACTIONTOTALRAISED,
coalesce(@TOTALGOAL, 0) TOTALGOAL,
coalesce(@TOTALRAISED,0) TOTALRAISED,
coalesce(@TOTALRECEIVED, 0) TOTALRECEIVED,
coalesce(@TOTALSOLICITED, 0) TOTALSOLICITED,
coalesce(@TOTALMEMBERS, 0) TOTALMEMBERS,
coalesce(@TOTALDONATIONS, 0) TOTALDONATIONS
from dbo.UFN_MEMBER_RAISEDBYAPPEAL(@STARTDATE,@ENDDATE) MRA
full join dbo.UFN_MEMBER_PLEDGEDBYAPPEAL(@STARTDATE,@ENDDATE) mpe on (mpe.APPEALID=MRA.APPEALID)
full join dbo.UFN_MEMBERSHIPTRANSACTION_RAISEDBYAPPEAL(@STARTDATE, @ENDDATE) MTRA on (MTRA.APPEALID = MPE.APPEALID)
right join dbo.APPEAL a on a.ID=MRA.APPEALID or a.ID=mpe.APPEALID or a.ID=MTRA.APPEALID
inner join dbo.' as nvarchar(max)) + @DBOBJECTNAME + cast(N' as [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2] on [a].[ID] = [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2].[ID]
left join dbo.UFN_MEMBER_APPEALREVENUECOUNTS(@STARTDATE,@ENDDATE) marcs on marcs.APPEALID=a.ID
left join dbo.UFN_MEMBER_APPEALSOLICITEDCOUNTS(@STARTDATE,@ENDDATE) mascs on mascs.APPEALID=a.ID
where
(a.APPEALCATEGORYCODEID = @CATEGORYID or @CATEGORYID is null) and
(a.BUSINESSUNITCODEID = @BUSINESSUNITID or @BUSINESSUNITID is null) and
(a.APPEALREPORT1CODEID = @REPORTCODEID or @REPORTCODEID is null) and
(a.SITEID = @SITEID or @SITEID is null) and
(a.MEMBERSHIPPROGRAMID is not null)
order by a.NAME
end
else if @GROUPBY = 2
begin
select
''http://www.blackbaud.com/APPEALID?APPEALID='' + CONVERT(nvarchar(36),a.ID) as APPEALID,
a.[NAME],
a.GOAL,
coalesce(mascs.SOLICITEDCOUNT,0) SOLICITEDCOUNT,
coalesce(marcs.DONORCOUNT, 0) DONORCOUNT,
coalesce(marcs.GIFTCOUNT,0) GIFTCOUNT,
coalesce(@TOTALDONORS,0) TOTALDONORS,
case
when isnull(MCPA.CHANNELID, ''00000000-0000-0000-0000-000000000000'') = ''00000000-0000-0000-0000-000000000000''
and isnull(MCRA.CHANNELCODE, ''00000000-0000-0000-0000-000000000000'') = ''00000000-0000-0000-0000-000000000000''
and (coalesce(MCRA.CHANNELTOTALRECEIVED, 0) <> 0
or (coalesce(MCRA.CHANNELTOTALRECEIVED,0) + coalesce((MCPA.TOTALPLEDGED - (MCPA.PLEDGESPAID + MCPA.PLEDGESWRITTENOFF)),0)) <> 0) then ''(no channel)''
when isnull(MCPA.CHANNELID, ''00000000-0000-0000-0000-000000000000'') = ''00000000-0000-0000-0000-000000000000''
and isnull(MCRA.CHANNELCODE, ''00000000-0000-0000-0000-000000000000'') <> ''00000000-0000-0000-0000-000000000000'' then dbo.UFN_CHANNELCODE_GETDESCRIPTION(MCRA.CHANNELCODE)
when isnull(MCPA.CHANNELID, ''00000000-0000-0000-0000-000000000000'') <> ''00000000-0000-0000-0000-000000000000''
and isnull(MCRA.CHANNELCODE, ''00000000-0000-0000-0000-000000000000'') = ''00000000-0000-0000-0000-000000000000'' then dbo.UFN_CHANNELCODE_GETDESCRIPTION(MCPA.CHANNELID)
else dbo.UFN_CHANNELCODE_GETDESCRIPTION(MCPA.CHANNELID)
end as DESNAME,
coalesce(MRA.TOTALRECEIVED,0) + coalesce((mpe.TOTALPLEDGED - (mpe.PLEDGESPAID + mpe.PLEDGESWRITTENOFF)),0) APPEALTOTALRAISED,
coalesce(MRA.TOTALRECEIVED,0) APPEALTOTALRECEIVED,
coalesce(MCRA.CHANNELTOTALRECEIVED, 0) TRANSACTIONTOTALRECEIVED,
coalesce(MCRA.CHANNELTOTALRECEIVED,0) + coalesce((MCPA.TOTALPLEDGED - (MCPA.PLEDGESPAID + MCPA.PLEDGESWRITTENOFF)),0) TRANSACTIONTOTALRAISED,
coalesce(@TOTALGOAL, 0) TOTALGOAL,
coalesce(@TOTALRAISED,0) TOTALRAISED,
coalesce(@TOTALRECEIVED, 0) TOTALRECEIVED,
coalesce(@TOTALSOLICITED, 0) TOTALSOLICITED,
coalesce(@TOTALMEMBERS, 0) TOTALMEMBERS,
coalesce(@TOTALDONATIONS, 0) TOTALDONATIONS
from dbo.UFN_MEMBER_RAISEDBYAPPEAL(@STARTDATE,@ENDDATE) MRA
full join dbo.UFN_MEMBER_PLEDGEDBYAPPEAL(@STARTDATE,@ENDDATE) mpe on (mpe.APPEALID=MRA.APPEALID)
full join dbo.UFN_MEMBER_CHANNELRAISEDBYAPPEAL(@STARTDATE, @ENDDATE) MCRA on (MCRA.APPEALID = MPE.APPEALID)
full join dbo.UFN_MEMBER_CHANNELPLEDGEDBYAPPEAL(@STARTDATE, @ENDDATE) MCPA on (MCPA.CHANNELID = MCRA.CHANNELCODE and MCPA.APPEALID = MCRA.APPEALID)
right join dbo.APPEAL a on a.ID=MRA.APPEALID or a.ID=mpe.APPEALID or a.ID=MCRA.APPEALID or a.ID = MCPA.APPEALID
inner join dbo.' as nvarchar(max)) + @DBOBJECTNAME + cast(N' as [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2] on [a].[ID] = [IDSET_6ceda48d_b2e4_49c1_932b_2da2446296f2].[ID]
left join dbo.UFN_MEMBER_APPEALREVENUECOUNTS(@STARTDATE,@ENDDATE) marcs on marcs.APPEALID=a.ID
left join dbo.UFN_MEMBER_APPEALSOLICITEDCOUNTS(@STARTDATE,@ENDDATE) mascs on mascs.APPEALID=a.ID
where
(a.APPEALCATEGORYCODEID = @CATEGORYID or @CATEGORYID is null) and
(a.BUSINESSUNITCODEID = @BUSINESSUNITID or @BUSINESSUNITID is null) and
(a.APPEALREPORT1CODEID = @REPORTCODEID or @REPORTCODEID is null) and
(a.SITEID = @SITEID or @SITEID is null) and
(a.MEMBERSHIPPROGRAMID is not null)
order by a.NAME
end' as nvarchar(max));
exec @r = sp_executesql @SQLTOEXEC, N'@STARTDATE datetime, @ENDDATE datetime, @CATEGORYID uniqueidentifier, @BUSINESSUNITID uniqueidentifier, @REPORTCODEID uniqueidentifier, @SITEID uniqueidentifier, @GROUPBY tinyint', @STARTDATE = @STARTDATE, @ENDDATE = @ENDDATE, @CATEGORYID = @CATEGORYID, @BUSINESSUNITID = @BUSINESSUNITID, @REPORTCODEID = @REPORTCODEID, @SITEID = @SITEID, @GROUPBY = @GROUPBY;
end
return @r;