USP_SEARCHLIST_FAFREGISTRANT
Used for FAF Registrant search
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@KEYNAME | nvarchar(100) | IN | Last/Group name |
@FIRSTNAME | nvarchar(100) | IN | First name |
@FULLNAME | nvarchar(100) | IN | FULLNAME |
@LOOKUPID | nvarchar(100) | IN | Lookup ID |
@INCLUDEINDIVIDUALS | bit | IN | Individuals |
@INCLUDEGROUP | bit | IN | Groups |
@ROLE | nvarchar(100) | IN | Fundraising role |
@EVENTID | uniqueidentifier | IN | Event |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
@EXACTMATCHONLY | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_SEARCHLIST_FAFREGISTRANT
(
@KEYNAME nvarchar(100) = null,
@FIRSTNAME nvarchar(100) = null,
@FULLNAME nvarchar(100) = null,
@LOOKUPID nvarchar(100) = null,
@INCLUDEINDIVIDUALS bit = 1,
@INCLUDEGROUP bit = 1,
@ROLE nvarchar(100) = null,
@EVENTID uniqueidentifier = null,
@MAXROWS smallint = 500,
@EXACTMATCHONLY bit = 0
)
as
set nocount on
;With RegistrantsAndGroups
as
(
select RG.CONSTITUENTID, R.Role, RE.STATUS, RG.DATEADDED, C.NAME, 1 AS ISREGISTRANT, RG.ID
from dbo.REGISTRANT RG (nolock)
join dbo.REGISTRANTEXTENSION RE (nolock) ON RG.ID = RE.REGISTRANTID
join dbo.CONSTITUENT C (nolock) on C.ID = RG.CONSTITUENTID
join dbo.UFN_REGISTRANT_GETFAFROLE(@EVENTID,null) R ON RG.ID = R.REGISTRANTID
where RG.EVENTID = ISNULL(@EVENTID,RG.EVENTID) and @INCLUDEINDIVIDUALS = 1
and (C.KEYNAME like @KEYNAME + '%' OR @KEYNAME is null)
and (C.FIRSTNAME like @FIRSTNAME + '%' OR @FIRSTNAME is null)
union all
select TX.TEAMCONSTITUENTID AS CONSTITUENTID, TX.Type as Role, TX.STATUS, TX.DATEADDED, TFT.NAME, 0 as ISREGISTRANT, TFT.ID
from dbo.TEAMEXTENSION TX (nolock)
join dbo.TEAMFUNDRAISINGTEAM TFT (nolock) on TFT.ID = TX.TEAMFUNDRAISINGTEAMID
where TX.EVENTID = ISNULL(@EVENTID,TX.EVENTID) and TX.STATUSCODE = 0 and @INCLUDEGROUP = 1
and (TFT.NAME like @KEYNAME + '%' OR @KEYNAME is null)
and @FIRSTNAME is null
)
select top(@MAXROWS)
C.ID,
C.LOOKUPID,
case when ISREGISTRANT = 0 and C.NAME <> RG.NAME then RG.NAME + ' (' + C.NAME +')' else C.NAME end as NAME,
RG.Role,
RG.DATEADDED,
RG.ID as REGISTRANTORGROUPID
from
dbo.CONSTITUENT C (nolock)
join [RegistrantsAndGroups] RG on C.ID = RG.CONSTITUENTID
where (C.LOOKUPID like @LOOKUPID + '%' OR @LOOKUPID is null)
and (RG.Role LIKE @ROLE + '%' OR @ROLE is null)
order by C.NAME asc