USP_FAFEVENT_DONORDETAILREPORT
Used to display list of donor
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@DONORNAME | nvarchar(100) | IN | |
@PARTICIPANTNAME | nvarchar(100) | IN | |
@DONATIONAMOUNT | money | IN | |
@GIFTTYPECODE | int | IN | |
@WEBURL | nvarchar(1200) | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN | |
@SITEFILTERMODE | tinyint | IN | |
@SITESSELECTED | nvarchar(max) | IN |
Definition
Copy
CREATE procedure dbo.USP_FAFEVENT_DONORDETAILREPORT
(
@EVENTID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@DONORNAME nvarchar(100) = '',
@PARTICIPANTNAME nvarchar(100) = '',
@DONATIONAMOUNT money = 0.0,
@GIFTTYPECODE integer = 1, --0: All three 1:Gift, 2:Pledge, 3:Recurring gift, 4:Matching gift, 5:Pending gift
@WEBURL nvarchar(1200) = '',
@REPORTUSERID nvarchar(128) = null,
@ALTREPORTUSERID nvarchar(128) = null,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED nvarchar(max) = null
)
with execute as owner
as
set nocount on;
DECLARE @VARREVENUETYPE nvarchar(18) = ''
If @GIFTTYPECODE = 1 --Logic is in UFN_REVENUE_EVENTREVENUEDETAILS designed by DBA group
SET @VARREVENUETYPE = 'Donation'
Else If @GIFTTYPECODE = 2
SET @VARREVENUETYPE = 'Pledge'
Else if @GIFTTYPECODE = 3
SET @VARREVENUETYPE = 'Recurring gift'
Else if @GIFTTYPECODE = 4
SET @VARREVENUETYPE = 'Matching gift'
Else if @GIFTTYPECODE = 5
SET @VARREVENUETYPE = 'Pending gift'
--Else If @GIFTTYPECODE = 0
-- SET @VARREVENUETYPE = 'All'
declare @CURRENTAPPUSERID as uniqueidentifier
set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
declare @ISADMIN bit;
declare @SITESGRANTED table(
SITEID uniqueidentifier
)
insert into @SITESGRANTED
select SITEID
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,'78dd575e-8747-4c48-898a-e917303e2559', 21)
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
If @GIFTTYPECODE = 0 --All
Begin
SELECT
CASE WHEN @WEBURL = '' THEN 'http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID=' + convert(nvarchar(36), C.ID)
ELSE @WEBURL + convert(nvarchar(36), C.ID) END as CONSTITUENTID
-- 'http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID=' + convert(nvarchar(36), C.ID) as CONSTITUENTID
,E.ID AS EVENTID
,C.NAME AS [Donor Name]
,RS.AMOUNT as [Donation Amount]
--,REE.[TRANSACTIONTYPE] AS [Gift Type]
--,RS.APPLICATION AS [Gift Type]
,CASE WHEN R.TRANSACTIONTYPE = 'Pledge' THEN R.TRANSACTIONTYPE
WHEN R.TRANSACTIONTYPE = 'Recurring gift' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Donation' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Pending gift' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Matching gift' THEN R.TRANSACTIONTYPE
ELSE RS.APPLICATION END AS [Gift Type]
,CASE WHEN R.CONSTITUENTID IS NOT NULL AND RS.APPLICATION = 'Recurring gift' THEN RA.SCHEDULEDATE
WHEN R.CONSTITUENTID IS NOT NULL AND RS.APPLICATION <> 'Recurring gift' THEN RS.DATEADDED
END AS [Donation Date]
,CASE WHEN EXISTS(SELECT TE.TEAMCONSTITUENTID FROM TEAMEXTENSION TE INNER JOIN TEAMFUNDRAISINGTEAM TFT ON TFT.ID=TE.TEAMFUNDRAISINGTEAMID WHERE TE.TEAMCONSTITUENTID=RR.CONSTITUENTID)
-- THEN (SELECT DISTINCT TFT2.NAME FROM TEAMEXTENSION TE2 INNER JOIN TEAMFUNDRAISINGTEAM TFT2 ON TFT2.ID=TE2.TEAMFUNDRAISINGTEAMID WHERE TE2.TEAMCONSTITUENTID=RR.CONSTITUENTID)
THEN ''
WHEN ES.ID is not null then ''
WHEN NCU.ID is not null
then (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)
else '' END AS [Participant Name]
/* , isnull((SELECT CS.NAME FROM dbo.CONSTITUENT CS inner join dbo.REGISTRANT R ON R.CONSTITUENTID = CS.ID WHERE CS.ID=RR.CONSTITUENTID), E.NAME) as [Participant Name] */
,(
CASE WHEN ISNULL(RR.AMOUNT,'') = '' THEN ''
WHEN R.TRANSACTIONTYPE = 'Pledge' AND REG.ID IS NULL THEN ''
WHEN R.TRANSACTIONTYPE = 'Recurring gift' AND REG.ID IS NULL THEN ''
WHEN (RS.APPLICATION = 'Recurring gift' AND R.TRANSACTIONTYPE = 'Payment') AND REG.ID IS NULL THEN ''
WHEN (RS.APPLICATION = 'Matching gift' AND R.TRANSACTIONTYPE = 'Payment') AND REG.ID IS NULL THEN ''
WHEN ES.ID is not null then ''
WHEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID) IS NOT NULL THEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID)
ELSE (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) END
-- ELSE '' END
) AS [Top Level Fundraising Group Name]
/* ,(
CASE WHEN NCU.ID is null THEN ''
when ES.ID is not null then ''
WHEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID) IS NOT NULL THEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID)
ELSE (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) END
) AS [Top Level Fundraising Group Name] */
FROM dbo.CONSTITUENT (NOLOCK) C
INNER JOIN REVENUE R (NOLOCK) ON R.CONSTITUENTID=C.ID
INNER JOIN dbo.REVENUESPLIT RS (NOLOCK) ON R.ID = RS.REVENUEID
LEFT OUTER JOIN REVENUERECOGNITION RR (NOLOCK) ON RR.REVENUESPLITID = RS.ID
INNER JOIN EVENT E ON E.APPEALID=R.APPEALID
LEFT JOIN NETCOMMUNITYCLIENTUSER NCU ON NCU.CONSTITUENTID = RR.CONSTITUENTID
LEFT JOIN dbo.EVENTSPONSOR ES on ES.CONSTITUENTID = NCU.CONSTITUENTID
LEFT JOIN dbo.REGISTRANT REG on REG.CONSTITUENTID = C.ID and REG.EVENTID = E.ID
--INNER JOIN dbo.UFN_FAFEVENT_REVENUEDETAILS(@EVENTID,null,null,0) REE ON REE.CONSTITUENTID = C.ID
LEFT JOIN dbo.RECURRINGGIFTACTIVITY RA (NOLOCK) ON RS.ID = RA.PAYMENTREVENUEID
WHERE E.ID = ISNULL(@EVENTID, E.ID)
AND
(
-- REE.TRANSACTIONTYPE = 'Donation' --AND R.TRANSACTIONTYPE <> 'Recurring gift'
( RS.APPLICATION = 'Donation' )
or
(
-- REE.TRANSACTIONTYPE = 'Pledge' AND
(RS.APPLICATION <> 'Pledge' AND R.TRANSACTIONTYPE <> 'Payment')
)
or
(
-- REE.TRANSACTIONTYPE = 'Recurring gift' AND
(RS.APPLICATION = 'Recurring gift' AND R.TRANSACTIONTYPE = 'Payment')
)
or
(
(RS.APPLICATION = 'Matching gift' AND R.TRANSACTIONTYPE = 'Payment' )
)
or
(
(RS.APPLICATION = 'Pending gift' AND R.TRANSACTIONTYPE = 'Payment' )
)
)
AND (RS.APPLICATION <> 'Event registration') AND (RS.APPLICATION <> 'Event sponsorship' AND R.TRANSACTIONTYPE <> 'Matching gift claim')
AND NOT ( RS.APPLICATION = 'Donation' AND R.TRANSACTIONTYPE = 'Recurring gift')
AND NOT ( RS.APPLICATION = 'Donation' AND R.TRANSACTIONTYPE = 'Pending gift' )
AND RS.DATEADDED BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND ISNULL(@ENDDATE, '12/30/2999')
-- AND R.DATE BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND ISNULL(@ENDDATE, '12/30/2999')
AND C.NAME LIKE ISNULL(@DONORNAME,C.NAME) + '%'
AND
(
(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)) + '%'
OR (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID)) + '%'
)
AND RS.AMOUNT > 0
-- Check site security
and
exists(
select 1 from (select dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) as SITEID) REVENUESITE
where (@ISADMIN = 1 or exists (select 1 from @SITESGRANTED SITESGRANTED where SITESGRANTED.SITEID=[REVENUESITE].[SITEID] or (SITEID is null and [REVENUESITE].[SITEID] is null))
))
-- Site filter
and
(
@SITEFILTERMODE = 0
or
dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) in
(
select FilterSite.SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) FilterSite
)
)
ORDER BY C.NAME, [Donation Amount], [Gift Type], [Donation Date], [Participant Name], [Top Level Fundraising Group Name]
End
Else If @GIFTTYPECODE = 1 --Donation/Payment
Begin
SELECT
CASE WHEN @WEBURL = '' THEN 'http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID=' + convert(nvarchar(36), C.ID)
ELSE @WEBURL + convert(nvarchar(36), C.ID) END as CONSTITUENTID
,E.ID AS EVENTID
,C.NAME AS [Donor Name]
,RS.AMOUNT as [Donation Amount]
--,REE.[TRANSACTIONTYPE] AS [Gift Type]
--,RS.APPLICATION AS [Gift Type]
,CASE WHEN R.TRANSACTIONTYPE = 'Pledge' THEN R.TRANSACTIONTYPE
WHEN R.TRANSACTIONTYPE = 'Recurring gift' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Donation' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Pending gift' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Matching gift' THEN R.TRANSACTIONTYPE
ELSE RS.APPLICATION END AS [Gift Type]
,CASE WHEN R.CONSTITUENTID IS NOT NULL THEN RS.DATEADDED END AS [Donation Date]
,CASE WHEN EXISTS(SELECT TE.TEAMCONSTITUENTID FROM TEAMEXTENSION TE INNER JOIN TEAMFUNDRAISINGTEAM TFT ON TFT.ID=TE.TEAMFUNDRAISINGTEAMID WHERE TE.TEAMCONSTITUENTID=RR.CONSTITUENTID)
-- THEN (SELECT DISTINCT TFT2.NAME FROM TEAMEXTENSION TE2 INNER JOIN TEAMFUNDRAISINGTEAM TFT2 ON TFT2.ID=TE2.TEAMFUNDRAISINGTEAMID WHERE TE2.TEAMCONSTITUENTID=RR.CONSTITUENTID)
THEN ''
WHEN ES.ID is not null then ''
WHEN NCU.ID is not null
then (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)
else '' END AS [Participant Name]
-- , isnull((SELECT CS.NAME FROM dbo.CONSTITUENT CS inner join dbo.REGISTRANT R ON R.CONSTITUENTID = CS.ID WHERE CS.ID=RR.CONSTITUENTID), E.NAME) as [Participant Name]
/* ,( CASE WHEN NCU.ID is null THEN ''
when ES.ID is not null then ''
WHEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID) IS NOT NULL THEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID)
ELSE (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) END
) AS [Top Level Fundraising Group Name] */
,(
CASE WHEN ISNULL(RR.AMOUNT,'') = '' THEN ''
WHEN R.TRANSACTIONTYPE = 'Pledge' AND REG.ID IS NULL THEN ''
WHEN R.TRANSACTIONTYPE = 'Recurring gift' AND REG.ID IS NULL THEN ''
WHEN (RS.APPLICATION = 'Recurring gift' AND R.TRANSACTIONTYPE = 'Payment') AND REG.ID IS NULL THEN ''
WHEN (RS.APPLICATION = 'Matching gift' AND R.TRANSACTIONTYPE = 'Payment') AND REG.ID IS NULL THEN ''
WHEN ES.ID is not null then ''
WHEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID) IS NOT NULL THEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID)
ELSE (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) END
) AS [Top Level Fundraising Group Name]
FROM dbo.CONSTITUENT (NOLOCK) C
INNER JOIN REVENUE R (NOLOCK) ON R.CONSTITUENTID=C.ID
INNER JOIN dbo.REVENUESPLIT RS (NOLOCK) ON R.ID = RS.REVENUEID
LEFT JOIN REVENUERECOGNITION RR (NOLOCK) ON RR.REVENUESPLITID = RS.ID
INNER JOIN EVENT E ON E.APPEALID=R.APPEALID
LEFT JOIN NETCOMMUNITYCLIENTUSER NCU ON NCU.CONSTITUENTID = RR.CONSTITUENTID
LEFT JOIN dbo.EVENTSPONSOR ES on ES.CONSTITUENTID = NCU.CONSTITUENTID
LEFT JOIN dbo.REGISTRANT REG on REG.CONSTITUENTID = C.ID and REG.EVENTID = E.ID
--INNER JOIN dbo.UFN_FAFEVENT_REVENUEDETAILS(@EVENTID,null,null,0) REE ON REE.CONSTITUENTID = C.ID
WHERE E.ID = ISNULL(@EVENTID, E.ID)
AND
(
RS.APPLICATION = ISNULL('Donation',RS.APPLICATION)
or
RS.APPLICATION = ISNULL('Matching gift',RS.APPLICATION)
or
RS.APPLICATION = ISNULL('Pending gift',RS.APPLICATION)
or
(
(RS.APPLICATION = 'Pending gift' AND R.TRANSACTIONTYPE = 'Payment' )
)
or
(
(RS.APPLICATION = 'Matching gift' AND R.TRANSACTIONTYPE = 'Payment' )
)
)
AND RS.APPLICATION <> 'Event registration' AND RS.APPLICATION <> 'Event sponsorship' AND RS.APPLICATION <> 'Pledge' AND RS.APPLICATION <> 'Recurring gift'
AND R.TRANSACTIONTYPE <> 'Pledge' AND R.TRANSACTIONTYPE <> 'Matching gift claim'
AND NOT ( RS.APPLICATION = 'Donation' AND R.TRANSACTIONTYPE = 'Recurring gift')
AND NOT ( RS.APPLICATION = 'Donation' AND R.TRANSACTIONTYPE = 'Pending gift' )
AND RS.DATEADDED BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND ISNULL(@ENDDATE, '12/30/2999')
--AND R.DATE BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND DATEADD(dd, 1, ISNULL(@ENDDATE, '12/30/2999'))
AND C.NAME LIKE ISNULL(@DONORNAME,C.NAME) + '%'
AND
(
(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)) + '%'
OR (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID)) + '%'
)
AND RS.AMOUNT > 0
-- Check site security
and
exists(
select 1 from (select dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) as SITEID) REVENUESITE
where (@ISADMIN = 1 or exists (select 1 from @SITESGRANTED SITESGRANTED where SITESGRANTED.SITEID=[REVENUESITE].[SITEID] or (SITEID is null and [REVENUESITE].[SITEID] is null))
))
-- Site filter
and
(
@SITEFILTERMODE = 0
or
dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) in
(
select FilterSite.SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) FilterSite
)
)
ORDER BY C.NAME, [Donation Amount], [Gift Type], [Donation Date], [Participant Name], [Top Level Fundraising Group Name]
End
Else If @GIFTTYPECODE = 2 --Pledge
Begin
SELECT
CASE WHEN @WEBURL = '' THEN 'http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID=' + convert(nvarchar(36), C.ID)
ELSE @WEBURL + convert(nvarchar(36), C.ID) END as CONSTITUENTID
,E.ID AS EVENTID
,C.NAME AS [Donor Name]
,RS.AMOUNT as [Donation Amount]
--,REE.[TRANSACTIONTYPE] AS [Gift Type]
--,RS.APPLICATION AS [Gift Type]
,CASE WHEN R.TRANSACTIONTYPE = 'Pledge' THEN R.TRANSACTIONTYPE
WHEN R.TRANSACTIONTYPE = 'Recurring gift' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Donation' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Pending gift' THEN R.TRANSACTIONTYPE
ELSE RS.APPLICATION END AS [Gift Type]
,CASE WHEN R.CONSTITUENTID IS NOT NULL THEN RS.DATEADDED END AS [Donation Date]
-- , isnull((SELECT CS.NAME FROM dbo.CONSTITUENT CS inner join dbo.REGISTRANT R ON R.CONSTITUENTID = CS.ID WHERE CS.ID=RR.CONSTITUENTID), E.NAME) as [Participant Name]
,CASE WHEN EXISTS(SELECT TE.TEAMCONSTITUENTID FROM TEAMEXTENSION TE INNER JOIN TEAMFUNDRAISINGTEAM TFT ON TFT.ID=TE.TEAMFUNDRAISINGTEAMID WHERE TE.TEAMCONSTITUENTID=RR.CONSTITUENTID)
-- THEN (SELECT DISTINCT TFT2.NAME FROM TEAMEXTENSION TE2 INNER JOIN TEAMFUNDRAISINGTEAM TFT2 ON TFT2.ID=TE2.TEAMFUNDRAISINGTEAMID WHERE TE2.TEAMCONSTITUENTID=RR.CONSTITUENTID)
THEN ''
WHEN ES.ID is not null then ''
WHEN NCU.ID is not null
then (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)
else '' END AS [Participant Name]
,(
CASE WHEN ISNULL(RR.AMOUNT,'') = '' THEN ''
WHEN R.TRANSACTIONTYPE = 'Pledge' AND REG.ID IS NULL THEN ''
WHEN R.TRANSACTIONTYPE = 'Recurring gift' AND REG.ID IS NULL THEN ''
WHEN ES.ID is not null then ''
WHEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID) IS NOT NULL THEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID)
ELSE (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) END
) AS [Top Level Fundraising Group Name]
FROM dbo.CONSTITUENT (NOLOCK) C
INNER JOIN REVENUE R (NOLOCK) ON R.CONSTITUENTID=C.ID
INNER JOIN dbo.REVENUESPLIT RS (NOLOCK) ON R.ID = RS.REVENUEID
INNER JOIN REVENUERECOGNITION RR (NOLOCK) ON RR.REVENUESPLITID = RS.ID
INNER JOIN EVENT E ON E.APPEALID=R.APPEALID
LEFT JOIN NETCOMMUNITYCLIENTUSER NCU ON NCU.CONSTITUENTID = RR.CONSTITUENTID
LEFT JOIN dbo.EVENTSPONSOR ES on ES.CONSTITUENTID = NCU.CONSTITUENTID
LEFT JOIN dbo.REGISTRANT REG on REG.CONSTITUENTID = C.ID and REG.EVENTID = E.ID
--INNER JOIN dbo.UFN_FAFEVENT_REVENUEDETAILS(@EVENTID,null,null,0) REE ON REE.CONSTITUENTID = C.ID
WHERE E.ID = ISNULL(@EVENTID, E.ID)
AND R.TRANSACTIONTYPE = ISNULL(@VARREVENUETYPE,R.TRANSACTIONTYPE )
AND (RS.APPLICATION <> 'Pledge' AND R.TRANSACTIONTYPE <> 'Payment')
AND RS.APPLICATION <> 'Event registration' AND RS.APPLICATION <> 'Event sponsorship'
AND R.TRANSACTIONTYPE <> 'Matching gift claim'
AND NOT ( RS.APPLICATION = 'Donation' AND R.TRANSACTIONTYPE = 'Recurring gift')
AND NOT ( RS.APPLICATION = 'Donation' AND R.TRANSACTIONTYPE = 'Pending gift' )
AND RS.DATEADDED BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND ISNULL(@ENDDATE, '12/30/2999')
--AND R.DATE BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND DATEADD(dd, 1, ISNULL(@ENDDATE, '12/30/2999'))
AND C.NAME LIKE ISNULL(@DONORNAME,C.NAME) + '%'
AND
(
(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)) + '%'
OR (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID)) + '%'
)
AND RS.AMOUNT > 0
-- Check site security
and
exists(
select 1 from (select dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) as SITEID) REVENUESITE
where (@ISADMIN = 1 or exists (select 1 from @SITESGRANTED SITESGRANTED where SITESGRANTED.SITEID=[REVENUESITE].[SITEID] or (SITEID is null and [REVENUESITE].[SITEID] is null))
))
-- Site filter
and
(
@SITEFILTERMODE = 0
or
dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) in
(
select FilterSite.SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) FilterSite
)
)
ORDER BY C.NAME, [Donation Amount], [Gift Type], [Donation Date], [Participant Name], [Top Level Fundraising Group Name]
End
Else If @GIFTTYPECODE = 3 OR @GIFTTYPECODE = 4 OR @GIFTTYPECODE = 5 --Recurring gift, Matching gift, Pending gift
Begin
SELECT
CASE WHEN @WEBURL = '' THEN 'http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID=' + convert(nvarchar(36), C.ID)
ELSE @WEBURL + convert(nvarchar(36), C.ID) END as CONSTITUENTID
,E.ID AS EVENTID
,C.NAME AS [Donor Name]
,RS.AMOUNT as [Donation Amount]
--,REE.[TRANSACTIONTYPE] AS [Gift Type]
,CASE WHEN R.TRANSACTIONTYPE = 'Pledge' THEN R.TRANSACTIONTYPE
WHEN R.TRANSACTIONTYPE = 'Recurring gift' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Donation' THEN R.TRANSACTIONTYPE
WHEN RS.APPLICATION = 'Pending gift' THEN R.TRANSACTIONTYPE
ELSE RS.APPLICATION END AS [Gift Type]
,CASE WHEN R.CONSTITUENTID IS NOT NULL AND @GIFTTYPECODE = 3 THEN RA.SCHEDULEDATE
WHEN R.CONSTITUENTID IS NOT NULL AND @GIFTTYPECODE <>3 THEN RS.DATEADDED
END AS [Donation Date]
-- , isnull((SELECT CS.NAME FROM dbo.CONSTITUENT CS inner join dbo.REGISTRANT R ON R.CONSTITUENTID = CS.ID WHERE CS.ID=RR.CONSTITUENTID), E.NAME) as [Participant Name]
,CASE WHEN EXISTS(SELECT TE.TEAMCONSTITUENTID FROM TEAMEXTENSION TE INNER JOIN TEAMFUNDRAISINGTEAM TFT ON TFT.ID=TE.TEAMFUNDRAISINGTEAMID WHERE TE.TEAMCONSTITUENTID=RR.CONSTITUENTID)
-- THEN (SELECT DISTINCT TFT2.NAME FROM TEAMEXTENSION TE2 INNER JOIN TEAMFUNDRAISINGTEAM TFT2 ON TFT2.ID=TE2.TEAMFUNDRAISINGTEAMID WHERE TE2.TEAMCONSTITUENTID=RR.CONSTITUENTID)
THEN ''
WHEN ES.ID is not null then ''
WHEN NCU.ID is not null
then (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)
else '' END AS [Participant Name]
,(
CASE WHEN ISNULL(RR.AMOUNT,'') = '' THEN ''
WHEN R.TRANSACTIONTYPE = 'Pledge' AND REG.ID IS NULL THEN ''
WHEN R.TRANSACTIONTYPE = 'Recurring gift' AND REG.ID IS NULL THEN ''
WHEN (RS.APPLICATION = 'Recurring gift' AND R.TRANSACTIONTYPE = 'Payment') AND REG.ID IS NULL THEN ''
WHEN (RS.APPLICATION = 'Matching gift' AND R.TRANSACTIONTYPE = 'Payment') AND REG.ID IS NULL THEN ''
WHEN ES.ID is not null then ''
WHEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID) IS NOT NULL THEN dbo.UFN_FAFEVENT_GETGROUPNAMEBYCONSTITUENT(RR.CONSTITUENTID)
ELSE (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) END
) AS [Top Level Fundraising Group Name]
FROM dbo.CONSTITUENT (NOLOCK) C
INNER JOIN REVENUE R (NOLOCK) ON R.CONSTITUENTID=C.ID
INNER JOIN dbo.REVENUESPLIT RS (NOLOCK) ON R.ID = RS.REVENUEID
INNER JOIN REVENUERECOGNITION RR (NOLOCK) ON RR.REVENUESPLITID = RS.ID
INNER JOIN EVENT E ON E.APPEALID=R.APPEALID
LEFT JOIN NETCOMMUNITYCLIENTUSER NCU ON NCU.CONSTITUENTID = RR.CONSTITUENTID
LEFT JOIN dbo.EVENTSPONSOR ES on ES.CONSTITUENTID = NCU.CONSTITUENTID
LEFT JOIN dbo.REGISTRANT REG on REG.CONSTITUENTID = C.ID and REG.EVENTID = E.ID
-- INNER JOIN dbo.UFN_FAFEVENT_REVENUEDETAILS(@EVENTID,null,null,0) REE ON REE.CONSTITUENTID = C.ID
LEFT JOIN dbo.RECURRINGGIFTACTIVITY RA (NOLOCK) ON RS.ID = RA.PAYMENTREVENUEID
WHERE E.ID = ISNULL(@EVENTID, E.ID)
AND RS.APPLICATION = ISNULL(@VARREVENUETYPE,RS.APPLICATION)
AND (RS.APPLICATION = @VARREVENUETYPE AND R.TRANSACTIONTYPE = 'Payment')
AND R.TRANSACTIONTYPE = 'Payment' AND RS.APPLICATION <> 'Event registration' AND RS.APPLICATION <> 'Event sponsorship'
AND R.TRANSACTIONTYPE <> 'Pledge' AND R.TRANSACTIONTYPE <> 'Matching gift claim'
--AND NOT ( RS.APPLICATION = 'Donation' AND R.TRANSACTIONTYPE = 'Recurring gift')
AND RS.DATEADDED BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND ISNULL(@ENDDATE, '12/30/2999')
--AND R.DATE BETWEEN ISNULL(@STARTDATE, '1/1/1900') AND DATEADD(dd, 1, ISNULL(@ENDDATE, '12/30/2999'))
AND C.NAME LIKE ISNULL(@DONORNAME,C.NAME) + '%'
AND
(
(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=RR.CONSTITUENTID)) + '%'
OR (SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID) LIKE ISNULL(@PARTICIPANTNAME,(SELECT CS.NAME FROM dbo.CONSTITUENT CS WHERE CS.ID=C.ID)) + '%'
)
AND RS.AMOUNT > 0
-- Check site security
and
exists(
select 1 from (select dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) as SITEID) REVENUESITE
where (@ISADMIN = 1 or exists (select 1 from @SITESGRANTED SITESGRANTED where SITESGRANTED.SITEID=[REVENUESITE].[SITEID] or (SITEID is null and [REVENUESITE].[SITEID] is null))
))
-- Site filter
and
(
@SITEFILTERMODE = 0
or
dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(RS.DESIGNATIONID) in
(
select FilterSite.SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) FilterSite
)
)
ORDER BY C.NAME, [Donation Amount], [Gift Type], [Donation Date], [Participant Name], [Top Level Fundraising Group Name]
End