UFN_FINDCONSTITUENTMATCHES_COMPOSITETHRESHOLD_3

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@TITLECODEID uniqueidentifier IN
@FIRSTNAME nvarchar(50) IN
@MIDDLENAME nvarchar(50) IN
@KEYNAME nvarchar(100) IN
@SUFFIXCODEID uniqueidentifier IN
@ADDRESSBLOCK nvarchar(150) IN
@POSTCODE nvarchar(12) IN
@COUNTRYID uniqueidentifier IN
@ISORGANIZATION bit IN
@ISGROUP bit IN
@LOOKUPID nvarchar(100) IN
@ALTERNATELOOKUPIDS xml IN
@EMAILADDRESS nvarchar(100) IN
@PHONENUMBER nvarchar(100) IN
@OVERALLMATCHTHRESHOLD tinyint IN
@AUTOMATCHTHRESHOLD tinyint IN
@CURRENTAPPUSERID uniqueidentifier IN
@CONSTITUENTDUPLICATEMATCHINGENABLED bit IN

Definition

Copy


CREATE function dbo.UFN_FINDCONSTITUENTMATCHES_COMPOSITETHRESHOLD_3 (
  @TITLECODEID uniqueidentifier,
  @FIRSTNAME nvarchar(50),
  @MIDDLENAME nvarchar(50),
  @KEYNAME nvarchar(100),
  @SUFFIXCODEID uniqueidentifier,
  @ADDRESSBLOCK nvarchar(150),
  @POSTCODE nvarchar(12),
  @COUNTRYID uniqueidentifier,
  @ISORGANIZATION bit,
  @ISGROUP bit,
  @LOOKUPID nvarchar(100),
  @ALTERNATELOOKUPIDS xml,
  @EMAILADDRESS nvarchar(100),
  @PHONENUMBER nvarchar(100),
  @OVERALLMATCHTHRESHOLD tinyint,
  @AUTOMATCHTHRESHOLD tinyint,
  @CURRENTAPPUSERID uniqueidentifier,
  @CONSTITUENTDUPLICATEMATCHINGENABLED bit = 0
)
returns @MATCHES table (
  CONSTITUENTID uniqueidentifier,
  ADDRESSID uniqueidentifier,
  EMAILADDRESSID uniqueidentifier,
  PHONEID uniqueidentifier,
  MATCHPERCENTAGE tinyint,
  STREETNUMBERRESULT tinyint,
  STREETNAMERESULT tinyint,
  POSTCODERESULT tinyint
)
as
begin
    -- use the given threshold if provided, otherwise fetch it from the table

  if @OVERALLMATCHTHRESHOLD is null or @AUTOMATCHTHRESHOLD is null
      select top(1)
          @OVERALLMATCHTHRESHOLD = isnull(@OVERALLMATCHTHRESHOLD,OVERALLMATCHTHRESHOLD),
      @AUTOMATCHTHRESHOLD = isnull(@AUTOMATCHTHRESHOLD,AUTOMATCHTHRESHOLD)
      from dbo.CONSTITUENTDUPLICATESEARCHSETTINGS
    where TRANSACTIONTYPE = 'Default Criteria'
      order by DATECHANGED;

  if @AUTOMATCHTHRESHOLD > 0 or @OVERALLMATCHTHRESHOLD > 0
  begin
      insert into @MATCHES
      select CONSTITUENTID, ADDRESSID, EMAILADDRESSID, PHONEID, COMPOSITESCORE, STREETNUMBERRESULT, STREETNAMERESULT, POSTCODERESULT
      from dbo.UFN_FINDCONSTITUENTMATCHES_3(@TITLECODEID, @FIRSTNAME, @MIDDLENAME, @KEYNAME, @SUFFIXCODEID, @ADDRESSBLOCK, @POSTCODE, @COUNTRYID, @ISORGANIZATION, @ISGROUP, @LOOKUPID, @ALTERNATELOOKUPIDS, @EMAILADDRESS, @PHONENUMBER, @OVERALLMATCHTHRESHOLD, @AUTOMATCHTHRESHOLD) as MATCHES
      where COMPOSITESCORE >= isnull(nullif(@OVERALLMATCHTHRESHOLD, 0), @AUTOMATCHTHRESHOLD)
        and (    @CONSTITUENTDUPLICATEMATCHINGENABLED = 0 
            or exists(select SITEID from dbo.UFN_SITEID_MAPFROM_CONSTITUENTID(MATCHES.CONSTITUENTID) as CONSTITUENTSITES where dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, CONSTITUENTSITES.SITEID) = 1)            
            or @CURRENTAPPUSERID is null);
  end
  return
end