USP_DATALIST_DECEASEDFINDERSUBMITPROCESSOUTPUT

Returns a list of records for DeceasedRecordFinder submit process output.

Parameters

Parameter Parameter Type Mode Description
@SELECTIONID uniqueidentifier IN SelectionID
@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_DECEASEDFINDERSUBMITPROCESSOUTPUT
(
  @SELECTIONID uniqueidentifier = null,
  @ISPRIMARY bit = 0,
  @ADDRESSTYPECODEID uniqueidentifier = null,
  @INCLUDEADDRESSESDNM bit = 0,
  @MAXROWS int,
  @OWNERID uniqueidentifier = null,
  @CURRENTAPPUSERID uniqueidentifier,
  @SECURITYFEATUREID uniqueidentifier = null,
  @SECURITYFEATURETYPE tinyint = null                    
)
as
set nocount on;

declare @BYPASSSECURITY bit;
set @BYPASSSECURITY = 0;
declare @BYPASSSITESECURITY bit;
declare @BPID uniqueidentifier;
set @BPID = '18F4FBE4-8AFB-4FFE-84E1-F1FC59948775';
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

declare @SELECTION table (CONSTITUENTID uniqueidentifier, ADDRESSID uniqueidentifier, LOOKUPID nvarchar(100), CONSTITUENTNAME nvarchar(154), ADDRESS nvarchar(150), CITY nvarchar(50), STATE nvarchar(100), POSTCODE nvarchar(12));

if @BYPASSSECURITY = 0 or @BYPASSSITESECURITY = 0
  begin
    if @SELECTIONID is not null
      begin
        insert into @SELECTION
        (
          CONSTITUENTID, 
          ADDRESSID, 
          LOOKUPID, 
          CONSTITUENTNAME, 
          ADDRESS, 
          CITY, 
          STATE
          POSTCODE
        )
        (
          select top(@MAXROWS
            CONSTITUENTID,
            ADDRESS.ID as ADDRESSID,
            CONSTITUENT.LOOKUPID as LOOKUPID,
            NF.NAME as CONSTITUENTNAME,
            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.COUNTRY 
          on    
            COUNTRY.ID = ADDRESS.COUNTRYID and COUNTRY.USEFORCOAUPDATE = 1
          left join 
            dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITIDS_FORBUSINESSPROCESS(@OWNERID, @BPID) as CONSTIT_RACS 
          on 
            CONSTITUENT.ID = CONSTIT_RACS.ID
          outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
          where 
            (CONSTITUENT.ISORGANIZATION = 0
          and
            (CONSTITUENT.ISGROUP = 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(
            ADDRESS.ADDRESSBLOCK <> ''
            and
            ADDRESS.STATEID is not null
            and
            ADDRESS.CITY <> ''
          )
          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
        insert into @SELECTION
        (
          CONSTITUENTID, 
          ADDRESSID, 
          LOOKUPID, 
          CONSTITUENTNAME, 
          ADDRESS, 
          CITY, 
          STATE
          POSTCODE
        )
        (
          select top(@MAXROWS
            CONSTITUENTID,
            ADDRESS.ID as ADDRESSID,
            CONSTITUENT.LOOKUPID as LOOKUPID,
            NF.NAME as CONSTITUENTNAME,
            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.COUNTRY 
          on 
            COUNTRY.ID = ADDRESS.COUNTRYID and COUNTRY.USEFORCOAUPDATE = 1
          left join 
            dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITIDS_FORBUSINESSPROCESS(@OWNERID, @BPID) as CONSTIT_RACS 
          on 
            CONSTITUENT.ID = CONSTIT_RACS.ID
          outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
          where 
            (CONSTITUENT.ISORGANIZATION = 0
          and
            (CONSTITUENT.ISGROUP = 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(
            ADDRESS.ADDRESSBLOCK <> ''
            and
            ADDRESS.STATEID is not null
            and
            ADDRESS.CITY <> ''
          )                                        
          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
        insert into @SELECTION
          (
            CONSTITUENTID,
            ADDRESSID, 
            LOOKUPID, 
            CONSTITUENTNAME,
            ADDRESS, 
            CITY, 
            STATE
            POSTCODE
          )
          (
            select top(@MAXROWS
              CONSTITUENTID,
              ADDRESS.ID as ADDRESSID,
              CONSTITUENT.LOOKUPID as LOOKUPID,
              NF.NAME as CONSTITUENTNAME,
              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.COUNTRY 
            on 
              COUNTRY.ID = ADDRESS.COUNTRYID and COUNTRY.USEFORCOAUPDATE = 1
            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
            where 
              (CONSTITUENT.ISORGANIZATION = 0)
            and
              (CONSTITUENT.ISGROUP = 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(
              ADDRESS.ADDRESSBLOCK <> ''
              and
              ADDRESS.STATEID is not null
              and
              ADDRESS.CITY <> ''
            )
          );
      end
    else
      begin
        insert into @SELECTION
        (
          CONSTITUENTID, 
          ADDRESSID, 
          LOOKUPID, 
          CONSTITUENTNAME, 
          ADDRESS, 
          CITY, 
          STATE
          POSTCODE
        )
        (
          select top(@MAXROWS
            CONSTITUENTID,
            ADDRESS.ID as ADDRESSID,
            CONSTITUENT.LOOKUPID as LOOKUPID,
            NF.NAME as CONSTITUENTNAME,
            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.COUNTRY 
          on 
            COUNTRY.ID = ADDRESS.COUNTRYID and COUNTRY.USEFORCOAUPDATE = 1
          outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
          where 
            (CONSTITUENT.ISORGANIZATION = 0
          and
            (CONSTITUENT.ISGROUP = 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(
            ADDRESS.ADDRESSBLOCK <> ''
            and
            ADDRESS.STATEID is not null
            and
            ADDRESS.CITY <> ''
          )
        );
      end
  end

begin
  select
    CONSTITUENTID,
    ADDRESSID,
    LOOKUPID,
    CONSTITUENTNAME,
    ADDRESS,
    CITY,
    STATE,
    POSTCODE
  from 
    @SELECTION
end