USP_DUPLICATESEARCH_INDIVIDUALSPOUSEBUSINESS
This provides the ability to search for duplicates on individual add forms.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@LASTNAME | nvarchar(100) | IN | Last name |
@FIRSTNAME | nvarchar(50) | IN | First name |
@ADDRESS_POSTCODE | nvarchar(12) | IN | ZIP |
@ADDRESS_ADDRESSBLOCK | nvarchar(150) | IN | Address |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
@MIDDLENAME | nvarchar(50) | IN | |
@TITLECODEID | uniqueidentifier | IN | |
@SUFFIXCODEID | uniqueidentifier | IN | |
@ADDRESS_COUNTRYID | uniqueidentifier | IN | |
@ADDRESS_STATEID | uniqueidentifier | IN | |
@ADDRESS_CITY | nvarchar(50) | IN | |
@BIRTHDATE | UDT_FUZZYDATE | IN | |
@EMAILADDRESS_EMAILADDRESS | UDT_EMAILADDRESS | IN | |
@PHONE_NUMBER | nvarchar(100) | IN | |
@ADDRESS_ADDRESSTYPECODEID | uniqueidentifier | IN | |
@EMAILADDRESS_EMAILADDRESSTYPECODEID | uniqueidentifier | IN | |
@PHONE_PHONETYPECODEID | uniqueidentifier | IN | |
@MAIDENNAME | nvarchar(100) | IN | |
@NICKNAME | nvarchar(50) | IN | |
@GENDERCODE | tinyint | IN | |
@DECEASED | bit | IN | |
@DECEASEDDATE | UDT_FUZZYDATE | IN | |
@GIVESANONYMOUSLY | bit | IN | |
@MARITALSTATUSCODEID | uniqueidentifier | IN | |
@WEBADDRESS | UDT_WEBADDRESS | IN | |
@ADDRESS_HISTORICALSTARTDATE | date | INOUT | |
@ADDRESS_HISTORICALENDDATE | date | INOUT | |
@ADDRESS_DONOTMAIL | bit | INOUT | |
@ADDRESS_DONOTMAILREASONCODEID | uniqueidentifier | INOUT | |
@ADDRESS_STARTDATE | UDT_MONTHDAY | INOUT | |
@ADDRESS_ENDDATE | UDT_MONTHDAY | INOUT | |
@ADDRESS_DPC | nvarchar(max) | INOUT | |
@ADDRESS_CART | nvarchar(max) | INOUT | |
@ADDRESS_LOT | nvarchar(5) | INOUT | |
@ADDRESS_INFOSOURCECODEID | uniqueidentifier | INOUT | |
@ADDRESS_INFOSOURCECOMMENTS | nvarchar(256) | INOUT | |
@ADDRESS_COUNTYCODEID | uniqueidentifier | INOUT | |
@ADDRESS_REGIONCODEID | uniqueidentifier | INOUT | |
@ADDRESS_CONGRESSIONALDISTRICTCODEID | uniqueidentifier | INOUT | |
@ADDRESS_STATEHOUSEDISTRICTCODEID | uniqueidentifier | INOUT | |
@ADDRESS_STATESENATEDISTRICTCODEID | uniqueidentifier | INOUT | |
@ADDRESS_LOCALPRECINCTCODEID | uniqueidentifier | INOUT | |
@ADDRESS_CERTIFICATIONDATA | int | INOUT | |
@ADDRESS_LASTVALIDATIONATTEMPTDATE | date | INOUT | |
@ADDRESS_OMITFROMVALIDATION | bit | INOUT | |
@ADDRESS_VALIDATIONMESSAGE | nvarchar(200) | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CONSTITUENTDUPLICATEMATCHINGENABLED | bit | IN | |
@GENDERCODEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DUPLICATESEARCH_INDIVIDUALSPOUSEBUSINESS (
@LASTNAME nvarchar(100) = '',
@FIRSTNAME nvarchar(50) = '',
@ADDRESS_POSTCODE nvarchar(12) = '',
@ADDRESS_ADDRESSBLOCK nvarchar(150) = '',
@MAXROWS smallint = 100,
@MIDDLENAME nvarchar(50) = null,
@TITLECODEID uniqueidentifier = null,
@SUFFIXCODEID uniqueidentifier = null,
@ADDRESS_COUNTRYID uniqueidentifier = null,
@ADDRESS_STATEID uniqueidentifier = null,
@ADDRESS_CITY nvarchar(50) = null,
@BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
@EMAILADDRESS_EMAILADDRESS dbo.UDT_EMAILADDRESS = '',
@PHONE_NUMBER nvarchar(100) = '',
--Address type code is not used in the search, but must be included
--here to give it a value in the UI code.
@ADDRESS_ADDRESSTYPECODEID uniqueidentifier = null,
@EMAILADDRESS_EMAILADDRESSTYPECODEID uniqueidentifier = null,
@PHONE_PHONETYPECODEID uniqueidentifier = null,
@MAIDENNAME nvarchar(100) = '',
@NICKNAME nvarchar(50) = '',
@GENDERCODE tinyint = 0,
@DECEASED bit = 0,
@DECEASEDDATE dbo.UDT_FUZZYDATE = '00000000',
@GIVESANONYMOUSLY bit = 0,
@MARITALSTATUSCODEID uniqueidentifier = null,
@WEBADDRESS dbo.UDT_WEBADDRESS = '',
@ADDRESS_HISTORICALSTARTDATE date = null output,
@ADDRESS_HISTORICALENDDATE date = null output,
@ADDRESS_DONOTMAIL bit = null output,
@ADDRESS_DONOTMAILREASONCODEID uniqueidentifier = null output,
@ADDRESS_STARTDATE dbo.UDT_MONTHDAY = null output,
@ADDRESS_ENDDATE dbo.UDT_MONTHDAY = null output,
@ADDRESS_DPC nvarchar(max) = null output,
@ADDRESS_CART nvarchar(max) = null output,
@ADDRESS_LOT nvarchar(5) = null output,
@ADDRESS_INFOSOURCECODEID uniqueidentifier = null output,
@ADDRESS_INFOSOURCECOMMENTS nvarchar(256) = null output,
@ADDRESS_COUNTYCODEID uniqueidentifier = null output,
@ADDRESS_REGIONCODEID uniqueidentifier = null output,
@ADDRESS_CONGRESSIONALDISTRICTCODEID uniqueidentifier = null output,
@ADDRESS_STATEHOUSEDISTRICTCODEID uniqueidentifier = null output,
@ADDRESS_STATESENATEDISTRICTCODEID uniqueidentifier = null output,
@ADDRESS_LOCALPRECINCTCODEID uniqueidentifier = null output,
@ADDRESS_CERTIFICATIONDATA int = null output,
@ADDRESS_LASTVALIDATIONATTEMPTDATE date = null output,
@ADDRESS_OMITFROMVALIDATION bit = null output,
@ADDRESS_VALIDATIONMESSAGE nvarchar(200) = null output,
@CURRENTAPPUSERID uniqueidentifier = null,
@CONSTITUENTDUPLICATEMATCHINGENABLED bit = null,
@GENDERCODEID uniqueidentifier = null
) as begin
declare @ISADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
declare @APPUSER_IN_NONRACROLE bit = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
declare @APPUSER_IN_NOSECGROUPROLE bit = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
declare @NULLVALUE uniqueidentifier = (select cast(cast(0 as binary) as uniqueidentifier))
select top(@MAXROWS)
C.ID,
DC.MATCHPERCENTAGE,
C.NAME,
A.ADDRESSBLOCK,
A.CITY,
S.DESCRIPTION,
A.POSTCODE,
C.LOOKUPID,
A.ID ADDRESSID,
DC.EMAILADDRESSID,
DC.PHONEID,
DC.STREETNUMBERRESULT,
DC.STREETNAMERESULT,
DC.POSTCODERESULT,
case when ADDRESSID is not null then dbo.UFN_BUILDFULLADDRESS(ADDRESSID,a.ADDRESSBLOCK,a.CITY,a.STATEID,a.POSTCODE,a.COUNTRYID) else dbo.UFN_CONSTITUENTDUPLICATESEARCH_DEFAULTADDRESS(C.ID,@ADDRESS_ADDRESSTYPECODEID) end as FULLADDRESS
from
dbo.UFN_FINDCONSTITUENTMATCHES_COMPOSITETHRESHOLD_3 (
@TITLECODEID,
@FIRSTNAME,
@MIDDLENAME,
@LASTNAME,
@SUFFIXCODEID,
@ADDRESS_ADDRESSBLOCK,
@ADDRESS_POSTCODE,
@ADDRESS_COUNTRYID,
0,
0,
null,
null,
@EMAILADDRESS_EMAILADDRESS,
@PHONE_NUMBER,
null,
null,
@CURRENTAPPUSERID,
@CONSTITUENTDUPLICATEMATCHINGENABLED
) DC
left outer join dbo.CONSTITUENT C on C.ID = DC.CONSTITUENTID
left outer join dbo.ADDRESS A on A.ID = DC.ADDRESSID
left outer join dbo.STATE S on S.ID = A.STATEID
left join dbo.PHONE P on DC.PHONEID = P.ID
left join dbo.EMAILADDRESS E on DC.EMAILADDRESSID = E.ID
where (@ISADMIN = 1 or @CURRENTAPPUSERID is null or @APPUSER_IN_NONRACROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, DC.CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1)
order by
DC.MATCHPERCENTAGE desc,
case when C.KEYNAME = @LASTNAME then 1 else 2 end,
case when isnull(C.FIRSTNAME,'') = isnull(@FIRSTNAME,'') then 1 else 2 end,
case when isnull(A.ADDRESSTYPECODEID,@NULLVALUE) = isnull(@ADDRESS_ADDRESSTYPECODEID,@NULLVALUE) then 1 else 2 end,
case when isnull(P.PHONETYPECODEID,@NULLVALUE) = isnull(@PHONE_PHONETYPECODEID,@NULLVALUE) then 1 else 2 end,
case when isnull(E.EMAILADDRESSTYPECODEID,@NULLVALUE) = isnull(@EMAILADDRESS_EMAILADDRESSTYPECODEID,@NULLVALUE) then 1 else 2 end,
case when isnull(A.ADDRESSBLOCK,'') = isnull(@ADDRESS_ADDRESSBLOCK,'') then 1 else 2 end,
A.ISPRIMARY desc,
P.ISPRIMARY desc,
E.ISPRIMARY desc
end