USP_SEARCHLIST_REGISTRANT

Parameters

Parameter Parameter Type Mode Description
@LASTNAME nvarchar(100) IN
@FIRSTNAME nvarchar(100) IN
@LOOKUPID nvarchar(100) IN
@EMAILADDRESS nvarchar(300) IN
@ADDRESS nvarchar(300) IN
@CITY nvarchar(100) IN
@STATEID uniqueidentifier IN
@POSTCODE nvarchar(24) IN
@EVENTNAME nvarchar(200) IN
@SITESSELECTED xml IN
@SITEID uniqueidentifier IN
@SITEFILTERMODE tinyint IN
@MAXROWS smallint IN

Definition

Copy


CREATE procedure dbo.USP_SEARCHLIST_REGISTRANT
(
    @LASTNAME nvarchar(100) = null,
    @FIRSTNAME nvarchar(100) = null,
    @LOOKUPID nvarchar(100) = null,
    @EMAILADDRESS nvarchar(300) = null,
    @ADDRESS nvarchar(300) = null,
    @CITY nvarchar(100) = null,
    @STATEID uniqueidentifier = null,
    @POSTCODE nvarchar(24) = null,
    @EVENTNAME nvarchar(200) = null,
    @SITESSELECTED xml = null,
    @SITEID uniqueidentifier = null,
    @SITEFILTERMODE tinyint = null,
    @MAXROWS smallint = 500
)
as
--    set @NAME = COALESCE(@NAME,'') + '%' ;

DECLARE @CHANGEAGENTID uniqueidentifier 
DECLARE @CURRENTAPPUSERID uniqueidentifier 

if @CHANGEAGENTID is null  
  exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output    

set @CURRENTAPPUSERID = ( select top 1 a.[ID]
from CHANGEAGENT  ch  join APPUSER a
    on coalesce(lower(a.[USERNAME]), lower( a.[WindowsUserName]) ) = lower(ch.[USERNAME]) 
where ch.ID = @CHANGEAGENTID )


;With RegSearch
as
(
    select top(@MAXROWS)
     c.[ID] [ID],
     r.[LOOKUPID]  [LOOKUPID], 
     c.[NAME]  [NAME],
     e.[NAME] [EVENTNAME], 
     r.[ID]  [REGISTRANTID], 
     a.[ADDRESSBLOCK]  [ADDRESS],
     a.[CITY]  [CITY],
     em.[EMAILADDRESS]  [EMAIL],
     e.[ID] AS [EVENTID],
     s.[ABBREVIATION],
     a.[POSTCODE] [ZIPCODE]
    from dbo.[EVENT] e (nolock)
    inner join dbo.[REGISTRANT] r (nolock) on e.ID = r.[EVENTID]
    inner join dbo.[CONSTITUENT] c (nolock) on r.[CONSTITUENTID] = c.[ID] and [ISORGANIZATION]=0
    left join dbo.[ADDRESS] a (nolock) on c.[ID] = a.[CONSTITUENTID] and a.[ISPRIMARY] = 1
    left join dbo.[EMAILADDRESS] em (nolock) on c.[ID] = em.[CONSTITUENTID] and em.[ISPRIMARY] = 1
    left join dbo.[STATE] s (nolock) on a.[STATEID] = s.[ID]
    where 
    ( @LASTNAME is null or c.[KEYNAME] like @LASTNAME + '%' )                and
    ( @FIRSTNAME is null or c.[FIRSTNAME] like @FIRSTNAME + '%' )            and
    ( @LOOKUPID is null or r.[LOOKUPID] like @LOOKUPID + '%')                and
    ( @EMAILADDRESS is null or em.[EMAILADDRESS] like @EMAILADDRESS + '%' ) and
    ( @ADDRESS is null or a.[ADDRESSBLOCK]  like @ADDRESS + '%' )            and
    ( @CITY is null or a.[CITY] like @CITY + '%' )                            and
    ( @STATEID is null or s.[ID] = @STATEID )                                and
    ( @POSTCODE is null or a.[POSTCODE] like @POSTCODE + '%' )                and
    ( @EVENTNAME is null or e.[NAME] like @EVENTNAME + '%' )
     --site filter

    and
    (
      @SITEFILTERMODE = 0
      or
      exists
      (
        select 1 from UFN_SITEID_MAPFROM_EVENTID(e.[ID]) EVENTSITE
          where EVENTSITE.SITEID in
          (
            select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)
          )
      )
    )

),
GroupData
as
(
select 
 tf.[CONSTITUENTID] [CONSTITUENTID],
 tx.[EVENTID] [EVENTID], 
 tft.[NAME] [GROUPNAME]
 from [TEAMEXTENSION] tx (nolock)
 left join dbo.[TEAMFUNDRAISINGTEAM] tft (nolock)
     on tx.[TEAMFUNDRAISINGTEAMID] = tft.[ID] 
 left join dbo.[TEAMFUNDRAISINGTEAMMEMBER] tftm (nolock) 
     on tftm.[TEAMFUNDRAISINGTEAMID] = tx.[TEAMFUNDRAISINGTEAMID]  
 left join dbo.[TEAMFUNDRAISER] tf (nolock) 
     on tf.[ID] = tftm.[TEAMFUNDRAISERID]  
  where tf.[CONSTITUENTID] in ( SELECT ID FROM RegSearch )
)


    select 
     reg.[REGISTRANTID] [ID],
     reg.[REGISTRANTID] , 
     reg.[LOOKUPID], 
     reg.[NAME],
     g.[GROUPNAME],
     reg.[ADDRESS],
     reg.[CITY],
     reg.[ABBREVIATION] [STATE],
     reg.[ZIPCODE],
     reg.[EMAIL],
     reg.[EVENTNAME]

from RegSearch reg
left join GroupData g
    on reg.ID = g.CONSTITUENTID and reg.EVENTID = g.EVENTID 
    order by 
        reg.[NAME] asc