USP_DATALIST_EVENTPROFILEREPORT_EVENTDETAILS

Returns detail information for an event.

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN Event ID
@ISVISIBLE bit IN Visible

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_EVENTPROFILEREPORT_EVENTDETAILS
                (
                    @EVENTID uniqueidentifier,
                    @ISVISIBLE bit = 1
                )
                as
                    set nocount on;

                    if @ISVISIBLE = 1
                    begin
                        declare @REGISTERED as integer;
                        select @REGISTERED = COUNT(ID)
                        from dbo.REGISTRANT
                        where
                            EVENTID = @EVENTID and
                            dbo.[UFN_REGISTRANT_ISCANCELLED](REGISTRANT.ID) = 0 and
                            WILLNOTATTEND = 0;

                        declare @ATTENDED as integer;
                        select @ATTENDED = count(ID)
                        from dbo.REGISTRANT
                        where
                            EVENTID = @EVENTID and
                            ATTENDED = 1 and
                            dbo.[UFN_REGISTRANT_ISCANCELLED](REGISTRANT.ID) = 0;

                        declare @INVITED as integer;
                        select @INVITED = count(distinct CONSTITUENTID)
                        from dbo.INVITEE
                        where INVITEE.EVENTID = @EVENTID;

                        declare @CAMPAIGNS as nvarchar(max);
                        select @CAMPAIGNS = dbo.UDA_BUILDLIST(distinct CAMPAIGN.NAME)
                        from dbo.EVENTCAMPAIGN
                            inner join dbo.CAMPAIGN on EVENTCAMPAIGN.CAMPAIGNID = CAMPAIGN.ID
                        where EVENTCAMPAIGN.EVENTID = @EVENTID;

                        declare @REGISTEREDDAYOF as integer;
                        select @REGISTEREDDAYOF = COUNT(REGISTRANT.ID)
                        from dbo.REGISTRANT 
                            inner join dbo.EVENT on EVENT.ID = REGISTRANT.EVENTID 
                        where
                            EVENT.ID = @EVENTID and
                            DATEDIFF(d,REGISTRANT.DATEADDED, EVENT.STARTDATE) = 0 and WILLNOTATTEND = 0;

                        select 
                            LOCATION.NAME as LOCATIONNAME,
                            EVENT.CAPACITY,
                            EVENT.ISACTIVE,
                            @INVITED as INVITED,
                            @REGISTERED as REGISTERED,
                            @ATTENDED as ATTENDED,
                            APPEAL.ID as APPEALID,
                            APPEAL.NAME as APPEAL,
                            'http://www.blackbaud.com/APPEALID?APPEALID=' + CONVERT(nvarchar(36),APPEAL.ID) as APPEALLINK,
                            (
                                select count(distinct INVITEE.CONSTITUENTID)
                                from dbo.INVITEE
                                    left join dbo.REGISTRANT on REGISTRANT.CONSTITUENTID = INVITEE.CONSTITUENTID and REGISTRANT.EVENTID = @EVENTID
                                where
                                    INVITEE.EVENTID = @EVENTID and
                                    INVITEE.DECLINED = 0 and
                                    REGISTRANT.ID is null
                            ) as DIDNOTRESPOND,
                            coalesce(@REGISTERED, 0) - coalesce(@ATTENDED, 0) as NOSHOW,
                            @REGISTEREDDAYOF as REGISTEREDDAYOF,
                            @CAMPAIGNS as CAMPAIGNS
                        from dbo.EVENT
                            left join dbo.EVENTLOCATION LOCATION on EVENT.EVENTLOCATIONID = LOCATION.ID
                            left join dbo.APPEAL on EVENT.APPEALID = APPEAL.ID
                            left join dbo.EVENTCAMPAIGN  on EVENTCAMPAIGN.EVENTID = EVENT.ID
                        where EVENT.ID = @EVENTID;
                    end