USP_EVENTSEATING_GROUPSNOTSEATEDTOGETHER

Returns members of event groups that are not seated together.

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN
@REPORTUSERID nvarchar(128) IN
@ALTREPORTUSERID nvarchar(128) IN

Definition

Copy


            CREATE procedure dbo.USP_EVENTSEATING_GROUPSNOTSEATEDTOGETHER
            (
                @EVENTID uniqueidentifier,
                @REPORTUSERID nvarchar(128) = null,
                @ALTREPORTUSERID nvarchar(128) = null
            )
            with execute as caller
            as

            declare @CURRENTAPPUSERID uniqueidentifier;
            declare @ISADMIN bit;
            declare @APPUSER_IN_NONRACROLE bit;
            declare @APPUSER_IN_NOSECGROUPROLE bit;

            set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
            set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
            set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
            set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);

                select 
                    dbo.UFN_REGISTRANT_GETNAME(REGISTRANT.ID) as REGISTRANTNAME,
                    EVENTGROUP.NAME as EVENTGROUPNAME,
                    dbo.UFN_EVENTSEATING_GETREGISTRANTSEATPATH(REGISTRANT.ID) as SEATPATH
                from 
                    dbo.REGISTRANT
                    inner join dbo.EVENTGROUPMEMBER on EVENTGROUPMEMBER.REGISTRANTID = REGISTRANT.ID
                    inner join dbo.EVENTGROUP on EVENTGROUP.ID = EVENTGROUPMEMBER.EVENTGROUPID
                    inner join (select 
                                    EVENTGROUPMEMBER.EVENTGROUPID as EVENTGROUPID 
                                from 
                                    dbo.EVENTGROUPMEMBER
                                    inner join dbo.EVENTSEATINGSEAT on EVENTSEATINGSEAT.REGISTRANTID = EVENTGROUPMEMBER.REGISTRANTID
                                group by 
                                    EVENTGROUPMEMBER.EVENTGROUPID, EVENTSEATINGSEAT.EVENTSEATINGSUBSECTIONID
                                ) as EVENTGROUPSUBSECTIONS on EVENTGROUPSUBSECTIONS.EVENTGROUPID = EVENTGROUPMEMBER.EVENTGROUPID
                where 
                    EVENTGROUP.EVENTID = @EVENTID and
                    dbo.UFN_EVENTSEATING_GETREGISTRANTSEATPATH(REGISTRANT.ID) <> ''
                    and (@ISADMIN = 1 or 
                            @APPUSER_IN_NONRACROLE = 1 or
                            dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, REGISTRANT.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1)
                group by 
                    EVENTGROUPSUBSECTIONS.EVENTGROUPID, REGISTRANT.ID, REGISTRANT.CONSTITUENTID, REGISTRANT.GUESTOFREGISTRANTID, EVENTGROUP.NAME
                having 
                    count(EVENTGROUPSUBSECTIONS.EVENTGROUPID)>1
                order by 
                    2;