UFN_CONSTITUENT_GETDUPLICATECANDIDATES_2

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@KEYNAME nvarchar(100) IN
@FIRSTNAME nvarchar(50) IN
@ADDRESSES xml IN
@MAIDENNAME nvarchar(50) IN
@MIDDLENAME nvarchar(50) IN
@PHONES xml IN
@EMAILADDRESSES xml IN
@GENDERCODE tinyint IN
@EMPLOYER nvarchar(100) IN
@TRANSACTIONTYPE nvarchar(100) IN

Definition

Copy


      create function [dbo].[UFN_CONSTITUENT_GETDUPLICATECANDIDATES_2](
                @KEYNAME nvarchar(100),
                @FIRSTNAME nvarchar(50) = '',
                @ADDRESSES xml = null,
                @MAIDENNAME nvarchar(50) = '',
                @MIDDLENAME nvarchar(50) = '',
                @PHONES xml = null,
                @EMAILADDRESSES xml = null,
                @GENDERCODE tinyint = null,
                @EMPLOYER nvarchar(100) = '',
                @TRANSACTIONTYPE nvarchar(100) = null                
            ) 
            returns @DUPLICATECANDIDATES table(
                CONSTITUENTID uniqueidentifier,
                ADDRESSID uniqueidentifier,
                MATCHPERCENTAGE numeric(5, 2)
            ) as
            begin

                declare @DUPLICATESEARCHSETTINGID uniqueidentifier

                select top(1
                    @DUPLICATESEARCHSETTINGID = ID 
                from 
                    dbo.CONSTITUENTDUPLICATESEARCHSETTINGS
                where 
                    TRANSACTIONTYPE = @TRANSACTIONTYPE
                order by
                    DATECHANGED;

                declare @POSTCODE nvarchar(12)
                declare @ADDRESSBLOCK nvarchar(150)
                declare @CITY nvarchar(100)
                declare @STATEID uniqueidentifier
                declare @COUNTRYID uniqueidentifier

                select
                    @POSTCODE = POSTCODE,
                    @ADDRESSBLOCK = ADDRESSBLOCK,
                    @CITY = CITY,
                    @STATEID = @STATEID,
                    @COUNTRYID = @COUNTRYID
                from dbo.UFN_BATCHCONSTITUENTUPDATE_GETADDRESSES_FROMITEMLISTXML(@ADDRESSES)

                declare @PHONENUMBER nvarchar(50);

                select
                    @PHONENUMBER = NUMBER
                from dbo.UFN_BATCHCONSTITUENTUPDATE_GETPHONES_FROMITEMLISTXML(@PHONES)

                declare @EMAILADDRESS nvarchar(100);

                select
                    @EMAILADDRESS = EMAILADDRESS
                from dbo.UFN_BATCHCONSTITUENTUPDATE_GETEMAILADDRESSES_FROMITEMLISTXML(@EMAILADDRESSES)

                --Keep this check

                --keyname is used to filter on keyname soundex and postcode is used to 'like' match

                --on the table expression to find candidates to pass into the fuzzy engine.

                if @KEYNAME is null or len(@KEYNAME) = 0 or @POSTCODE is null or len(@POSTCODE) = 0
                    return        

                insert into @DUPLICATECANDIDATES (
                    CONSTITUENTID,
                    ADDRESSID,
                    MATCHPERCENTAGE
                )
                select 
                    CONSTITUENTID,
                    ADDRESSID,
                    MATCHPERCENTAGE
                from
                    dbo.UFN_CONSTITUENT_GETFUZZYDUPLICATES_2 (
                        @KEYNAME,
                        @FIRSTNAME,
                        @POSTCODE,
                        @ADDRESSBLOCK,
                        @MAIDENNAME,
                        @MIDDLENAME,
                        @PHONENUMBER,
                        @EMAILADDRESS,
                        @GENDERCODE,
                        @CITY,
                        @STATEID,
                        @COUNTRYID,
                        @EMPLOYER,
                        @DUPLICATESEARCHSETTINGID
                    )

                return;
            end