USP_DESIGNATIONLEVELPROFILEREPORT_RECIPIENTS

Parameters

Parameter Parameter Type Mode Description
@DESIGNATIONLEVELID uniqueidentifier IN
@REPORTUSERID nvarchar(128) IN
@CURRENCYCODE tinyint IN
@ALTREPORTUSERID nvarchar(128) IN

Definition

Copy

                create proc dbo.USP_DESIGNATIONLEVELPROFILEREPORT_RECIPIENTS
                (
                    @DESIGNATIONLEVELID uniqueidentifier,
                    @REPORTUSERID nvarchar(128) = null,
                    @CURRENCYCODE tinyint = 1,
                    @ALTREPORTUSERID nvarchar(128) = null
                )
                as
                    set nocount on;

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

                    if @CURRENCYCODE = 1
                    begin

                        declare @CURRENCYID uniqueidentifier;
                        declare @CURRENCYISO nvarchar(3);
                        declare @CURRENCYDECIMALDIGITS tinyint;
                        declare @CURRENCYSYMBOL nvarchar(5);
                        declare @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;

                        set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select
                            @CURRENCYISO = ISO4217,
                            @CURRENCYDECIMALDIGITS = DECIMALDIGITS,
                            @CURRENCYSYMBOL = CURRENCYSYMBOL,
                            @CURRENCYSYMBOLDISPLAYSETTINGCODE = SYMBOLDISPLAYSETTINGCODE
                        from dbo.CURRENCY where ID = @CURRENCYID;

                        select 
                            CONSTITUENT.[NAME],
                            RECIPIENT.DATE,
                            RECIPIENT.ORGANIZATIONAMOUNT as AMOUNT,
                            @CURRENCYID as CURRENCYID,
                            @CURRENCYISO as CURRENCYISO,
                            @CURRENCYDECIMALDIGITS as CURRENCYDECIMALDIGITS,
                            @CURRENCYSYMBOL as CURRENCYSYMBOL,
                            @CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
                        from 
                            dbo.DESIGNATIONLEVELRECIPIENT RECIPIENT
                            inner join dbo.CONSTITUENT on RECIPIENT.CONSTITUENTID = CONSTITUENT.ID
                        where
                            RECIPIENT.DESIGNATIONLEVELID = @DESIGNATIONLEVELID
                        and (@ISADMIN = 1 or 
                                @APPUSER_IN_NONRACROLE = 1 or
                                dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, RECIPIENT.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1)
                        order by
                            RECIPIENT.SEQUENCE;
                    end
                    else
                        select 
                            CONSTITUENT.[NAME],
                            RECIPIENT.DATE,
                            RECIPIENT.AMOUNT,
                            CURRENCYPROPERTIES.ID as CURRENCYID,
                            CURRENCYPROPERTIES.ISO4217 as CURRENCYISO,
                            CURRENCYPROPERTIES.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
                            CURRENCYPROPERTIES.CURRENCYSYMBOL as CURRENCYSYMBOL,
                            CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
                        from 
                            dbo.DESIGNATIONLEVELRECIPIENT RECIPIENT
                            inner join dbo.CONSTITUENT on RECIPIENT.CONSTITUENTID = CONSTITUENT.ID
                            outer apply dbo.UFN_CURRENCY_GETPROPERTIES(RECIPIENT.BASECURRENCYID) CURRENCYPROPERTIES
                        where
                            RECIPIENT.DESIGNATIONLEVELID = @DESIGNATIONLEVELID
                        and (@ISADMIN = 1 or 
                                @APPUSER_IN_NONRACROLE = 1 or
                                dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, RECIPIENT.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1)
                        order by
                            RECIPIENT.SEQUENCE;