USP_REPORT_PROSPECTASSIGNMENTPROCESS_DATA

Returns the records processed by a prospect assignment process.

Parameters

Parameter Parameter Type Mode Description
@BUSINESSPROCESSSTATUSID uniqueidentifier IN
@REPORTUSERID nvarchar(128) IN
@ALTREPORTUSERID nvarchar(128) IN
@REPORTTYPE tinyint IN

Definition

Copy


            CREATE procedure dbo.USP_REPORT_PROSPECTASSIGNMENTPROCESS_DATA
            (
                @BUSINESSPROCESSSTATUSID uniqueidentifier,
                @REPORTUSERID nvarchar(128),
                @ALTREPORTUSERID nvarchar(128),
                @REPORTTYPE tinyint = 0 -- 0 for success report, 1 for exception report

            )
            with execute as owner
            as
            begin
                declare @CURRENTAPPUSERID uniqueidentifier;
                declare @ISADMIN bit;
                declare @APPUSER_IN_NONRACROLE bit;
                declare @APPUSER_IN_NOSECGROUPROLE bit;
                declare @APPUSER_IN_NONSITEROLE bit;
                declare @APPUSER_IN_NOSITEROLE bit;

                set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
                set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);

                if @ISADMIN <> 1
                    set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);

                if @ISADMIN <> 1 and @APPUSER_IN_NONRACROLE <> 1
                    set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);


                if @ISADMIN <> 1
                    set @APPUSER_IN_NONSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID);

                if @ISADMIN <> 1 and @APPUSER_IN_NONSITEROLE <> 1
                    set @APPUSER_IN_NOSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID);


                declare @TABLENAME nvarchar(256);
                select @TABLENAME = TABLENAME from dbo.BUSINESSPROCESSOUTPUT
                where BUSINESSPROCESSSTATUSID = @BUSINESSPROCESSSTATUSID and upper(TABLEKEY) = 'UPDATEDRECORD';

                declare @SQLTOEXEC nvarchar(max);
                set @SQLTOEXEC = '    select 
                                        POSITIONTYPE,
                                        NF.NAME as PROSPECTNAME,
                                        PROSPECTPLAN.NAME as PLANNAME,
                                        INTERACTION.OBJECTIVE,
                                        REPORTDATA.EXCEPTIONTYPECODE
                                    from dbo.' + @TABLENAME + ' as REPORTDATA
                                    left join dbo.PROSPECTPLAN on PROSPECTPLAN.ID = REPORTDATA.PROSPECTPLANID
                                    left join dbo.INTERACTION on INTERACTION.ID = REPORTDATA.INTERACTIONID
                                    cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(REPORTDATA.PROSPECTID) NF
                                    where
                                        (@ISADMIN = 1 or 
                                        (
                                            -- Prospect constituent security attributes

                                            (
                                                @APPUSER_IN_NONRACROLE = 1 or
                                                dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, REPORTDATA.PROSPECTID, @APPUSER_IN_NOSECGROUPROLE) = 1
                                            ) and
                                            -- Prospect site security

                                            (
                                                @APPUSER_IN_NONSITEROLE = 1 or
                                                dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, REPORTDATA.PROSPECTID, @APPUSER_IN_NOSITEROLE) = 1
                                            ) and
                                            -- Prospect plan site security

                                            (
                                                REPORTDATA.PROSPECTPLANID is null or
                                                @APPUSER_IN_NONSITEROLE = 1 or
                                                exists 
                                                (
                                                    select 1
                                                    from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(REPORTDATA.PROSPECTPLANID) as PLANSITE
                                                    where exists (select 1 from dbo.UFN_REPORT_HASUSERSITEPERMISSION(@CURRENTAPPUSERID, ''0c6113cf-45e7-4543-b5a3-ce6072bcf9a6'', PLANSITE.SITEID))
                                                )
                                            ) and
                                            -- Interaction site security

                                            (
                                                REPORTDATA.INTERACTIONID is null or
                                                @APPUSER_IN_NONSITEROLE = 1 or
                                                exists 
                                                (
                                                    select 1
                                                    from dbo.UFN_SITEID_MAPFROM_INTERACTIONID(REPORTDATA.INTERACTIONID) as INTERACTIONSITE
                                                    where exists (select 1 from dbo.UFN_REPORT_HASUSERSITEPERMISSION(@CURRENTAPPUSERID, ''0c6113cf-45e7-4543-b5a3-ce6072bcf9a6'', INTERACTIONSITE.SITEID))
                                                )
                                            )
                                        ))'

                if @REPORTTYPE = 0
                    set @SQLTOEXEC = @SQLTOEXEC + ' and REPORTDATA.EXCEPTIONTYPECODE is null '
                else
                    set @SQLTOEXEC = @SQLTOEXEC + ' and REPORTDATA.EXCEPTIONTYPECODE is not null '                

                set @SQLTOEXEC = @SQLTOEXEC + ' order by NF.NAME, PROSPECTPLAN.NAME, INTERACTION.OBJECTIVE, REPORTDATA.POSITIONTYPE';

                exec sp_executesql @SQLTOEXEC,N'@CURRENTAPPUSERID uniqueidentifier,@ISADMIN bit,@APPUSER_IN_NONRACROLE bit,@APPUSER_IN_NOSECGROUPROLE bit,@APPUSER_IN_NONSITEROLE bit,@APPUSER_IN_NOSITEROLE bit',@CURRENTAPPUSERID=@CURRENTAPPUSERID,@ISADMIN=@ISADMIN,@APPUSER_IN_NONRACROLE=@APPUSER_IN_NONRACROLE,@APPUSER_IN_NOSECGROUPROLE=@APPUSER_IN_NOSECGROUPROLE,@APPUSER_IN_NONSITEROLE=@APPUSER_IN_NONSITEROLE,@APPUSER_IN_NOSITEROLE=@APPUSER_IN_NOSITEROLE;
            end