UFN_SPONSORSHIP_GETDUPLICATECANDIDATES

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@CONSTITUENTLOOKUPID uniqueidentifier IN
@NEWCONSTITUENT xml IN
@MAXROWS smallint IN

Definition

Copy


create function dbo.UFN_SPONSORSHIP_GETDUPLICATECANDIDATES
(
@CONSTITUENTID uniqueidentifier,
@CONSTITUENTLOOKUPID uniqueidentifier,
@NEWCONSTITUENT xml = null,
@MAXROWS smallint = 500
)

returns @DUPLICATECANDIDATES table(
                ID uniqueidentifier,
                MATCHPERCENTAGE numeric(5, 2),
        NAME nvarchar(100),
          ADDRESSBLOCK nvarchar(150),
          CITY nvarchar(100),
          ABBREVIATION nvarchar(50),
          POSTCODE nvarchar(50),
          LOOKUPID nvarchar(50)
            ) 
as begin



            declare @NAME nvarchar(100), @KEYNAME nvarchar(100), @FIRSTNAME nvarchar(50), @POSTCODE nvarchar(12), @ADDRESSBLOCK nvarchar(150), @ISORGANIZATION bit, @ISGROUP bit

          if (@CONSTITUENTID is null and @CONSTITUENTLOOKUPID is null)
              begin
                  select
                      @NAME = LASTNAME,
                      @KEYNAME = LASTNAME,
                      @FIRSTNAME = FIRSTNAME,
                      @POSTCODE = ADDRESS_POSTCODE,
                      @ADDRESSBLOCK = ADDRESS_ADDRESSBLOCK,
                      @ISORGANIZATION = ISORGANIZATION,
                      @ISGROUP = ISGROUP
                  from dbo.UFN_REVENUEBATCH_GETNEWCONSTITUENT_FROMITEMLISTXML(@NEWCONSTITUENT)
                    end

            if @KEYNAME is null
            begin
              if exists (select ID from dbo.BATCHSPONSORSHIPCONSTITUENT where ID = @CONSTITUENTID)
              begin
                  select
                  @KEYNAME = KEYNAME,
                  @NAME = NAME,
                  @FIRSTNAME = FIRSTNAME,
                  @POSTCODE = POSTCODE,
                  @ADDRESSBLOCK = ADDRESSBLOCK,
                  @ISORGANIZATION = ISORGANIZATION,
                  @ISGROUP = ISGROUP
                  from dbo.BATCHSPONSORSHIPCONSTITUENT
                  where ID = @CONSTITUENTID
              end
           end 

          if @KEYNAME is not null
          begin
            if @ISORGANIZATION = 0 and @ISGROUP = 0
              insert into @DUPLICATECANDIDATES(ID, MATCHPERCENTAGE, NAME, ADDRESSBLOCK, CITY, ABBREVIATION, POSTCODE, LOOKUPID)         
              select top(@MAXROWS)
                  C.ID,
                  D.MATCHPERCENTAGE,
                  C.NAME,
                  A.ADDRESSBLOCK,
                  A.CITY,
                  S.ABBREVIATION,
                  A.POSTCODE,
                  C.LOOKUPID
              from dbo.UFN_CONSTITUENT_GETDUPLICATECANDIDATES(@KEYNAME, @FIRSTNAME, @POSTCODE, @ADDRESSBLOCK) D
              inner join dbo.CONSTITUENT C on D.CONSTITUENTID = C.ID
              inner join dbo.ADDRESS A on D.ADDRESSID = A.ID
              left join dbo.STATE S on A.STATEID = S.ID
              order by D.MATCHPERCENTAGE desc, C.KEYNAME, C.FIRSTNAME

            else
              if @ISORGANIZATION = 1
                insert into @DUPLICATECANDIDATES(ID, MATCHPERCENTAGE, NAME, ADDRESSBLOCK, CITY, ABBREVIATION, POSTCODE, LOOKUPID)         
                select top(@MAXROWS)
                    C.ID,
                    D.MATCHPERCENTAGE,
                    C.NAME,
                    A.ADDRESSBLOCK,
                    A.CITY,
                    S.ABBREVIATION,
                    A.POSTCODE,
                    C.LOOKUPID
                from dbo.UFN_CONSTITUENT_ORGANIZATION_GETFUZZYDUPLICATES(@NAME, @KEYNAME, @POSTCODE, @ADDRESSBLOCK) D
                inner join dbo.CONSTITUENT C on D.CONSTITUENTID = C.ID
                inner join dbo.ADDRESS A on D.ADDRESSID = A.ID
                left join dbo.STATE S on A.STATEID = S.ID
                order by D.MATCHPERCENTAGE desc, C.KEYNAME, C.FIRSTNAME
          end

  return;
end