USP_DATALIST_ADDRESSVALIDATIONPROCESSOUTPUT

Preview the data to be validated through the address validation process.

Parameters

Parameter Parameter Type Mode Description
@SELECTIONID uniqueidentifier IN SelectionID
@INCLUDECONSTITUENTDNM bit IN Include constituents marked as Do Not Mail
@ISPRIMARY bit IN Is primary
@ADDRESSTYPECODEID uniqueidentifier IN Address type
@INCLUDEADDRESSESDNM bit IN Include addresses marked as Do Not Mail
@MAXROWS int IN Input parameter indicating the maximum number of rows to return.
@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_ADDRESSVALIDATIONPROCESSOUTPUT
(
    @SELECTIONID uniqueidentifier = null,
    @INCLUDECONSTITUENTDNM bit = 0,
    @ISPRIMARY bit = 0,
    @ADDRESSTYPECODEID uniqueidentifier = null,
    @INCLUDEADDRESSESDNM bit = 0,
    @MAXROWS int,
    @OWNERID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @SECURITYFEATUREID uniqueidentifier = null,
    @SECURITYFEATURETYPE tinyint = null
)
as
    set nocount on;

    declare @BYPASSSECURITY bit;
    declare @BPID uniqueidentifier;
    declare @BYPASSSITESECURITY bit;    
    set @BYPASSSECURITY = 0;
    set @BPID = '3e0ecea2-194e-4260-a9d6-4fc21de8867c';
    set @CURRENTAPPUSERID = @OWNERID;
    set @BYPASSSITESECURITY = 0;

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

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

    if @BYPASSSECURITY = 0 or @BYPASSSITESECURITY = 0
    begin
        if @SELECTIONID is not null
        begin
            select top(@MAXROWS) CONSTITUENTID,
                    ADDRESS.ID as ADDRESSID,
                    CONSTITUENT.LOOKUPID as LOOKUPID,
                    CONSTITUENT.NAME as CONSTITUENTNAME,
                    case when CONSTITUENT.ISORGANIZATION = 1 then CONSTITUENT.NAME end as ORGNAME,
                    ADDRESS.ADDRESSBLOCK as ADDRESS,
                    ADDRESS.CITY as CITY,
                    dbo.UFN_STATE_GETDESCRIPTION(ADDRESS.STATEID) as STATE,
                    ADDRESS.POSTCODE as POSTCODE
            from dbo.CONSTITUENT
            inner join  dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on CONSTITUENT.ID = SELECTION.ID and @SELECTIONID is not null
            inner join dbo.ADDRESS on ADDRESS.CONSTITUENTID = CONSTITUENT.ID
            inner join dbo.COUNTRYVALIDATIONINFO on COUNTRYVALIDATIONINFO.ID = ADDRESS.COUNTRYID and COUNTRYVALIDATIONINFO.ALLOWVALIDATION = 1
            left join dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITIDS_FORBUSINESSPROCESS(@OWNERID, @BPID) as CONSTIT_RACS on CONSTITUENT.ID = CONSTIT_RACS.ID
            where (CONSTITUENT.DONOTMAIL = @INCLUDECONSTITUENTDNM or CONSTITUENT.DONOTMAIL = 0) and
                (ADDRESS.ISPRIMARY = @ISPRIMARY or @ISPRIMARY = 0) and
                (ADDRESS.ADDRESSTYPECODEID = @ADDRESSTYPECODEID or @ADDRESSTYPECODEID is null) and
                (ADDRESS.DONOTMAIL = @INCLUDEADDRESSESDNM or ADDRESS.DONOTMAIL = 0) and
                (CONSTITUENT.ID not in (select ID from dbo.DECEASEDCONSTITUENT)) and
                (@BYPASSSECURITY = 1 or CONSTIT_RACS.ID is not null) and
                (@BYPASSSITESECURITY = 1 or
                    exists(
                        select 1 from dbo.CONSTITUENT C
                        left join dbo.CONSTITUENTSITE on CONSTITUENTSITE.CONSTITUENTID = C.ID
                        where
                            C.ID = CONSTITUENT.ID
                        and 
                            (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[CONSTITUENTSITE].[SITEID] or (SITEID is null and [CONSTITUENTSITE].[SITEID] is null)))
                    )
                );

        end
        else
        begin
            select top(@MAXROWS) CONSTITUENTID,
                        ADDRESS.ID as ADDRESSID,
                        CONSTITUENT.LOOKUPID as LOOKUPID,
                        CONSTITUENT.NAME as CONSTITUENTNAME,
                        case when CONSTITUENT.ISORGANIZATION = 1 then CONSTITUENT.NAME end as ORGNAME,
                        ADDRESS.ADDRESSBLOCK as ADDRESS,
                        ADDRESS.CITY as CITY,
                        dbo.UFN_STATE_GETDESCRIPTION(ADDRESS.STATEID) as STATE,
                        ADDRESS.POSTCODE as POSTCODE
                from dbo.CONSTITUENT
                inner join dbo.ADDRESS on ADDRESS.CONSTITUENTID = CONSTITUENT.ID
                inner join dbo.COUNTRYVALIDATIONINFO on COUNTRYVALIDATIONINFO.ID = ADDRESS.COUNTRYID and COUNTRYVALIDATIONINFO.ALLOWVALIDATION = 1
                left join dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITIDS_FORBUSINESSPROCESS(@OWNERID, @BPID) as CONSTIT_RACS on CONSTITUENT.ID = CONSTIT_RACS.ID
                where (CONSTITUENT.DONOTMAIL = @INCLUDECONSTITUENTDNM or CONSTITUENT.DONOTMAIL = 0) and
                    (ADDRESS.ISPRIMARY = @ISPRIMARY or @ISPRIMARY = 0) and
                    (ADDRESS.ADDRESSTYPECODEID = @ADDRESSTYPECODEID or @ADDRESSTYPECODEID is null) and
                    (ADDRESS.DONOTMAIL = @INCLUDEADDRESSESDNM or ADDRESS.DONOTMAIL = 0) and
                    (CONSTITUENT.ID not in (select ID from dbo.DECEASEDCONSTITUENT)) and
                    (@BYPASSSECURITY = 1 or CONSTIT_RACS.ID is not null) and
                    (@BYPASSSITESECURITY = 1 or
                        exists(
                            select 1 from dbo.CONSTITUENT C
                            left join dbo.CONSTITUENTSITE on CONSTITUENTSITE.CONSTITUENTID = C.ID
                            where
                                C.ID = CONSTITUENT.ID
                            and 
                                (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[CONSTITUENTSITE].[SITEID] or (SITEID is null and [CONSTITUENTSITE].[SITEID] is null)))
                        )
                    );
        end
    end
    else
    begin
        if @SELECTIONID is not null
        begin
            select top(@MAXROWS) CONSTITUENTID,
                    ADDRESS.ID as ADDRESSID,
                    CONSTITUENT.LOOKUPID as LOOKUPID,
                    CONSTITUENT.NAME as CONSTITUENTNAME,
                    case when CONSTITUENT.ISORGANIZATION = 1 then CONSTITUENT.NAME end as ORGNAME,
                    ADDRESS.ADDRESSBLOCK as ADDRESS,
                    ADDRESS.CITY as CITY,
                    dbo.UFN_STATE_GETDESCRIPTION(ADDRESS.STATEID) as STATE,
                    ADDRESS.POSTCODE as POSTCODE
            from dbo.CONSTITUENT
            inner join  dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SELECTIONID) SELECTION on CONSTITUENT.ID = SELECTION.ID and @SELECTIONID is not null
            inner join dbo.ADDRESS on ADDRESS.CONSTITUENTID = CONSTITUENT.ID
            inner join dbo.COUNTRYVALIDATIONINFO on COUNTRYVALIDATIONINFO.ID = ADDRESS.COUNTRYID and COUNTRYVALIDATIONINFO.ALLOWVALIDATION = 1
            where (CONSTITUENT.DONOTMAIL = @INCLUDECONSTITUENTDNM or CONSTITUENT.DONOTMAIL = 0) and
                (ADDRESS.ISPRIMARY = @ISPRIMARY or @ISPRIMARY = 0) and
                (ADDRESS.ADDRESSTYPECODEID = @ADDRESSTYPECODEID or @ADDRESSTYPECODEID is null) and
                (ADDRESS.DONOTMAIL = @INCLUDEADDRESSESDNM or ADDRESS.DONOTMAIL = 0) and
                (CONSTITUENT.ID not in (select ID from dbo.DECEASEDCONSTITUENT));
        end
        else
        begin
            select top(@MAXROWS) CONSTITUENTID,
                    ADDRESS.ID as ADDRESSID,
                    CONSTITUENT.LOOKUPID as LOOKUPID,
                    CONSTITUENT.NAME as CONSTITUENTNAME,
                    case when CONSTITUENT.ISORGANIZATION = 1 then CONSTITUENT.NAME end as ORGNAME,
                    ADDRESS.ADDRESSBLOCK as ADDRESS,
                    ADDRESS.CITY as CITY,
                    dbo.UFN_STATE_GETDESCRIPTION(ADDRESS.STATEID) as STATE,
                    ADDRESS.POSTCODE as POSTCODE
            from dbo.CONSTITUENT
            inner join dbo.ADDRESS on ADDRESS.CONSTITUENTID = CONSTITUENT.ID
            inner join dbo.COUNTRYVALIDATIONINFO on COUNTRYVALIDATIONINFO.ID = ADDRESS.COUNTRYID and COUNTRYVALIDATIONINFO.ALLOWVALIDATION = 1
            where (CONSTITUENT.DONOTMAIL = @INCLUDECONSTITUENTDNM or CONSTITUENT.DONOTMAIL = 0) and
                (ADDRESS.ISPRIMARY = @ISPRIMARY or @ISPRIMARY = 0) and
                (ADDRESS.ADDRESSTYPECODEID = @ADDRESSTYPECODEID or @ADDRESSTYPECODEID is null) and
                (ADDRESS.DONOTMAIL = @INCLUDEADDRESSESDNM or ADDRESS.DONOTMAIL = 0) and
                (CONSTITUENT.ID not in (select ID from dbo.DECEASEDCONSTITUENT));
        end
    end