USP_SEARCHLIST_EVENTSWORKCENTEREVENT

Parameters

Parameter Parameter Type Mode Description
@NAME nvarchar(100) IN
@FROMDATE datetime IN
@TODATE datetime IN
@LOCATION nvarchar(100) IN
@CATEGORYCODEID uniqueidentifier IN
@MAXROWS smallint IN
@CURRENTAPPUSERID uniqueidentifier IN
@SITEFILTERMODE tinyint IN
@SITESSELECTED xml IN

Definition

Copy


CREATE procedure dbo.USP_SEARCHLIST_EVENTSWORKCENTEREVENT
(
    @NAME nvarchar(100) = null,
    @FROMDATE datetime = null,
    @TODATE datetime = null,
    @LOCATION nvarchar(100) = null,
    @CATEGORYCODEID uniqueidentifier = null,
    @MAXROWS smallint = 500,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @SITEFILTERMODE tinyint = 0,
    @SITESSELECTED xml = null
)
as

    set nocount on;

    --set @FROMDATE = dbo.UFN_DATE_GETEARLIESTTIME(@FROMDATE)

    --set @TODATE = dbo.UFN_DATE_GETLATESTTIME(@TODATE)


    select distinct top(@MAXROWS)
        EVENT.ID,
        EVENT.NAME,
        EVENT.LOOKUPID,
        EVENT.STARTDATE,
        EVENT.ENDDATE,
        NF.NAME as CONTACT,
        coalesce((select dbo.UDA_BUILDLIST(SITE.NAME) from dbo.SITE inner join dbo.EVENTSITE on EVENTSITE.SITEID = SITE.ID where EVENTSITE.EVENTID = EVENT.ID),'') as SITE,
        case
            when EVENT.PROGRAMID is not null then dbo.UFN_PROGRAM_GETLOCATIONNAME(EVENT.PROGRAMID)
            else dbo.UFN_EVENTLOCATION_GETNAME(EVENT.EVENTLOCATIONID)
        end as LOCATION,
        case
            when PROGRAM.ID is not null then dbo.UFN_PROGRAMCATEGORYCODE_GETDESCRIPTION(PROGRAM.PROGRAMCATEGORYCODEID)
            else dbo.UFN_EVENTCATEGORYCODE_GETDESCRIPTION(EVENT.EVENTCATEGORYCODEID)
        end as CATEGORYCODE,
        case 
            when EVENTAUCTION.ID is not null then 5 -- Auction

            when EVENT.PROGRAMID is not null then 10 -- Program event

            else 1 -- Event

        end as EVENTTYPECODE,
        case
            when (select count(INNEREVENT.ID) from dbo.EVENT as INNEREVENT where INNEREVENT.MAINEVENTID = EVENT.ID) > 0 or (select count(EVENTHIERARCHY.ID) from dbo.EVENTHIERARCHY inner join dbo.EVENT as INNEREVENT on INNEREVENT.ID = EVENTHIERARCHY.ID where EVENTHIERARCHY.ID = EVENT.ID and INNEREVENT.MAINEVENTID is null) > 0
            then 1 else 0 end as ISMULTIPART --Taken from USP_DATAFORMTEMPLATE_LOAD_EVENTISMULTIPART

    from dbo.EVENT 
        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(EVENT.EVENTLOCATIONCONTACTID) NF
        left outer join dbo.EVENTLOCATION on EVENT.EVENTLOCATIONID = EVENTLOCATION.ID
        left outer join dbo.EVENTAUCTION on EVENT.ID = EVENTAUCTION.ID
        left outer join dbo.PROGRAM on EVENT.PROGRAMID = PROGRAM.ID
    where
        (    
            (@NAME is null)
            or
            (EVENT.NAME like ('%' + @NAME + '%'))
        )
        and
        ( 
            (@FROMDATE is null and @TODATE is null)
            or
            (not (EVENT.STARTDATE > @TODATE or EVENT.ENDDATE < @FROMDATE))
        )                        
        and
        (
            (@LOCATION is null)
            or
            (EVENTLOCATION.NAME like ('%' + @LOCATION + '%'))
            or
            (EVENT.PROGRAMID is not null and dbo.UFN_PROGRAM_GETLOCATIONNAME(EVENT.PROGRAMID) like ('%' + @LOCATION + '%'))
        ) 
        and
        (
            (@CATEGORYCODEID is null)
            or
            (@CATEGORYCODEID = EVENT.EVENTCATEGORYCODEID)
            or
            (@CATEGORYCODEID = PROGRAM.PROGRAMCATEGORYCODEID)
        )
        and
        (

            (dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, EVENT.ID) = 1)
        )
        and
        (
            @SITEFILTERMODE = 0
            or 
            (exists (select 1 from dbo.EVENTSITE with (nolock)
                    inner join dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED
                        on UFN_SITE_BUILDDATALISTSITEFILTER.SITEID = EVENTSITE.SITEID  
                    where EVENTSITE.EVENTID = EVENT.ID))
        )

        union all

    select distinct top(@MAXROWS)
        PROGRAM.ID,
        PROGRAM.NAME,
        null as LOOKUPID,
        null as STARTDATE,
        null as ENDDATE,
        null as CONTACT,
        null as SITE,
        dbo.UFN_EVENTLOCATION_GETNAME(PROGRAMLOCATION.EVENTLOCATIONID) as LOCATION,
        dbo.UFN_PROGRAMCATEGORYCODE_GETDESCRIPTION(PROGRAM.PROGRAMCATEGORYCODEID)as CATEGORYCODE,
        0 as EVENTTYPECODE, -- Daily admission

        0 as ISMULTIPART
    from dbo.PROGRAM 
        left outer join dbo.PROGRAMLOCATION on PROGRAMLOCATION.PROGRAMID = PROGRAM.ID
        left outer join dbo.EVENTLOCATION on PROGRAMLOCATION.EVENTLOCATIONID = EVENTLOCATION.ID
    where
        PROGRAM.ISDAILYADMISSION = 1
        and
        (    
            (@NAME is null)
            or
            (PROGRAM.NAME like ('%' + @NAME + '%'))
        )
        and
        (
            (@LOCATION is null)
            or
            (EVENTLOCATION.NAME like ('%' + @LOCATION + '%'))
        ) 
        and
        (
            (@CATEGORYCODEID is null)
            or
            (@CATEGORYCODEID = PROGRAM.PROGRAMCATEGORYCODEID)
        )
        and
        (
            @SITEFILTERMODE = 0
        )

        order by EVENTTYPECODE, STARTDATE;