USP_DATALIST_ACKNOWLEDGEMENTFORMATTEDOUTPUTEXTENDED

Returns a list of records from the acknowledgement process with selected formatting applied in acknowledgement form.

Parameters

Parameter Parameter Type Mode Description
@SELECTIONID uniqueidentifier IN SelectionID
@MAXROWS int IN Input parameter indicating the maximum number of rows to return.
@LETTERCODEID uniqueidentifier IN LetterCodeID
@STARTDATE datetime IN
@EXCLUDEDECEASED bit IN
@EXCLUDEINACTIVE bit IN
@INCLUSIONS xml IN
@EXCLUSIONS xml IN
@NAMEFORMATPARAMETERID uniqueidentifier IN Name format ID
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN Address format
@PARAMETERSETID uniqueidentifier IN Parameter set ID
@OWNERID uniqueidentifier 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_ACKNOWLEDGEMENTFORMATTEDOUTPUTEXTENDED
                (
                    @SELECTIONID uniqueidentifier = null,
                    @MAXROWS int,
                    @LETTERCODEID uniqueidentifier,
                    @STARTDATE datetime = null,
                    @EXCLUDEDECEASED bit = null,
                    @EXCLUDEINACTIVE bit = null,
                    @INCLUSIONS xml = null,
                    @EXCLUSIONS xml = null,
                    @NAMEFORMATPARAMETERID uniqueidentifier = null,
                    @ADDRESSPROCESSINGOPTIONID uniqueidentifier = null,
                    @PARAMETERSETID uniqueidentifier = null,
                    @OWNERID uniqueidentifier = null,
                    @CURRENTAPPUSERID uniqueidentifier = null,
                    @SECURITYFEATUREID uniqueidentifier = null,
                    @SECURITYFEATURETYPE tinyint = null                    
                )
                as
                /*

                This is not really used anymore for preview but the metadata is for the BP
                The Stored procedure has become to complex to be loaded anymore.
                Ideally we should rewrite

                    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;

                    declare @USEADDRESSEEFORMAT bit
                    declare @ADDRESSEEFORMATID uniqueidentifier
                    declare @ADDRESSEEFORMATISPRIMARY bit
                    declare @ALTADDRESSEEFORMATID uniqueidentifier
                    declare @ALTADDRESSEEFORMATISPRIMARY bit
                    declare @ADDRESSEEFUNCTIONID uniqueidentifier
                    declare @USESALUTATIONFORMAT bit
                    declare @SALUTATIONFORMATID uniqueidentifier
                    declare @SALUTATIONFORMATISPRIMARY bit
                    declare @ALTSALUTATIONFORMATID uniqueidentifier
                    declare @ALTSALUTATIONFORMATISPRIMARY bit
                    declare @SALUTATIONFUNCTIONID uniqueidentifier
                    declare @USECONTACTADDRESSEEFORMAT bit
                    declare @CONTACTADDRESSEEFORMATID uniqueidentifier
                    declare @CONTACTADDRESSEEFORMATISPRIMARY bit
                    declare @ALTCONTACTADDRESSEEFORMATID uniqueidentifier
                    declare @ALTCONTACTADDRESSEEFORMATISPRIMARY bit
                    declare @CONTACTADDRESSEEFUNCTIONID uniqueidentifier
                    declare @ORGSALUTATIONCODE tinyint
                    declare @USECONTACTSALUTATIONFORMAT bit
                    declare @CONTACTSALUTATIONFORMATID uniqueidentifier
                    declare @CONTACTSALUTATIONFORMATISPRIMARY bit
                    declare @ALTCONTACTSALUTATIONFORMATID uniqueidentifier
                    declare @ALTCONTACTSALUTATIONFORMATISPRIMARY bit
                    declare @CONTACTSALUTATIONFUNCTIONID uniqueidentifier
                    declare @CONTACTSALUTATIONOPTIONCODE tinyint
                    declare @CUSTOMNAME nvarchar(100)    

                    declare @INDUSESEASONALADDRESS bit  
                    declare @ORGMAILINGPREFERENCE tinyint
                    declare @INDALTADDRESS1TYPECODEID uniqueidentifier
                    declare @INDALTADDRESS1ISPRIMARY bit
                    declare @INDALTADDRESS2TYPECODEID uniqueidentifier
                    declare @INDALTADDRESS2ISPRIMARY bit
                    declare @ORGALTADDRESS1TYPECODEID uniqueidentifier
                    declare @ORGALTADDRESS1ISPRIMARY bit
                    declare @ORGALTADDRESS2TYPECODEID uniqueidentifier
                    declare @ORGALTADDRESS2ISPRIMARY bit
                    declare @INDINCLUDEWITHNOADDRESS bit
                    declare @ORGINCLUDEWITHNOADDRESS bit
                    declare @ORGINCLUDEWITHNOCONTACT bit
                    declare @INDUSECONSTITUENTPREFS bit
                    declare @ORGUSECONSTITUENTPREFS bit
                    declare @GROUPALTADDRESS1TYPECODEID uniqueidentifier
                    declare @GROUPALTADDRESS1ISPRIMARY bit
                    declare @GROUPALTADDRESS2TYPECODEID uniqueidentifier
                    declare @GROUPALTADDRESS2ISPRIMARY bit
                    declare @GROUPINCLUDEWITHNOADDRESS bit
                    declare @GROUPUSECONSTITUENTPREFS tinyint
                    declare @ORGSENDTOALLCONTACTS bit

                    select @USEADDRESSEEFORMAT=USEADDRESSEEFORMAT,  
                        @ADDRESSEEFORMATID=ADDRESSEEFORMATID,   
                        @ADDRESSEEFORMATISPRIMARY=ADDRESSEEFORMATISPRIMARY,  
                        @ALTADDRESSEEFORMATID=ALTADDRESSEEFORMATID,  
                        @ALTADDRESSEEFORMATISPRIMARY=ALTADDRESSEEFORMATISPRIMARY,  
                        @ADDRESSEEFUNCTIONID=ADDRESSEEFUNCTIONID,  
                        @USESALUTATIONFORMAT=USESALUTATIONFORMAT,  
                        @SALUTATIONFORMATID=SALUTATIONFORMATID,  
                        @SALUTATIONFORMATISPRIMARY=SALUTATIONFORMATISPRIMARY,  
                        @ALTSALUTATIONFORMATID=ALTSALUTATIONFORMATID,  
                        @ALTSALUTATIONFORMATISPRIMARY=ALTSALUTATIONFORMATISPRIMARY,  
                        @SALUTATIONFUNCTIONID=SALUTATIONFUNCTIONID,  
                        @USECONTACTADDRESSEEFORMAT=USECONTACTADDRESSEEFORMAT,  
                        @CONTACTADDRESSEEFORMATID=CONTACTADDRESSEEFORMATID,  
                        @CONTACTADDRESSEEFORMATISPRIMARY=CONTACTADDRESSEEFORMATISPRIMARY,  
                        @ALTCONTACTADDRESSEEFORMATID=ALTCONTACTADDRESSEEFORMATID,  
                        @ALTCONTACTADDRESSEEFORMATISPRIMARY=ALTCONTACTADDRESSEEFORMATISPRIMARY,  
                        @CONTACTADDRESSEEFUNCTIONID=CONTACTADDRESSEEFUNCTIONID,  
                        @ORGSALUTATIONCODE=ORGSALUTATIONCODE,  
                        @USECONTACTSALUTATIONFORMAT=USECONTACTSALUTATIONFORMAT,  
                        @CONTACTSALUTATIONFORMATID=CONTACTSALUTATIONFORMATID,  
                        @CONTACTSALUTATIONFORMATISPRIMARY=CONTACTSALUTATIONFORMATISPRIMARY,  
                        @ALTCONTACTSALUTATIONFORMATID=ALTCONTACTSALUTATIONFORMATID,  
                        @ALTCONTACTSALUTATIONFORMATISPRIMARY=ALTCONTACTSALUTATIONFORMATISPRIMARY,  
                        @CONTACTSALUTATIONFUNCTIONID=CONTACTSALUTATIONFUNCTIONID,  
                        @CONTACTSALUTATIONOPTIONCODE=CONTACTSALUTATIONOPTIONCODE,  
                        @CUSTOMNAME=CUSTOMNAME
                    from dbo.NAMEFORMATPARAMETER  
                    where (ID = @NAMEFORMATPARAMETERID) or (@NAMEFORMATPARAMETERID is null and ISDEFAULT = 1)

                    select @INDUSESEASONALADDRESS=INDUSESEASONALADDRESS,  
                        @ORGMAILINGPREFERENCE=ORGMAILINGPREFERENCE,  
                        @INDALTADDRESS1TYPECODEID=INDALTADDRESS1TYPECODEID,  
                        @INDALTADDRESS1ISPRIMARY=INDALTADDRESS1ISPRIMARY,  
                        @INDALTADDRESS2TYPECODEID=INDALTADDRESS2TYPECODEID,  
                        @INDALTADDRESS2ISPRIMARY=INDALTADDRESS2ISPRIMARY,  
                        @ORGALTADDRESS1TYPECODEID=ORGALTADDRESS1TYPECODEID,  
                        @ORGALTADDRESS1ISPRIMARY=ORGALTADDRESS1ISPRIMARY,  
                        @ORGALTADDRESS2TYPECODEID=ORGALTADDRESS2TYPECODEID,  
                        @ORGALTADDRESS2ISPRIMARY=ORGALTADDRESS2ISPRIMARY,  
                        @INDINCLUDEWITHNOADDRESS=INDINCLUDEWITHNOADDRESS,  
                        @ORGINCLUDEWITHNOADDRESS=ORGINCLUDEWITHNOADDRESS,  
                        @ORGINCLUDEWITHNOCONTACT=ORGINCLUDEWITHNOCONTACT, 
                        @ORGSENDTOALLCONTACTS=ORGSENDTOALLCONTACTS, 
                        @INDUSECONSTITUENTPREFS=INDUSECONSTITUENTPREFS,  
                        @ORGUSECONSTITUENTPREFS=ORGUSECONSTITUENTPREFS,  
                        @GROUPALTADDRESS1TYPECODEID=GROUPALTADDRESS1TYPECODEID,  
                        @GROUPALTADDRESS1ISPRIMARY=GROUPALTADDRESS1ISPRIMARY,  
                        @GROUPALTADDRESS2TYPECODEID=GROUPALTADDRESS2TYPECODEID,  
                        @GROUPALTADDRESS2ISPRIMARY=GROUPALTADDRESS2ISPRIMARY,  
                        @GROUPINCLUDEWITHNOADDRESS=GROUPINCLUDEWITHNOADDRESS,  
                        @GROUPUSECONSTITUENTPREFS=GROUPUSECONSTITUENTPREFS
                    from dbo.ADDRESSPROCESSINGOPTION  
                    where ID = @ADDRESSPROCESSINGOPTIONID or (@ADDRESSPROCESSINGOPTIONID is null and ISDEFAULT = 1); 

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

                            with REVENUELETTER_CTE as (
                                select top (@MAXROWS) 
                                    REVENUELETTER.ID as REVENUELETTERID,
                                    REVENUELETTER.ACKNOWLEDGEEID as ACKNOWLEDGEEID,
                                    REVENUELETTER.REVENUEID
                                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) 
                                STANDARDVIEW.*
                            from    
                                REVENUELETTER_CTE RL with (nolock)
                                cross apply dbo.UFN_QUERY_ACKNOWLEDGEMENTOUTPUTEXTENDED(RL.ACKNOWLEDGEEID, RL.REVENUELETTERID, RL.REVENUEID, @NAMEFORMATPARAMETERID,@ADDRESSPROCESSINGOPTIONID, @PARAMETERSETID, @STARTDATE, @USEADDRESSEEFORMAT,@ADDRESSEEFORMATID, @ADDRESSEEFORMATISPRIMARY, @ALTADDRESSEEFORMATID, @ALTADDRESSEEFORMATISPRIMARY, @ADDRESSEEFUNCTIONID, @USESALUTATIONFORMAT, @SALUTATIONFORMATID, @SALUTATIONFORMATISPRIMARY, @ALTSALUTATIONFORMATID, @ALTSALUTATIONFORMATISPRIMARY, @SALUTATIONFUNCTIONID, @USECONTACTADDRESSEEFORMAT, @CONTACTADDRESSEEFORMATID, @CONTACTADDRESSEEFORMATISPRIMARY, @ALTCONTACTADDRESSEEFORMATID, @ALTCONTACTADDRESSEEFORMATISPRIMARY, @CONTACTADDRESSEEFUNCTIONID, @ORGSALUTATIONCODE , @USECONTACTSALUTATIONFORMAT, @CONTACTSALUTATIONFORMATID, @CONTACTSALUTATIONFORMATISPRIMARY, @ALTCONTACTSALUTATIONFORMATID, @ALTCONTACTSALUTATIONFORMATISPRIMARY, @CONTACTSALUTATIONFUNCTIONID, @CONTACTSALUTATIONOPTIONCODE, @CUSTOMNAME, @INDUSESEASONALADDRESS, @ORGMAILINGPREFERENCE, @INDALTADDRESS1TYPECODEID, @INDALTADDRESS1ISPRIMARY, @INDALTADDRESS2TYPECODEID, @INDALTADDRESS2ISPRIMARY, @ORGALTADDRESS1TYPECODEID, @ORGALTADDRESS1ISPRIMARY, @ORGALTADDRESS2TYPECODEID, @ORGALTADDRESS2ISPRIMARY, @INDINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOCONTACT, @ORGSENDTOALLCONTACTS, @INDUSECONSTITUENTPREFS, @ORGUSECONSTITUENTPREFS, @GROUPALTADDRESS1TYPECODEID, @GROUPALTADDRESS1ISPRIMARY, @GROUPALTADDRESS2TYPECODEID, @GROUPALTADDRESS2ISPRIMARY, @GROUPINCLUDEWITHNOADDRESS, @GROUPUSECONSTITUENTPREFS) STANDARDVIEW
                            --order by
                            --    STANDARDVIEW.CONSTITUENTNAME;
                        end

                        else
                        begin
                            set nocount on;

                            with REVENUELETTER_CTE as (
                                select top (@MAXROWS) 
                                    REVENUELETTER.ID as REVENUELETTERID,
                                    REVENUELETTER.ACKNOWLEDGEEID as ACKNOWLEDGEEID,
                                    REVENUELETTER.REVENUEID
                                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) 
                                STANDARDVIEW.*
                            from    
                                REVENUELETTER_CTE RL
                                cross apply dbo.UFN_QUERY_ACKNOWLEDGEMENTOUTPUTEXTENDED(RL.ACKNOWLEDGEEID, RL.REVENUELETTERID, RL.REVENUEID, @NAMEFORMATPARAMETERID,@ADDRESSPROCESSINGOPTIONID, @PARAMETERSETID, @STARTDATE, @USEADDRESSEEFORMAT,@ADDRESSEEFORMATID, @ADDRESSEEFORMATISPRIMARY, @ALTADDRESSEEFORMATID, @ALTADDRESSEEFORMATISPRIMARY, @ADDRESSEEFUNCTIONID, @USESALUTATIONFORMAT, @SALUTATIONFORMATID, @SALUTATIONFORMATISPRIMARY, @ALTSALUTATIONFORMATID, @ALTSALUTATIONFORMATISPRIMARY, @SALUTATIONFUNCTIONID, @USECONTACTADDRESSEEFORMAT, @CONTACTADDRESSEEFORMATID, @CONTACTADDRESSEEFORMATISPRIMARY, @ALTCONTACTADDRESSEEFORMATID, @ALTCONTACTADDRESSEEFORMATISPRIMARY, @CONTACTADDRESSEEFUNCTIONID, @ORGSALUTATIONCODE , @USECONTACTSALUTATIONFORMAT, @CONTACTSALUTATIONFORMATID, @CONTACTSALUTATIONFORMATISPRIMARY, @ALTCONTACTSALUTATIONFORMATID, @ALTCONTACTSALUTATIONFORMATISPRIMARY, @CONTACTSALUTATIONFUNCTIONID, @CONTACTSALUTATIONOPTIONCODE, @CUSTOMNAME, @INDUSESEASONALADDRESS, @ORGMAILINGPREFERENCE, @INDALTADDRESS1TYPECODEID, @INDALTADDRESS1ISPRIMARY, @INDALTADDRESS2TYPECODEID, @INDALTADDRESS2ISPRIMARY, @ORGALTADDRESS1TYPECODEID, @ORGALTADDRESS1ISPRIMARY, @ORGALTADDRESS2TYPECODEID, @ORGALTADDRESS2ISPRIMARY, @INDINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOCONTACT, @ORGSENDTOALLCONTACTS, @INDUSECONSTITUENTPREFS, @ORGUSECONSTITUENTPREFS, @GROUPALTADDRESS1TYPECODEID, @GROUPALTADDRESS1ISPRIMARY, @GROUPALTADDRESS2TYPECODEID, @GROUPALTADDRESS2ISPRIMARY, @GROUPINCLUDEWITHNOADDRESS, @GROUPUSECONSTITUENTPREFS) STANDARDVIEW
                            --order by
                            --    STANDARDVIEW.CONSTITUENTNAME;
                        end
                    end
                    else
                    begin
                        if @SELECTIONID is null 
                        begin
                            set nocount on;

                            with REVENUELETTER_CTE as (
                                select top (@MAXROWS) 
                                    REVENUELETTER.ID as REVENUELETTERID,
                                    REVENUELETTER.ACKNOWLEDGEEID as ACKNOWLEDGEEID,
                                    REVENUELETTER.REVENUEID
                                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) 
                                STANDARDVIEW.*
                            from    
                                REVENUELETTER_CTE RL with (nolock)
                                cross apply dbo.UFN_QUERY_ACKNOWLEDGEMENTOUTPUTEXTENDED(RL.ACKNOWLEDGEEID, RL.REVENUELETTERID, RL.REVENUEID, @NAMEFORMATPARAMETERID,@ADDRESSPROCESSINGOPTIONID, @PARAMETERSETID, @STARTDATE, @USEADDRESSEEFORMAT,@ADDRESSEEFORMATID, @ADDRESSEEFORMATISPRIMARY, @ALTADDRESSEEFORMATID, @ALTADDRESSEEFORMATISPRIMARY, @ADDRESSEEFUNCTIONID, @USESALUTATIONFORMAT, @SALUTATIONFORMATID, @SALUTATIONFORMATISPRIMARY, @ALTSALUTATIONFORMATID, @ALTSALUTATIONFORMATISPRIMARY, @SALUTATIONFUNCTIONID, @USECONTACTADDRESSEEFORMAT, @CONTACTADDRESSEEFORMATID, @CONTACTADDRESSEEFORMATISPRIMARY, @ALTCONTACTADDRESSEEFORMATID, @ALTCONTACTADDRESSEEFORMATISPRIMARY, @CONTACTADDRESSEEFUNCTIONID, @ORGSALUTATIONCODE , @USECONTACTSALUTATIONFORMAT, @CONTACTSALUTATIONFORMATID, @CONTACTSALUTATIONFORMATISPRIMARY, @ALTCONTACTSALUTATIONFORMATID, @ALTCONTACTSALUTATIONFORMATISPRIMARY, @CONTACTSALUTATIONFUNCTIONID, @CONTACTSALUTATIONOPTIONCODE, @CUSTOMNAME, @INDUSESEASONALADDRESS, @ORGMAILINGPREFERENCE, @INDALTADDRESS1TYPECODEID, @INDALTADDRESS1ISPRIMARY, @INDALTADDRESS2TYPECODEID, @INDALTADDRESS2ISPRIMARY, @ORGALTADDRESS1TYPECODEID, @ORGALTADDRESS1ISPRIMARY, @ORGALTADDRESS2TYPECODEID, @ORGALTADDRESS2ISPRIMARY, @INDINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOCONTACT, @ORGSENDTOALLCONTACTS, @INDUSECONSTITUENTPREFS, @ORGUSECONSTITUENTPREFS, @GROUPALTADDRESS1TYPECODEID, @GROUPALTADDRESS1ISPRIMARY, @GROUPALTADDRESS2TYPECODEID, @GROUPALTADDRESS2ISPRIMARY, @GROUPINCLUDEWITHNOADDRESS, @GROUPUSECONSTITUENTPREFS) STANDARDVIEW
                            --order by
                            --    STANDARDVIEW.CONSTITUENTNAME;
                        end

                        else
                        begin
                            set nocount on;

                            with REVENUELETTER_CTE as (
                                select top (@MAXROWS) 
                                    REVENUELETTER.ID as REVENUELETTERID,
                                    REVENUELETTER.ACKNOWLEDGEEID as ACKNOWLEDGEEID,
                                    REVENUELETTER.REVENUEID
                                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) 
                                STANDARDVIEW.*
                            from    
                                REVENUELETTER_CTE RL
                                cross apply dbo.UFN_QUERY_ACKNOWLEDGEMENTOUTPUTEXTENDED(RL.ACKNOWLEDGEEID, RL.REVENUELETTERID, RL.REVENUEID, @NAMEFORMATPARAMETERID,@ADDRESSPROCESSINGOPTIONID, @PARAMETERSETID, @STARTDATE, @USEADDRESSEEFORMAT,@ADDRESSEEFORMATID, @ADDRESSEEFORMATISPRIMARY, @ALTADDRESSEEFORMATID, @ALTADDRESSEEFORMATISPRIMARY, @ADDRESSEEFUNCTIONID, @USESALUTATIONFORMAT, @SALUTATIONFORMATID, @SALUTATIONFORMATISPRIMARY, @ALTSALUTATIONFORMATID, @ALTSALUTATIONFORMATISPRIMARY, @SALUTATIONFUNCTIONID, @USECONTACTADDRESSEEFORMAT, @CONTACTADDRESSEEFORMATID, @CONTACTADDRESSEEFORMATISPRIMARY, @ALTCONTACTADDRESSEEFORMATID, @ALTCONTACTADDRESSEEFORMATISPRIMARY, @CONTACTADDRESSEEFUNCTIONID, @ORGSALUTATIONCODE , @USECONTACTSALUTATIONFORMAT, @CONTACTSALUTATIONFORMATID, @CONTACTSALUTATIONFORMATISPRIMARY, @ALTCONTACTSALUTATIONFORMATID, @ALTCONTACTSALUTATIONFORMATISPRIMARY, @CONTACTSALUTATIONFUNCTIONID, @CONTACTSALUTATIONOPTIONCODE, @CUSTOMNAME, @INDUSESEASONALADDRESS, @ORGMAILINGPREFERENCE, @INDALTADDRESS1TYPECODEID, @INDALTADDRESS1ISPRIMARY, @INDALTADDRESS2TYPECODEID, @INDALTADDRESS2ISPRIMARY, @ORGALTADDRESS1TYPECODEID, @ORGALTADDRESS1ISPRIMARY, @ORGALTADDRESS2TYPECODEID, @ORGALTADDRESS2ISPRIMARY, @INDINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOCONTACT, @ORGSENDTOALLCONTACTS, @INDUSECONSTITUENTPREFS, @ORGUSECONSTITUENTPREFS, @GROUPALTADDRESS1TYPECODEID, @GROUPALTADDRESS1ISPRIMARY, @GROUPALTADDRESS2TYPECODEID, @GROUPALTADDRESS2ISPRIMARY, @GROUPINCLUDEWITHNOADDRESS, @GROUPUSECONSTITUENTPREFS) STANDARDVIEW
                            --order by
                            --    STANDARDVIEW.CONSTITUENTNAME;
                        end
                    end

                */

                with REVENUELETTER_CTE as (
                    select top (@MAXROWS
                        REVENUELETTER.ID as REVENUELETTERID,
                        REVENUELETTER.ACKNOWLEDGEEID as ACKNOWLEDGEEID,
                        REVENUELETTER.REVENUEID
                    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
                    STANDARDVIEW.*
                from    
                    REVENUELETTER_CTE RL
                    inner join dbo.UFN_QUERY_ACKNOWLEDGEMENTOUTPUTEXTENDED(@NAMEFORMATPARAMETERID,@ADDRESSPROCESSINGOPTIONID, @PARAMETERSETID, @STARTDATE) STANDARDVIEW
                        on STANDARDVIEW.REVENUEID = RL.REVENUEID 
                            and STANDARDVIEW.REVENUELETTERID = RL.REVENUELETTERID 
                            and STANDARDVIEW.CONSTITUENTID = RL.ACKNOWLEDGEEID