USP_ADDRESS_GETLIST_WITHIDSET

Alternate version of USP_ADDRESS_GETLIST which allows for the inclusion of an ID set.

Parameters

Parameter Parameter Type Mode Description
@IDSETID uniqueidentifier IN
@ONLYPRIMARY bit IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy
/*
Generated by Blackbaud Application Framework
Date: 1/27/2010 7:11:48 PM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=2.5.465.0, Culture=neutral, PublicKeyToken=null
*/
CREATE procedure dbo.USP_ADDRESS_GETLIST_WITHIDSET (@IDSETID uniqueidentifier = null, @ONLYPRIMARY bit, @CURRENTAPPUSERID uniqueidentifier)
with execute as owner
as
  set nocount on;

  declare @r int;

  if @IDSETID is null
    begin
      exec @r = dbo.[USP_ADDRESS_GETLIST] @ONLYPRIMARY, @CURRENTAPPUSERID;
    end
  else
    begin
      if not exists(select [ID] from dbo.[IDSETREGISTER] where [ID] = @IDSETID)
        raiserror('ID set does not exist in the database.', 15, 1);

      declare @DBOBJECTNAME nvarchar(max);
      declare @DBOBJECTTYPE smallint;
      declare @SQLTOEXEC nvarchar(max);

      select
        @DBOBJECTNAME = [DBOBJECTNAME],
        @DBOBJECTTYPE = [OBJECTTYPE]
      from dbo.[IDSETREGISTER]
      where [ID] = @IDSETID;

      if left(@DBOBJECTNAME, 1) <> '['
        set @DBOBJECTNAME = '[' + @DBOBJECTNAME + ']';

      if @DBOBJECTTYPE = 1
        begin
          set @DBOBJECTNAME = @DBOBJECTNAME + '(';
          set @DBOBJECTNAME = @DBOBJECTNAME + ')';
        end
      else
        begin
          if @DBOBJECTTYPE = 2
            set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @IDSETID) + ''')';
        end

      set @SQLTOEXEC = N'set nocount on;

                declare @BPID uniqueidentifier = ''3269A1D1-31CB-4D28-945C-B7623A3EFCCA'';

                declare @BYPASSSECURITY bit;
                declare @BYPASSSITESECURITY bit;                
                exec dbo.USP_SECURITY_APPUSER_BYPASSSECURITYFORBUSINESSPROCESS @CURRENTAPPUSERID, @BPID, @BYPASSSECURITY output, @BYPASSSITESECURITY output;                

                select ADDRESS.ID, 
                    ADDRESS.ADDRESSBLOCK,
                    ADDRESS.CITY,
                    coalesce(STATE.ABBREVIATION, '''') [STATE],
                    ADDRESS.POSTCODE,
                    coalesce(COUNTRY.ABBREVIATION, '''') [COUNTRY]
                from dbo.ADDRESS
                    inner join dbo.UFN_CONSTITUENT_GETRECORDSINSELECTION_FORBUSINESSPROCESS(@CURRENTAPPUSERID, null, @BPID, @BYPASSSECURITY, @BYPASSSITESECURITY) CONSTITUENT on ADDRESS.CONSTITUENTID = CONSTITUENT.ID
                    left join dbo.STATE on STATE.ID = ADDRESS.STATEID
                    left join dbo.COUNTRY on COUNTRY.ID = ADDRESS.COUNTRYID

                 inner join dbo.' + @DBOBJECTNAME + ' as [IDSET_a2a414f1_b3c8_4080_a627_0a532962c607] on [CONSTITUENT].[ID] = [IDSET_a2a414f1_b3c8_4080_a627_0a532962c607].[ID] 

                where (@ONLYPRIMARY is null or @ONLYPRIMARY = 0) or ADDRESS.ISPRIMARY = 1
                order by ADDRESS.DATEADDED;';

      exec @r = sp_executesql @SQLTOEXEC, N'@ONLYPRIMARY bit, @CURRENTAPPUSERID uniqueidentifier', @ONLYPRIMARY = @ONLYPRIMARY, @CURRENTAPPUSERID = @CURRENTAPPUSERID;
    end

  return @r;