USP_DATALIST_EVENTSWORKCENTERCALENDAREVENTSLIST

Parameters

Parameter Parameter Type Mode Description
@INCLUDEINACTIVE bit IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@CURRENTAPPUSERID uniqueidentifier IN
@EVENTCATEGORYCODEIDS xml IN
@EVENTLOCATIONIDS xml IN
@SECURITYFEATUREID uniqueidentifier IN
@SECURITYFEATURETYPE tinyint IN
@SITEID uniqueidentifier IN
@ONLYSHOWUSERSEVENTS bit IN
@SHOWTASKS bit IN
@SHOWCOMPLETEDTASKS bit IN

Definition

Copy


        CREATE procedure dbo.USP_DATALIST_EVENTSWORKCENTERCALENDAREVENTSLIST
        (
            @INCLUDEINACTIVE bit = 0,
            @STARTDATE datetime = null,
            @ENDDATE datetime = null,
            @CURRENTAPPUSERID uniqueidentifier = null,
            @EVENTCATEGORYCODEIDS xml = null,
            @EVENTLOCATIONIDS xml = null,
            @SECURITYFEATUREID uniqueidentifier = null,
            @SECURITYFEATURETYPE tinyint = null,
            @SITEID uniqueidentifier = null,
             @ONLYSHOWUSERSEVENTS bit = 0,
            @SHOWTASKS bit = 0,
            @SHOWCOMPLETEDTASKS bit = 0
       )
        as
            set nocount on;

            declare @CURRENT_CONSTITUENTID uniqueidentifier
            set @CURRENT_CONSTITUENTID = dbo.UFN_CONSTITUENT_GETIDFROMAPPUSERID(@CURRENTAPPUSERID)

            declare @EVENTCATEGORYCODEIDSTABLE table (
                ID uniqueidentifier,
                SELECTED bit,
                COLORCODE int
            );

            insert into @EVENTCATEGORYCODEIDSTABLE
            select isnull(T.c.value('(EVENTCATEGORYCODEID)[1]','uniqueidentifier'), '00000000-0000-0000-0000-000000000000') as 'ID',
                    T.c.value('(EVENTCATEGORYCODE)[1]','bit') as 'SELECTED',
                    T.c.value('(EVENTCATEGORYCOLORCODE)[1]','integer') as 'COLORCODE'
            from @EVENTCATEGORYCODEIDS.nodes('/EVENTCATEGORYCODEIDS/ITEM') T(c);

            declare @EVENTLOCATIONIDSTABLE table (
                ID uniqueidentifier
            );

            insert into @EVENTLOCATIONIDSTABLE
            select isnull(T.c.value('(EVENTLOCATIONID)[1]','uniqueidentifier'), '00000000-0000-0000-0000-000000000000') as 'ID'
            from @EVENTLOCATIONIDS.nodes('/EVENTLOCATIONIDS/ITEM') T(c)
            where T.c.value('(EVENTLOCATION)[1]','bit') = 1;

            declare @RESULT table (
                ID uniqueidentifier,
                EVENTID uniqueidentifier,                        
                NAME nvarchar(100),
                STARTDATE datetime,
                STARTTIME nvarchar(10),
                ENDDATE datetime,                        
                ENDTIME nvarchar(10),
                DESCRIPTION nvarchar(255),
                EVENTCATEGORYCODE nvarchar(100),
                EVENTLOCATION nvarchar(100),
                AVAILABILITY integer,
                EVENTTYPE integer,
                COLORCODE integer,
                CAPACITY integer,
                EVENTORTASK tinyint, -- 1 = event, 2 = task

                TASKID uniqueidentifier,
                TASKCOMPLETED tinyint,
                TASKOVERDUE tinyint
            );

            insert into @RESULT
            select 
                newid() as ID,
                EVENT.ID as EVENTID,                        
                EVENT.NAME,
                EVENT.STARTDATE,
                EVENT.STARTTIME,
                EVENT.ENDDATE,                        
                EVENT.ENDTIME,
                EVENT.DESCRIPTION,
                dbo.UFN_EVENT_GETCATEGORY(EVENT.ID, EVENT.PROGRAMID) as EVENTCATEGORYCODE,
                coalesce(case
                    when EVENT.PROGRAMID is not null then dbo.UFN_EVENTLOCATION_GETNAME(PROGRAMEVENTLOCATION.EVENTLOCATIONID)
                    else dbo.UFN_EVENTLOCATION_GETNAME(EVENT.EVENTLOCATIONID)
                end, '') as EVENTLOCATION,
                dbo.UFN_EVENT_GETCAPACITY(EVENT.ID) as AVAILABILITY,
                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 EVENTTYPE,
                (select COLORCODE from @EVENTCATEGORYCODEIDSTABLE C where C.ID = coalesce(coalesce(EVENT.EVENTCATEGORYCODEID, PROGRAM.PROGRAMCATEGORYCODEID), '00000000-0000-0000-0000-000000000000')) as COLORCODE,
                coalesce(EVENT.CAPACITY, PROGRAM.CAPACITY) as CAPACITY,
                1,
                null as TASKID,
                0 as TASKCOMPLETED,
            0 as TASKOVERDUE
            from dbo.EVENT 
                left outer join dbo.EVENTAUCTION on EVENT.ID = EVENTAUCTION.ID
                left outer join dbo.PROGRAMEVENTLOCATION on EVENT.ID = PROGRAMEVENTLOCATION.EVENTID
                left outer join dbo.PROGRAM on EVENT.PROGRAMID = PROGRAM.ID
                left outer join dbo.EVENTCOORDINATOR on EVENTCOORDINATOR.EVENTID = EVENT.ID
            where
                (
                    (@INCLUDEINACTIVE = 1
                    or 
                    (EVENT.ISACTIVE = 1)
                )
                and
                (
                    (@STARTDATE is null and @ENDDATE is null)
                    or
                    (not (EVENT.STARTDATE > @ENDDATE or EVENT.ENDDATE < @STARTDATE))
                )                        
                and
                (
                    ((select count(*) from @EVENTCATEGORYCODEIDSTABLE where SELECTED = 1) = 0)
                    or
                    (EVENT.PROGRAMID is null and isnull(EVENT.EVENTCATEGORYCODEID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTCATEGORYCODEIDSTABLE where SELECTED = 1))
                    or
                    (EVENT.PROGRAMID is not null and isnull(PROGRAM.PROGRAMCATEGORYCODEID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTCATEGORYCODEIDSTABLE where SELECTED = 1))
                )
                and
                (
                    ((select count(*) from @EVENTLOCATIONIDSTABLE) = 0)
                    or
                    (EVENT.PROGRAMID is null and isnull(EVENT.EVENTLOCATIONID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTLOCATIONIDSTABLE))
                    or
                    (EVENT.PROGRAMID is not null and isnull(PROGRAMEVENTLOCATION.EVENTLOCATIONID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTLOCATIONIDSTABLE))
                )   
                and
                (
                    (@SITEID is null)
                    or
                    (EVENT.ID in(select EVENTID from dbo.EVENTSITE where EVENTSITE.SITEID = @SITEID))
                )
                and dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, EVENT.ID) = 1
                and (select count(*) from dbo.UFN_SITEID_MAPFROM_EVENTID(EVENT.ID) as EVENTSITE where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[EVENTSITE].[SITEID] or (SITEID is null and [EVENTSITE].[SITEID] is null)))) > 0
                and (EVENT.HIDEFROMCALENDAR = 0)
                and
                (
                    (@ONLYSHOWUSERSEVENTS = 0)
                    or
                    (EVENTCOORDINATOR.ID is not null and EVENTCOORDINATOR.CONSTITUENTID = @CURRENT_CONSTITUENTID)
                );

                if @SHOWTASKS = 1 
                    insert into @RESULT
                    select 
                        newid() as ID,
                        EVENT.ID as EVENTID,                        
                        EVENTTASK.NAME,
                        EVENTTASK.COMPLETEBYDATE,
                        null,
                        EVENTTASK.COMPLETEBYDATE,                        
                        null,
                        ('Owner:' + NF.NAME + (CHAR(10) + CHAR(13))+ 'Status:'+ EVENTTASK.STATUS + (CHAR(10) + CHAR(13)) + EVENTTASK.COMMENT),
                        dbo.UFN_EVENT_GETCATEGORY(EVENT.ID, EVENT.PROGRAMID) as EVENTCATEGORYCODE,
                        coalesce(case
                            when EVENT.PROGRAMID is not null then dbo.UFN_EVENTLOCATION_GETNAME(PROGRAMEVENTLOCATION.EVENTLOCATIONID)
                            else dbo.UFN_EVENTLOCATION_GETNAME(EVENT.EVENTLOCATIONID)
                        end, '') as EVENTLOCATION,
                        0 as AVAILABILITY,
                        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 EVENTTYPE,
                        (select COLORCODE from @EVENTCATEGORYCODEIDSTABLE C where C.ID = coalesce(coalesce(EVENT.EVENTCATEGORYCODEID, PROGRAM.PROGRAMCATEGORYCODEID), '00000000-0000-0000-0000-000000000000')) as COLORCODE,
                        0 as CAPACITY,
                        2,
                        EVENTTASK.ID as TASKID,
                        EVENTTASK.STATUSCODE as TASKCOMPLETED,
                        (case when (EVENTTASK.STATUSCODE = 0 and (datediff(day, GETDATE(), EVENTTASK.COMPLETEBYDATE) < 0)) then 
                                1
                            else 
                                0
                            end) as TASKOVERDUE
                    from EVENTTASK 
                        inner join EVENT on EVENT.ID = EVENTTASK.EVENTID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(EVENTTASK.OWNERID) NF
                        left outer join dbo.EVENTAUCTION on EVENT.ID = EVENTAUCTION.ID
                        left outer join dbo.PROGRAMEVENTLOCATION on EVENT.ID = PROGRAMEVENTLOCATION.EVENTID
                        left outer join dbo.PROGRAM on EVENT.PROGRAMID = PROGRAM.ID
                        left outer join dbo.EVENTCOORDINATOR on EVENTCOORDINATOR.EVENTID = EVENT.ID
                    where 
                        ((EVENTTASK.STATUSCODE = 0) or (@SHOWCOMPLETEDTASKS = 1))    
                        and
                        (
                            (@STARTDATE is null and @ENDDATE is null)
                            or
                            (EVENTTASK.COMPLETEBYDATE <= @ENDDATE and EVENTTASK.COMPLETEBYDATE >= @STARTDATE)
                        )                        
                        and
                        (
                            ((select count(*) from @EVENTCATEGORYCODEIDSTABLE where SELECTED = 1) = 0)
                            or
                            (EVENT.PROGRAMID is null and isnull(EVENT.EVENTCATEGORYCODEID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTCATEGORYCODEIDSTABLE where SELECTED = 1))
                            or
                            (EVENT.PROGRAMID is not null and isnull(PROGRAM.PROGRAMCATEGORYCODEID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTCATEGORYCODEIDSTABLE where SELECTED = 1))
                        )
                        and
                        (
                            ((select count(*) from @EVENTLOCATIONIDSTABLE) = 0)
                            or
                            (EVENT.PROGRAMID is null and isnull(EVENT.EVENTLOCATIONID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTLOCATIONIDSTABLE))
                            or
                            (EVENT.PROGRAMID is not null and isnull(PROGRAMEVENTLOCATION.EVENTLOCATIONID, '00000000-0000-0000-0000-000000000000') in (select ID from @EVENTLOCATIONIDSTABLE))
                        )   
                        and
                        (
                            (@SITEID is null)
                            or
                            (EVENT.ID in(select EVENTID from dbo.EVENTSITE where EVENTSITE.SITEID = @SITEID))
                        )
                        and dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, EVENT.ID) = 1
                        and (select count(*) from dbo.UFN_SITEID_MAPFROM_EVENTID(EVENT.ID) as EVENTSITE where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[EVENTSITE].[SITEID] or (SITEID is null and [EVENTSITE].[SITEID] is null)))) > 0
                        and (EVENT.HIDEFROMCALENDAR = 0)
                        and
                        (
                            (@ONLYSHOWUSERSEVENTS = 0)
                            or
                            (EVENTCOORDINATOR.ID is not null and EVENTCOORDINATOR.CONSTITUENTID = @CURRENT_CONSTITUENTID)
                            or
                            (EVENTTASK.OWNERID is not null and EVENTTASK.OWNERID = @CURRENT_CONSTITUENTID)
                        );

                select * from @RESULT
                order by NAME;