USP_DATALIST_EVENTPROFILEREPORT_REGISTRANT

Returns registrant information for an event.

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN Event ID
@CURRENCYCODE smallint IN Currency Code
@ISVISIBLE bit IN Visible
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_EVENTPROFILEREPORT_REGISTRANT
                (
                    @EVENTID uniqueidentifier,
                    @CURRENCYCODE smallint = null,
                    @ISVISIBLE bit = 1,
                    @CURRENTAPPUSERID uniqueidentifier
                )
                as
                    set nocount on;

                    if @ISVISIBLE = 1
                    begin

                        declare @ISADMIN bit;
                        declare @APPUSER_IN_NONRACROLE bit;
                        declare @APPUSER_IN_NOSECGROUPROLE bit;

                        declare @SELECTEDCURRENCYID uniqueidentifier = null;
                        declare @DECIMALDIGITS tinyint;
                        declare @ISOCURRENCYCODE nvarchar(3);
                        declare @SYMBOLDISPLAYSETTINGCODE tinyint;
                        declare @CURRENCYSYMBOL nvarchar(5);
                        declare @REGISTRATIONTYPE nvarchar(12);

                        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);

                        if @CURRENCYCODE = 0
                            select @SELECTEDCURRENCYID = EVENT.BASECURRENCYID
                            from dbo.EVENT
                            where EVENT.ID = @EVENTID
                        else
                            set @SELECTEDCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select
                            @DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
                            @ISOCURRENCYCODE = CURRENCY.ISO4217,
                            @CURRENCYSYMBOL = CURRENCY.CURRENCYSYMBOL,
                            @SYMBOLDISPLAYSETTINGCODE = CURRENCY.SYMBOLDISPLAYSETTINGCODE
                        from
                            dbo.CURRENCY
                        where
                            CURRENCY.ID = @SELECTEDCURRENCYID;

                        select
                            REG.ID as REGISTRANTID,
                            --dbo.UFN_REGISTRANT_GETNAME(REG.ID) as REGISTRANTNAME,

                            case
                                when REG.CONSTITUENTID is null then dbo.UFN_REGISTRANT_GETNAME(REG.ID)
                                else dbo.UFN_NAMEFORMAT_08(coalesce(C.ID, C2.ID),coalesce(C.KEYNAME,C2.KEYNAME),coalesce(C.FIRSTNAME,C2.FIRSTNAME),coalesce(C.MIDDLENAME,C2.MIDDLENAME),NULL,NULL,NULL,NULL,NULL,NULL,NULL)
                            end [REGISTRANTNAME],
                            dbo.UFN_REGISTRANT_GETHOSTNAME(REG.ID, REG.GUESTOFREGISTRANTID) as HOST,
                            REG.ATTENDED,
                            REGISTRANTBALANCE.BALANCEINCURRENCY as BALANCE,
                            (select count(GUESTS.ID) from dbo.REGISTRANT as GUESTS where GUESTS.GUESTOFREGISTRANTID = REG.ID and dbo.[UFN_REGISTRANT_ISCANCELLED](GUESTS.ID) = 0 and GUESTS.WILLNOTATTEND = 0) as NUMGUESTS,
                            'http://www.blackbaud.com/REGISTRANTID?REGISTRANTID='+convert(nvarchar(36),REG.CONSTITUENTID) as REGISTRANTLINK,
                            'http://www.blackbaud.com/REGISTRANTID?REGISTRANTID='+convert(nvarchar(36),REG.ID) as EVENTREGISTRANTLINK,
                            --0 Registered, 1 Walk-in, 2 Canceled, 3 Will not attend

                            case 
                                when REG.ISWALKIN=1 then 1
                                when dbo.UFN_REGISTRANT_ISCANCELLED(REG.ID) = 1 then 2
                                when REG.WILLNOTATTEND=1 then 3
                                else 0 --Registered

                            end as STATUSCODE,
                            (select count(ID) from dbo.REGISTRANT where REGISTRANT.ID = REG.ID and dbo.[UFN_REGISTRANT_ISCANCELLED](REGISTRANT.ID) = 0 and REGISTRANT.WILLNOTATTEND = 0) as NUMREGISTRANTS,
                            REG.DATEADDED as DATEREGISTERED,
                            @ISOCURRENCYCODE [ISOCURRENCYCODE],
                            @CURRENCYSYMBOL [CURRENCYSYMBOL],
                            @SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
                            @DECIMALDIGITS [DECIMALDIGITS],
                            -- 0 No, 1 Yes, 2 blank, 3 No show

                            case 
                               when REG.WILLNOTATTEND = 1 or dbo.UFN_REGISTRANT_ISCANCELLED(REG.ID) = 1 then 0
                                when REG.ISWALKIN = 0 and REG.WILLNOTATTEND = 0 and dbo.UFN_REGISTRANT_ISCANCELLED(REG.ID) = 0 and REG.ATTENDED=0 and (EVENT.ISPROCESSED=1 or REG.USERMARKEDATTENDANCE = 1) then 3
                                when REG.ISWALKIN = 0 and dbo.UFN_REGISTRANT_ISCANCELLED(REG.ID) = 0 and REG.ATTENDED=0 and EVENT.ISPROCESSED=0 and REG.USERMARKEDATTENDANCE = 0  then 2
                                else REG.ATTENDED
                            end as [ATTENDED2]
                        from
                            dbo.REGISTRANT as REG
                            left join dbo.UFN_EVENTREGISTRANT_GETBALANCEINCURRENCY_BULK(@SELECTEDCURRENCYID) as REGISTRANTBALANCE on REG.ID = REGISTRANTBALANCE.ID
                            inner join EVENT on EVENT.ID = REG.EVENTID
                            left join dbo.CONSTITUENT C on C.ID = REG.CONSTITUENTID
                            left join dbo.CONSTITUENT C2 on C2.ID = REG.GUESTOFREGISTRANTID
                        where
                            REG.EVENTID = @EVENTID
                            and ((REG.CONSTITUENTID is null
                                or (@ISADMIN = 1 or 
                                    @APPUSER_IN_NONRACROLE = 1 or
                                    dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, REG.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1))
                        order by
                            REGISTRANTNAME, HOST;
                    end