USP_DATALIST_CONSTITUENTPROFILEDASHBOARDPRIMARYCONTACT

This datalist returns the group/household's primary contact info that is used by the constituent profile dashboard.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Constituent
@ISVISIBLE bit IN Visible
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                    CREATE procedure dbo.USP_DATALIST_CONSTITUENTPROFILEDASHBOARDPRIMARYCONTACT
                    (
                        @CONSTITUENTID uniqueidentifier,
                        @ISVISIBLE bit = 1,
                        @CURRENTAPPUSERID uniqueidentifier
                    )
                    as
                        set nocount on;

                        declare @ISADMIN bit;
                        declare @APPUSER_IN_NONRACROLE bit;
                        declare @APPUSER_IN_NOSECGROUPROLE bit;
                        declare @APPUSER_IN_NONSITEROLE bit;
                        declare @APPUSER_IN_NOSITEROLE bit;

                        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);
                        set @APPUSER_IN_NONSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID);
                        set @APPUSER_IN_NOSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID);

                        if @ISVISIBLE = 1
                        begin
                            select
                                NF.NAME,
                                dbo.UFN_BUILDFULLADDRESS(A.ID, A.ADDRESSBLOCK, A.CITY, A.STATEID, A.POSTCODE, A.COUNTRYID) ADDRESS,
                                case when A.DONOTMAIL = 0 then 'No' else 'Yes' end DONOTMAIL,
                                case when E.DONOTEMAIL = 0 then 'No' else 'Yes' end DONOTEMAIL,
                                case when P.DONOTCALL = 0 then 'No' else 'Yes' end DONOTPHONE,
                                C.WEBADDRESS,
                                dbo.UFN_PHONE_GETINTERNATIONALNUMBER(P.COUNTRYID, P.NUMBER) as NUMBER,
                                E.EMAILADDRESS,
                                C.DATEADDED
                            from dbo.CONSTITUENT C
                            inner join dbo.GROUPMEMBER GM on GM.MEMBERID = C.ID and GM.ISPRIMARY = 1
                            left outer join dbo.ADDRESS A on C.ID = A.CONSTITUENTID and A.ISPRIMARY = 1
                            left outer join dbo.PHONE P on C.ID = P.CONSTITUENTID and P.ISPRIMARY = 1
                            left outer join dbo.EMAILADDRESS E on C.ID = E.CONSTITUENTID and E.ISPRIMARY = 1
                            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(C.ID) NF
                            where
                                GM.GROUPID = @CONSTITUENTID
                                and (@ISADMIN = 1 or 
                                        (@APPUSER_IN_NONRACROLE = 1 or
                                        dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, GM.MEMBERID, @APPUSER_IN_NOSECGROUPROLE) = 1)
                                        and
                                        (@APPUSER_IN_NONSITEROLE = 1 or
                                        dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, GM.MEMBERID, @APPUSER_IN_NOSITEROLE) = 1)
                                    );
                        end