USP_DATALIST_EVENTCALENDAREVENTSLIST

Displays the events on the event calendar.

Parameters

Parameter Parameter Type Mode Description
@INCLUDEINACTIVE bit IN Include inactive
@ONLYSHOWUSERSEVENTS bit IN Only show my events
@SHOWTASKS bit IN Show tasks
@SHOWCOMPLETEDTASKS bit IN Include completed tasks
@STARTDATE datetime IN Start date
@ENDDATE datetime IN End date
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@EVENTCATEGORYCODEID uniqueidentifier IN Category
@EVENTLOCATIONID uniqueidentifier IN Location
@HIDEEVENTS bit IN Hide events
@SECURITYFEATUREID uniqueidentifier IN Input parameter indicating the ID of the feature to use for site security checking.
@SECURITYFEATURETYPE tinyint IN Input parameter indicating the type of the feature to use for site security checking.
@SITEID uniqueidentifier IN Site

Definition

Copy


        CREATE procedure dbo.USP_DATALIST_EVENTCALENDAREVENTSLIST
        (
            @INCLUDEINACTIVE bit = 0,
            @ONLYSHOWUSERSEVENTS bit = 0,
            @SHOWTASKS bit = 0,
            @SHOWCOMPLETEDTASKS bit = 0,
            @STARTDATE datetime,
            @ENDDATE datetime,
            @CURRENTAPPUSERID uniqueidentifier = null,
            @EVENTCATEGORYCODEID uniqueidentifier = null,
            @EVENTLOCATIONID uniqueidentifier = null,
            @HIDEEVENTS bit = 0,
            @SECURITYFEATUREID uniqueidentifier = null,
            @SECURITYFEATURETYPE tinyint = null,
            @SITEID uniqueidentifier = null
        )
        as
            set nocount on;

               declare @EVENT_TEMP table
            (
                EVENTID uniqueidentifier,
                EVENTNAME nvarchar(100),
                STARTDATE datetime,
                STARTTIME nvarchar(10),
                ENDDATE datetime,
                ENDTIME nvarchar(10),
                DESCRIPTION nvarchar(300)
            )
            declare @TASKS_TEMP table
            (
                TASKID uniqueidentifier,
                EVENTID uniqueidentifier,
                COMPLETEBYDATE datetime,
                STATUSCODE int,
                TASKOVERDUE tinyint,
                TASKNAME nvarchar(100),
                DESCRIPTION nvarchar(300)
            )                          

            declare @RESULTS table
            (
                ID uniqueidentifier,
                EVENTID uniqueidentifier,
                EVENTORTASK tinyint, -- 1 = event, 2 = task

                TASKCOMPLETED tinyint, -- 0 = active, 1 - completed

                TASKOVERDUE tinyint, -- 0 = current , 1 = overdue

                EVENTNAME nvarchar(100),
                STARTDATE datetime,
                STARTTIME nvarchar(10),
                ENDDATE datetime,
                ENDTIME nvarchar(10),
                DESCRIPTION nvarchar(300)
            )

            declare @CURRENT_CONSTITUENTID uniqueidentifier

            set @CURRENT_CONSTITUENTID = dbo.UFN_CONSTITUENT_GETIDFROMAPPUSERID(@CURRENTAPPUSERID)

            if @ONLYSHOWUSERSEVENTS = 1
            begin
                insert into @EVENT_TEMP
                select 
                    EVENT.ID,
                    EVENT.NAME,
                    EVENT.STARTDATE,
                    EVENT.STARTTIME,
                    EVENT.ENDDATE,                        
                    EVENT.ENDTIME,
                    EVENT.DESCRIPTION
                from 
                    dbo.EVENT 
                    inner join dbo.EVENTCOORDINATOR on EVENTCOORDINATOR.EVENTID = EVENT.ID
                where
                    (
                        (@INCLUDEINACTIVE = 1
                        or 
                        (ISACTIVE = 1)
                    )
                    and
                    (
                        (@STARTDATE is null
                        or 
                        (EVENT.STARTDATE between @STARTDATE and @ENDDATE)
                        or
                        (EVENT.ENDDATE between @STARTDATE and @ENDDATE)
                        or
                        (EVENT.STARTDATE <= @STARTDATE and EVENT.ENDDATE >= @ENDDATE)
                    )                        
                    and
                    (
                        (@SITEID is null)
                        or
                        (EVENT.ID in(select EVENTID from dbo.EVENTSITE where EVENTSITE.SITEID = @SITEID))
                    )                
                    and
                    (
                        (@EVENTCATEGORYCODEID is null)
                        or
                        (EVENT.EVENTCATEGORYCODEID = @EVENTCATEGORYCODEID)
                    )
                    and
                    (
                        (@EVENTLOCATIONID is null)
                        or
                        (EVENT.EVENTLOCATIONID = @EVENTLOCATIONID)
                    )
                    and
                    (
                        (@SITEID is null)
                        or
                        (EVENT.ID in(select EVENTID from dbo.EVENTSITE where EVENTSITE.SITEID in(select SITEID from dbo.UFN_SITESFORUSER(@CURRENTAPPUSERID))))
                    )                    
                    and EVENT.PROGRAMID is null
                    and EVENTCOORDINATOR.CONSTITUENTID = @CURRENT_CONSTITUENTID
                    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 @HIDEEVENTS = 0)                    

                order by EVENT.NAME;                    
            end
            else
            begin
                insert into @EVENT_TEMP
                select 
                    EVENT.ID,                        
                    EVENT.NAME,
                    EVENT.STARTDATE,
                    EVENT.STARTTIME,
                    EVENT.ENDDATE,                        
                    EVENT.ENDTIME,
                    EVENT.DESCRIPTION
                from 
                    dbo.EVENT 
                where
                    (
                        (@INCLUDEINACTIVE = 1
                        or 
                        (ISACTIVE = 1)
                    )
                    and
                    (
                        (@STARTDATE is null
                        or 
                        (EVENT.STARTDATE between @STARTDATE and @ENDDATE)
                        or
                        (EVENT.ENDDATE between @STARTDATE and @ENDDATE)
                        or
                        (EVENT.STARTDATE <= @STARTDATE and EVENT.ENDDATE >= @ENDDATE)
                    )                        
                    and
                    (
                        (@SITEID is null)
                        or
                        (EVENT.ID in(select EVENTID from dbo.EVENTSITE where EVENTSITE.SITEID = @SITEID))
                    )                    
                    and
                    (
                        (@EVENTCATEGORYCODEID is null)
                        or
                        (EVENT.EVENTCATEGORYCODEID = @EVENTCATEGORYCODEID)
                    )
                    and
                    (
                        (@EVENTLOCATIONID is null)
                        or
                        (EVENT.EVENTLOCATIONID = @EVENTLOCATIONID)
                    )            
                    and
                    (
                        (@SITEID is null)
                        or
                        (EVENT.ID in(select EVENTID from dbo.EVENTSITE where EVENTSITE.SITEID in(select SITEID from dbo.UFN_SITESFORUSER(@CURRENTAPPUSERID))))
                    )
                    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.PROGRAMID is null
                    and (EVENT.HIDEFROMCALENDAR = 0 and @HIDEEVENTS = 0)
                    order by EVENT.NAME;
            end                    

              if @SHOWTASKS = 1 
                begin
                       if @ONLYSHOWUSERSEVENTS = 1
                            begin
                                insert into @TASKS_TEMP
                                select
                                    TASKS.ID,
                                    TASKS.EVENTID,
                                    TASKS.COMPLETEBYDATE,
                                    TASKS.STATUSCODE,
                                    (case when (TASKS.STATUSCODE = 0 and (datediff(day, GETDATE(), TASKS.COMPLETEBYDATE) < 0)) then 
                                        1
                                    else 
                                        0
                                    end) OVERDUE, --OVERDUE

                                    TASKS.NAME,
                                    ('Owner:' + NF.NAME + (CHAR(10) + CHAR(13))+ 'Status:'+ TASKS.STATUS + (CHAR(10) + CHAR(13)) + TASKS.COMMENT) DESCRIPTION
                                from EVENTTASK TASKS
                                left join @EVENT_TEMP ET on TASKS.EVENTID = ET.EVENTID
                                outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(TASKS.OWNERID) NF
                                where ((TASKS.STATUSCODE = 0) or (@SHOWCOMPLETEDTASKS = 1))
                                    and (TASKS.OWNERID = @CURRENT_CONSTITUENTID 
                                        or exists(SELECT * from EVENTCOORDINATOR EC 
                                                inner join EVENT EV ON EC.EVENTID = EV.ID
                                                inner join EVENTTASK ET ON EV.ID = ET.EVENTID
                                                where ET.ID = TASKS.ID
                                                and (TASKS.OWNERID = @CURRENT_CONSTITUENTID
                                                    or EC.CONSTITUENTID = @CURRENT_CONSTITUENTID)
                                                )
                                        )
                            end
                        else
                            begin
                                insert into @TASKS_TEMP
                                select
                                        TASKS.ID,
                                        TASKS.EVENTID,
                                        TASKS.COMPLETEBYDATE,
                                        TASKS.STATUSCODE,
                                        (case when (TASKS.STATUSCODE = 0 and (datediff(day, GETDATE(), TASKS.COMPLETEBYDATE) < 0)) then 
                                            1
                                        else 
                                            0
                                        end) OVERDUE,
                                        TASKS.NAME,
                                        ('Owner:' + NF.NAME + (CHAR(10) + CHAR(13))+ 'Status:'+ TASKS.STATUS + (CHAR(10) + CHAR(13)) + TASKS.COMMENT) DESCRIPTION
                                    from EVENTTASK TASKS
                                    inner join EVENT ET ON ET.ID = TASKS.EVENTID
                                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(TASKS.OWNERID) NF
                                    where ((TASKS.STATUSCODE = 0) or (@SHOWCOMPLETEDTASKS = 1))                                    
                                    and
                                    (
                                        (@SITEID is null)
                                        or
                                        (ET.ID in(select EVENTID from dbo.EVENTSITE where EVENTSITE.SITEID = @SITEID))
                                    )                    
                                    and
                                    (
                                        (@EVENTCATEGORYCODEID is null)
                                        or
                                        (ET.EVENTCATEGORYCODEID = @EVENTCATEGORYCODEID)
                                    )
                                    and
                                    (
                                        (@EVENTLOCATIONID is null)
                                        or
                                        (ET.EVENTLOCATIONID = @EVENTLOCATIONID)
                                    )  

                            end

                        insert into @RESULTS

                        select
                            ET.EVENTID as ID,
                            ET.EVENTID,
                            1,
                            0,
                            0,
                            ET.EVENTNAME,
                            ET.STARTDATE,
                            ET.STARTTIME, 
                            ET.ENDDATE, 
                            ET.ENDTIME, 
                            ET.DESCRIPTION
                        from @EVENT_TEMP ET

                        union all

                        select
                            TASKS.TASKID,
                            TASKS.EVENTID,
                            2,
                            TASKS.STATUSCODE,
                            TASKS.TASKOVERDUE,
                            TASKS.TASKNAME,
                            TASKS.COMPLETEBYDATE,
                            NULL,
                            TASKS.COMPLETEBYDATE,
                            NULL,
                            TASKS.DESCRIPTION
                        from @TASKS_TEMP TASKS

                end          
            else
                begin
                    insert into @results
                    SELECT 
                        ET.EVENTID as ID,
                        ET.EVENTID,
                        1,
                        0,
                        0,
                        ET.EVENTNAME,
                        ET.STARTDATE,
                        ET.STARTTIME, --STARTTIME

                        ET.ENDDATE, --ENDDATE

                        ET.ENDTIME, -- ENDTIME

                        ET.DESCRIPTION
                    FROM @EVENT_TEMP ET
                end

            select * from @RESULTS