USP_DATALIST_ACKNOWLEDGEMENTPROCESS_SEASONALADDRESSOUTPUT

Returns a list of records from the acknowledgement process in seasonal address output form.

Parameters

Parameter Parameter Type Mode Description
@SELECTIONID uniqueidentifier IN SelectionID
@LETTERCODEID uniqueidentifier IN LetterCodeID
@MAXROWS int IN Input parameter indicating the maximum number of rows to return.
@OWNERID uniqueidentifier IN
@STARTDATE datetime IN
@EXCLUDEDECEASED bit IN
@EXCLUDEINACTIVE bit IN
@INCLUSIONS xml IN
@EXCLUSIONS xml IN
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SECURITYFEATUREID uniqueidentifier IN Input parameter indicating the ID of the feature to use for site security checking.
@SECURITYFEATURETYPE tinyint IN Input parameter indicating the type of the feature to use for site security checking.

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_ACKNOWLEDGEMENTPROCESS_SEASONALADDRESSOUTPUT
                (
                    @SELECTIONID uniqueidentifier = null,
                    @LETTERCODEID uniqueidentifier,
                    @MAXROWS int,
                    @OWNERID uniqueidentifier = null,
                    @STARTDATE datetime = null,
                    @EXCLUDEDECEASED bit = null,
                    @EXCLUDEINACTIVE bit = null,
                    @INCLUSIONS xml = null,
                    @EXCLUSIONS xml = null,
                    --@OVERRIDEREQUIREDEXCLUSIONS bit = 0,

                    --@REQUIREDEXCLUSIONS xml = null

                    @CURRENTAPPUSERID uniqueidentifier = null,
                    @SECURITYFEATUREID uniqueidentifier = null,
                    @SECURITYFEATURETYPE tinyint = null                        
                )
                as                    
                    declare @BYPASSSECURITY bit;
                    declare @BPID uniqueidentifier;
                    set @BPID = '02E8A918-FB90-4C3D-A70E-821DB5DA7A1F';
                    set @BYPASSSECURITY = 0;
                    set @CURRENTAPPUSERID = @OWNERID;

                    if @OWNERID is not null
                    begin
                        select @BYPASSSECURITY = dbo.UFN_APPUSER_ISSYSADMIN(@OWNERID);

                        if @BYPASSSECURITY = 0 
                            select @BYPASSSECURITY = dbo.UFN_SECURITY_APPUSER_GRANTED_BUSINESSPROCESS_IN_NONRACROLE(@OWNERID, @BPID);
                    end
                    else
                        set @BYPASSSECURITY = 1;

                    if @BYPASSSECURITY = 0
                    begin
                        if @SELECTIONID is null 
                        begin
                            set nocount on;

                            with REVENUELETTER_CTE as (
                                select 
                                    top (@MAXROWS) REVENUELETTER.ID as REVENUELETTERID 
                                from 
                                    dbo.REVENUELETTER with (nolock)
                                inner join
                                    dbo.REVENUE on REVENUELETTER.REVENUEID = REVENUE.ID
                                inner join
                                    dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITIDS_FORBUSINESSPROCESS(@OWNERID, @BPID) as CONSTIT_RACS on REVENUE.CONSTITUENTID = CONSTIT_RACS.ID
                                inner join 
                                    dbo.UFN_BUSINESSPROCESSCOMMPREF_GETINCLUDEDCONSTITUENT(@STARTDATE, @EXCLUDEDECEASED, @EXCLUDEINACTIVE, @INCLUSIONS, @EXCLUSIONS) AS EXC ON REVENUELETTER.ACKNOWLEDGEEID = EXC.ID
                                where
                                    REVENUELETTER.LETTERCODEID = @LETTERCODEID
                                    and REVENUELETTER.PROCESSDATE is null
                                    and REVENUELETTER.ACKNOWLEDGEDATE is null
                                    and REVENUE.DONOTACKNOWLEDGE = 0
                                    and REVENUE.TRANSACTIONTYPECODE <> 3
                                    and    exists
                                        (
                                            select top 1 RSSUB.ID from dbo.REVENUESPLIT RSSUB
                                            cross apply dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(RSSUB.ID) REVSITES
                                            where RSSUB.REVENUEID = REVENUE.ID
                                            and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))
                                        )
                            )

                            select top (@MAXROWS
                                SEASONALVIEW.*
                            from    
                                REVENUELETTER_CTE RL with (nolock)
                            inner join
                                dbo.V_QUERY_ACKNOWLEDGEMENTPROCESS_SEASONALADDRESSOUTPUT SEASONALVIEW with (nolock) on RL.REVENUELETTERID = SEASONALVIEW.REVENUELETTERID
                            order by
                                SEASONALVIEW.CONSTITUENTNAME;
                        end

                        else
                        begin
                            set nocount on;

                            with REVENUELETTER_CTE as (
                                select 
                                    top (@MAXROWS) REVENUELETTER.ID as REVENUELETTERID 
                                from 
                                    dbo.REVENUELETTER with (nolock)
                                inner join
                                    dbo.REVENUE on REVENUELETTER.REVENUEID = REVENUE.ID
                                inner join 
                                    dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on REVENUELETTER.REVENUEID = SELECTION.ID and @SELECTIONID is not null
                                inner join
                                    dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITIDS_FORBUSINESSPROCESS(@OWNERID, @BPID) as CONSTIT_RACS on REVENUE.CONSTITUENTID = CONSTIT_RACS.ID
                                inner join 
                                    dbo.UFN_BUSINESSPROCESSCOMMPREF_GETINCLUDEDCONSTITUENT(@STARTDATE, @EXCLUDEDECEASED, @EXCLUDEINACTIVE, @INCLUSIONS, @EXCLUSIONS) AS EXC ON REVENUELETTER.ACKNOWLEDGEEID = EXC.ID
                                where
                                    REVENUELETTER.LETTERCODEID = @LETTERCODEID
                                    and REVENUELETTER.PROCESSDATE is null
                                    and REVENUELETTER.ACKNOWLEDGEDATE is null
                                    and REVENUE.DONOTACKNOWLEDGE = 0
                                    and REVENUE.TRANSACTIONTYPECODE <> 3
                                    and    exists
                                        (
                                            select top 1 RSSUB.ID from dbo.REVENUESPLIT RSSUB
                                            cross apply dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(RSSUB.ID) REVSITES
                                            where RSSUB.REVENUEID = REVENUE.ID
                                            and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))
                                        )
                            )
                            select top (@MAXROWS
                                SEASONALVIEW.*
                            from    
                                REVENUELETTER_CTE RL
                            inner join
                                dbo.V_QUERY_ACKNOWLEDGEMENTPROCESS_SEASONALADDRESSOUTPUT SEASONALVIEW with (nolock) on RL.REVENUELETTERID = SEASONALVIEW.REVENUELETTERID
                            order by
                                SEASONALVIEW.CONSTITUENTNAME;

                        end
                    end
                else
                    begin
                        if @SELECTIONID is null 
                        begin
                            set nocount on;

                            with REVENUELETTER_CTE as (
                                select 
                                    top (@MAXROWS) REVENUELETTER.ID as REVENUELETTERID 
                                from 
                                    dbo.REVENUELETTER with (nolock)
                                inner join
                                    dbo.REVENUE on REVENUELETTER.REVENUEID = REVENUE.ID
                                inner join 
                                    dbo.UFN_BUSINESSPROCESSCOMMPREF_GETINCLUDEDCONSTITUENT(@STARTDATE, @EXCLUDEDECEASED, @EXCLUDEINACTIVE, @INCLUSIONS, @EXCLUSIONS) AS EXC ON REVENUELETTER.ACKNOWLEDGEEID = EXC.ID
                                where
                                    REVENUELETTER.LETTERCODEID = @LETTERCODEID
                                    and REVENUELETTER.PROCESSDATE is null
                                    and REVENUELETTER.ACKNOWLEDGEDATE is null
                                    and REVENUE.DONOTACKNOWLEDGE = 0
                                    and REVENUE.TRANSACTIONTYPECODE <> 3
                                    and    exists
                                        (
                                            select top 1 RSSUB.ID from dbo.REVENUESPLIT RSSUB
                                            cross apply dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(RSSUB.ID) REVSITES
                                            where RSSUB.REVENUEID = REVENUE.ID
                                            and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))
                                        )
                            )

                            select top (@MAXROWS
                                SEASONALVIEW.*
                            from    
                                REVENUELETTER_CTE RL with (nolock)
                            inner join
                                dbo.V_QUERY_ACKNOWLEDGEMENTPROCESS_SEASONALADDRESSOUTPUT SEASONALVIEW with (nolock) on RL.REVENUELETTERID = SEASONALVIEW.REVENUELETTERID
                            order by
                                SEASONALVIEW.CONSTITUENTNAME;
                        end

                        else
                        begin
                            set nocount on;

                            with REVENUELETTER_CTE as (
                                select 
                                    top (@MAXROWS) REVENUELETTER.ID as REVENUELETTERID 
                                from 
                                    dbo.REVENUELETTER with (nolock)
                                inner join
                                    dbo.REVENUE on REVENUELETTER.REVENUEID = REVENUE.ID
                                inner join 
                                    dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on REVENUELETTER.REVENUEID = SELECTION.ID and @SELECTIONID is not null
                                inner join 
                                    dbo.UFN_BUSINESSPROCESSCOMMPREF_GETINCLUDEDCONSTITUENT(@STARTDATE, @EXCLUDEDECEASED, @EXCLUDEINACTIVE, @INCLUSIONS, @EXCLUSIONS) AS EXC ON REVENUELETTER.ACKNOWLEDGEEID = EXC.ID
                                where
                                    REVENUELETTER.LETTERCODEID = @LETTERCODEID
                                    and REVENUELETTER.PROCESSDATE is null
                                    and REVENUELETTER.ACKNOWLEDGEDATE is null
                                    and REVENUE.DONOTACKNOWLEDGE = 0
                                    and REVENUE.TRANSACTIONTYPECODE <> 3
                                    and    exists
                                        (
                                            select top 1 RSSUB.ID from dbo.REVENUESPLIT RSSUB
                                            cross apply dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(RSSUB.ID) REVSITES
                                            where RSSUB.REVENUEID = REVENUE.ID
                                            and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))
                                        )
                            )
                            select top (@MAXROWS
                                SEASONALVIEW.*
                            from    
                                REVENUELETTER_CTE RL
                            inner join
                                dbo.V_QUERY_ACKNOWLEDGEMENTPROCESS_SEASONALADDRESSOUTPUT SEASONALVIEW with (nolock) on RL.REVENUELETTERID = SEASONALVIEW.REVENUELETTERID
                            order by
                                SEASONALVIEW.CONSTITUENTNAME;

                        end
                    end