USP_FAF_SPONSOR_REPORT
Gets details of FAF Event Sponsors
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN | |
@SITEFILTERMODE | tinyint | IN | |
@SITESSELECTED | nvarchar(max) | IN |
Definition
Copy
CREATE PROCEDURE [dbo].[USP_FAF_SPONSOR_REPORT]
(
@EVENTID uniqueidentifier,
@REPORTUSERID nvarchar(128) = null,
@ALTREPORTUSERID nvarchar(128) = null,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED nvarchar(max) = null
)
AS
BEGIN
set nocount on
-- BEGIN SP LOGIC
declare @CURRENTAPPUSERID as uniqueidentifier
--set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETFROMLOGIN(@REPORTUSERID);
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,'1906c640-5085-4f2e-85d8-d11421dfc37e', 21)
--where SITEID is not null
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
declare @EventIDP as uniqueidentifier
set @EventIDP = (Select PRIORYEAREVENTID from EVENTEXTENSION where EVENTID = @EventID);
declare @SPONSORREPORT table
(
ConstituentID uniqueidentifier,
EventID uniqueidentifier,
EventSponsorID uniqueidentifier,
RegistrantID uniqueidentifier,
CompanyName nvarchar(200),
LastName nvarchar(200),
FirstName nvarchar(200),
AddressBlock nvarchar(512),
SponsorshipType nvarchar(50),
TotalFees money,
ReturningSponsor bit,
IsFundraiser bit,
TotalRaised money,
DonationAmount money,
Benefits nvarchar(512),
SponsorGoal int,
ReturningGoal float
)
insert into @SPONSORREPORT
select
cont.ID,
@EVENTID,
ES.ID,
R.ID,
c.KEYNAME,
cont.KEYNAME,
cont.FIRSTNAME,
dbo.UFN_BUILDFULLADDRESS(addr.ID, addr.ADDRESSBLOCK, addr.CITY, addr.STATEID, addr.POSTCODE, addr.COUNTRYID)
As AddressBlock,
ST.NAME,
ST.FEESAMOUNT,
case when ESP.ID is null then 0 else 1 end as Returning,
case when isnull(R.ID, '00000000-0000-0000-0000-000000000000') = '00000000-0000-0000-0000-000000000000' then 0 else 1 end
as IsFundraiser,
0.0 as TotalRaised,
'' as DonationAmount,
'' as Benefits,
EVG.RECRUITMENTSPONSOR,
EVG.RECRUITMENTSPONSORRETENTION
from dbo.EVENTSPONSOR ES
INNER JOIN dbo.EVENTSPONSORSHIPTYPE ST ON ES.EVENTSPONSORSHIPTYPEID = ST.ID
inner join dbo.CONSTITUENT CONT on CONT.ID = ES.CONSTITUENTID
inner join dbo.EVENTGOAL EVG on EVG.EVENTID = ES.EVENTID
left join dbo.EVENTSPONSOR ESP on ESP.CONSTITUENTID = CONT.ID and ESP.EVENTID = @EventIDP
left join dbo.CONSTITUENT C on C.ID = ES.ORGANIZATIONCONSTITUENTID
left join dbo.ADDRESS addr on addr.CONSTITUENTID = C.ID and addr.ISPRIMARY = 1
left join dbo.REGISTRANT R on R.CONSTITUENTID = CONT.ID and R.EVENTID = @EventID
where ES.EVENTID = @eventid
-- site filter
and
(
@SITEFILTERMODE = 0
or exists(
select 1 from dbo.UFN_SITEID_MAPFROM_EVENTID(ES.EVENTID) EVENTSITE
where EVENTSITE.SITEID in (select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED))
)
)
-- Check site security
and
exists(
select 1 from dbo.UFN_SITEID_MAPFROM_EVENTID(ES.EVENTID) EVENTSITE
where (@ISADMIN = 1 or exists (select 1 from @SITESGRANTED SITESGRANTED where SITESGRANTED.SITEID=[EVENTSITE].[SITEID] or (SITESGRANTED.SITEID is null and [EVENTSITE].[SITEID] is null))
))
declare @bentable table
(
beventsponsorid uniqueidentifier,
benefits varchar(500)
)
-- get list of benefits for sponsor
insert into @bentable
SELECT SR.EventSponsorID,
(
SELECT name + ','
FROM dbo.BENEFIT BEN
WHERE BEN.ID in
(select benefitid from
dbo.SPONSORBENEFITEXTENSION where SPONSORID = SR.EventSponsorID)
for XML PATH('')
) As Benefits
FROM @SPONSORREPORT SR
group by SR.EventSponsorID
update @SPONSORREPORT
set Benefits = bt.Benefits from @bentable bt where beventsponsorid = EventSponsorID
update @SPONSORREPORT
set TotalRaised = dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL(RegistrantID, EventID)
update @SPONSORREPORT
set DonationAmount = VOLUNTARYDONATION from SPONSORDONATION where SPONSORID = EventSponsorID
select distinct
'http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID=' + convert(nvarchar(36), ConstituentID) as CONSTITUENTID,
EventID,
CompanyName,
LastName,
FirstName,
AddressBlock,
SponsorshipType,
TotalFees,
ReturningSponsor,
IsFundraiser,
TotalRaised,
DonationAmount,
case when LEN(Benefits)>0 then LEFT(Benefits, LEN(Benefits)-1) ELSE '' END As Benefits,
SponsorGoal,
ReturningGoal
from @SPONSORREPORT
-- END OF SP LOGIC
END