USP_FAF_PARTICIPANT_REPORT

Returns list of participants and relevant data

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN
@REGISTRATIONOPTION nvarchar(50) IN
@REGISTRATIONFEE money IN
@WEBURL nvarchar(1200) IN
@WEBURLGROUP nvarchar(1200) IN
@STATUS int IN
@REPORTUSERID nvarchar(128) IN
@ALTREPORTUSERID nvarchar(128) IN
@SITEFILTERMODE tinyint IN
@SITESSELECTED nvarchar(max) IN

Definition

Copy


CREATE PROCEDURE [dbo].[USP_FAF_PARTICIPANT_REPORT]
(
    @EVENTID uniqueidentifier,
    @REGISTRATIONOPTION nvarchar(50) = null,
    @REGISTRATIONFEE money = null,
    @WEBURL nvarchar(1200) = '',
    @WEBURLGROUP nvarchar(1200) = '',
    @STATUS int = 2 , -- 0 = Active , 1= Canceled, 2= 'All'

  @REPORTUSERID nvarchar(128) = null,
  @ALTREPORTUSERID nvarchar(128) = null,
  @SITEFILTERMODE tinyint = 0,     
  @SITESSELECTED nvarchar(max) = null 
)
AS
BEGIN
    SET NOCOUNT ON;

-- BEGIN SP LOGIC

set nocount on


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,'7a6794e2-6287-4fe6-ae85-0b660d640995', 21)
  where SITEID is not null

  set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);

if @REGISTRATIONOPTION = 'All' set @REGISTRATIONOPTION = null

-- get previous linked event

declare @EventIDP as uniqueidentifier 
set @EventIDP = (select PRIORYEAREVENTID from EVENTEXTENSION where EVENTID = @EventID);

declare @REGSREPORT table
(
    RegistrantID uniqueidentifier,
    LASTNAME nvarchar(200),
    FIRSTNAME nvarchar(200),
    AddressBlock nvarchar(512),
    TOTALRAISED money,
    FUNDRAISINGGOAL money,
    TARGETFUNDRAISINGGOAL money,
    RegisteredDate datetime,
    RegistrationFee money,
    GroupName nvarchar(512),
    RegistrationOption nvarchar(50),
    ReturnedParticipant int,
    Benefits nvarchar(512),
    GroupType int,
    RoleCode int,
    ISCANCELLED int
)

declare @registrantsbyevent table
(
    ID uniqueidentifier,
    DATEADDED datetime,
    CONSTITUENTID uniqueidentifier,
    EVENTID uniqueidentifier,
    ROLE varchar(17),
    TEAMFUNDRAISINGTEAMID uniqueidentifier,
    ROLECODE int,
  ISCANCELLED bit
)

insert into @registrantsbyevent(ID, DATEADDED, CONSTITUENTID, EVENTID, ROLE, TEAMFUNDRAISINGTEAMID, ROLECODE, ISCANCELLED)
select R.id, R.dateadded, R.CONSTITUENTID, R.EVENTID, AG.Role, AG.TEAMFUNDRAISINGTEAMID, AG.RoleCode, R.ISCANCELLED 
from dbo.REGISTRANT R
JOIN dbo.UFN_REGISTRANT_GETFAFROLE(@eventid, null) AG ON R.ID = AG.REGISTRANTID  
where R.EVENTID = @EventID

insert into @REGSREPORT
--  main registrant detail query 

select 
    R.ID,
    C.KEYNAME,
    C.FIRSTNAME,
    dbo.UFN_BUILDFULLADDRESS(addr.ID, addr.ADDRESSBLOCK, addr.CITY, addr.STATEID, addr.POSTCODE, addr.COUNTRYID) As AddressBlock,
    -- case when TX.TypeCode = 3 then T.Goal else RX.FUNDRAISINGGOAL end as FUNDRAISINGGOAL,  

    REVTOTAL.AMOUNTRAISED as TOTALRAISED,    
    RX.FUNDRAISINGGOAL,
    -- case when TX.TypeCode = 3 then TX.TARGETFUNDRAISINGGOAL else RX.TARGETFUNDRAISINGGOAL end as TARGETFUNDRAISINGGOAL, 

    RX.TARGETFUNDRAISINGGOAL,
    R.DATEADDED as RegisteredDate,
    RR.AMOUNT as RegistrationFee,
    T.Name AS GroupName,
    EP.NAME as RegistrationOption,
  case when REG.ID is null then 0 else 1 end as ReturnedParticipant,
    dbo.UFN_REGISTRANT_GETBENEFITLIST_BYREGISTRANTID(R.ID) as Benefits,
    case when R.Role = 'Head of household' then 3  
        when R.Role = 'Household member' then 3  
        when R.Role = 'Team leader' then 1  
        when R.Role = 'Team member' then 1  
        when R.Role = 'Company leader' then 2  
        when R.Role = 'Individual' and R.TEAMFUNDRAISINGTEAMID is null then 0   
        when R.Role = 'Individual' and R.TEAMFUNDRAISINGTEAMID is not null then 2
        when R.Role is null then 0 end   
        as GroupType,
    R.RoleCode,
    R.ISCANCELLED
from @registrantsbyevent R
join dbo.CONSTITUENT C on R.CONSTITUENTID = C.ID
join dbo.REGISTRANTREGISTRATION RR on rr.REGISTRANTID = R.ID
join dbo.EVENTPRICE    EP ON RR.EVENTPRICEID = EP.ID
left join dbo.UFN_REVENUE_GETPARTICIPANTRAISEDTOTAL_2(@EVENTID) REVTOTAL on C.ID = REVTOTAL.CONSTITUENTID
left join dbo.[ADDRESS] addr on addr.CONSTITUENTID = C.ID and addr.ISPRIMARY = 1
left join dbo.REGISTRANTEXTENSION RX on RX.REGISTRANTID = R.ID
left join dbo.TEAMFUNDRAISER TR on TR.CONSTITUENTID = r.CONSTITUENTID 
left join dbo.TEAMFUNDRAISINGTEAMMEMBER TM on TM.TEAMFUNDRAISERID = TR.ID
left join dbo.TEAMFUNDRAISINGTEAM T on T.ID = TM.TEAMFUNDRAISINGTEAMID
left join dbo.TEAMEXTENSION TX on T.ID = TX.TEAMFUNDRAISINGTEAMID and TX.EVENTID = @EventID
left join dbo.EVENTEXTENSION EX ON r.EVENTID = EX.EVENTID  
left join dbo.REGISTRANT REG on REG.CONSTITUENTID = C.ID and REG.EVENTID = @EventIDP  
where RX.STATUS = 'Active'
-- site filter

 and
      (
        @SITEFILTERMODE = 0
        or exists(
            select 1 from dbo.UFN_SITEID_MAPFROM_EVENTID(R.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(R.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))
  ))

IF @STATUS = 0
BEGIN
    -- Remove cancelled registrants

    DELETE FROM @REGSREPORT WHERE ISCANCELLED = 1
END
ELSE IF @STATUS = 1
BEGIN
    -- Remove active registrants

    DELETE FROM @REGSREPORT WHERE ISCANCELLED = 0

END

-- remove all household members

--delete from @REGSREPORT

--where GroupType = 3 and RoleCode <> 3


select DISTINCT
        CASE WHEN @WEBURL = '' THEN 'http://www.blackbaud.com/REGISTRANTID?REGISTRANTID='  + convert(nvarchar(36), RegistrantID)
        ELSE @WEBURL +  convert(nvarchar(36), RegistrantID) END as REGISTRANTID,
--    'http://www.blackbaud.com/REGISTRANTID?REGISTRANTID=' + convert(nvarchar(36), RegistrantID) as REGISTRANTID,

    LASTNAME,
    FIRSTNAME,
    AddressBlock,
    TOTALRAISED,
    FUNDRAISINGGOAL,
    TARGETFUNDRAISINGGOAL,
    RegisteredDate,
    RegistrationFee,
    GroupName,
    RegistrationOption,
    ReturnedParticipant,
    Benefits,
    GroupType
from @REGSREPORT
where RegistrationOption like isnull(@REGISTRATIONOPTION,'%'
and (RegistrationFee = @REGISTRATIONFEE or @REGISTRATIONFEE is null)

-- END OF SP LOGIC


END