USP_DATALIST_MARRIAGECONTACTINFORMATION
This datalist returns all contact information for a constituent, spouse, and household.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@INCLUDEFORMER | bit | IN | Show former contact information |
@INCLUDEADDRESSES | bit | IN | Show addresses |
@INCLUDEPHONES | bit | IN | Show phone numbers |
@INCLUDEEMAIL | bit | IN | Show email |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_MARRIAGECONTACTINFORMATION
(
@CONSTITUENTID uniqueidentifier,
@INCLUDEFORMER bit = 0,
@INCLUDEADDRESSES bit = 1,
@INCLUDEPHONES bit = 1,
@INCLUDEEMAIL bit = 1
)
as
set nocount on;
declare @CURRENTDATE datetime = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
declare @ADDRESSCONTEXTVIEWFORM uniqueidentifier = '78f27fdf-6696-48cc-b6dc-85da47616c1b';
declare @EMAILADDRESSCONTEXTVIEWFORM uniqueidentifier = 'e7c71f82-6faa-47f2-a3c3-3320f3cc6630';
declare @PHONECONTEXTVIEWFORM uniqueidentifier = 'e40ebe2f-bbbd-485e-80bf-107a8e2cdf2b';
with [CONSTITUENTS_CTE] as
(
select @CONSTITUENTID CONSTITUENTID,
0 as ISHOUSEHOLD
union all
select RELATIONSHIP.RECIPROCALCONSTITUENTID CONSTITUENTID,
0 as ISHOUSEHOLD
from dbo.RELATIONSHIP
where RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @CONSTITUENTID and RELATIONSHIP.ISSPOUSE = 1
union all
select GM.GROUPID CONSTITUENTID,
1 as ISHOUSEHOLD
from dbo.GROUPMEMBER as GM
inner join dbo.GROUPDATA as GD on GD.ID = GM.GROUPID
where
GM.MEMBERID = @CONSTITUENTID and
dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GM.ID) = 1 and
GD.GROUPTYPECODE = 0
),
[CONTACTINFO_CTE] as
(
--Addresses
select
ADDRESS.ID,
CONSTITUENT.ID CONSTITUENTID,
NF.NAME CONSTITUENTNAME,
CONSTITUENTS_CTE.ISHOUSEHOLD,
'Address' as CONTACTTYPE,
0 as CONTACTTYPECODE,
@ADDRESSCONTEXTVIEWFORM as VIEWFORMID,
ADDRESS.DESCRIPTION as CONTACTINFO,
dbo.UFN_ADDRESSTYPECODE_GETDESCRIPTION(ADDRESS.ADDRESSTYPECODEID) as TYPE,
ADDRESS.ISPRIMARY,
case when ADDRESS.DONOTMAIL = 0 then '' else 'Do not mail' end as DONOTCONTACT,
ADDRESS.ISCONFIDENTIAL,
ADDRESS.HISTORICALSTARTDATE as STARTDATE,
ADDRESS.HISTORICALENDDATE as ENDDATE,
case when ADDRESS.HISTORICALSTARTDATE is null then '0001-01-01' else ADDRESS.HISTORICALSTARTDATE end as [STARTDATE_SORT],
case when ADDRESS.HISTORICALENDDATE is null then '0001-01-01' else ADDRESS.HISTORICALENDDATE end as [ENDDATE_SORT],
ADDRESS.DATEADDED,
ADDRESSCOORDINATES.ID as ADDRESSCOORDINATESID,
ADDRESSCOORDINATES.PENDINGGEOCODE,
ADDRESSCOORDINATES.INVALIDGEOCODE,
dbo.UFN_MAPPING_BUILDCONTEXTRECORDID(cast('645E6BE7-459C-402b-A03C-67587CA72B94' as uniqueidentifier), @CONSTITUENTID, ADDRESS.ID) as [MAPCONTEXTID]
from dbo.ADDRESS
inner join CONSTITUENTS_CTE on ADDRESS.CONSTITUENTID = CONSTITUENTS_CTE. CONSTITUENTID
inner join dbo.CONSTITUENT on CONSTITUENTS_CTE.CONSTITUENTID = CONSTITUENT.ID
left join dbo.ADDRESSCOORDINATES on ADDRESSCOORDINATES.ADDRESSID = ADDRESS.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
where @INCLUDEADDRESSES = 1
union all
--Emails
select
EMAILADDRESS.ID,
CONSTITUENT.ID CONSTITUENTID,
NF.NAME CONSTITUENTNAME,
CONSTITUENTS_CTE.ISHOUSEHOLD,
'Email' as CONTACTTYPE,
1 as CONTACTTYPECODE,
@EMAILADDRESSCONTEXTVIEWFORM as VIEWFORMID,
EMAILADDRESS.EMAILADDRESS as CONTACTINFO,
dbo.UFN_EMAILADDRESSTYPECODE_GETDESCRIPTION(EMAILADDRESS.EMAILADDRESSTYPECODEID) as TYPE,
EMAILADDRESS.ISPRIMARY,
case when EMAILADDRESS.DONOTEMAIL = 0 then '' else 'Do not email' end as DONOTCONTACT,
0 as ISCONFIDENTIAL,
EMAILADDRESS.STARTDATE as STARTDATE,
EMAILADDRESS.ENDDATE as ENDDATE,
'0001-01-01' as STARTDATE_SORT,
'0001-01-01' as ENDDATE_SORT,
EMAILADDRESS.DATEADDED,
null as ADDRESSCOORDINATESID,
null as PENDINGGEOCODE,
null as INVALIDGEOCODE,
null as MAPCONTEXTID
from dbo.EMAILADDRESS
inner join CONSTITUENTS_CTE on EMAILADDRESS.CONSTITUENTID = CONSTITUENTS_CTE. CONSTITUENTID
inner join dbo.CONSTITUENT on CONSTITUENTS_CTE.CONSTITUENTID = CONSTITUENT.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
where @INCLUDEEMAIL = 1
union all
--Phones
select
PHONE.ID,
CONSTITUENT.ID CONSTITUENTID,
NF.NAME CONSTITUENTNAME,
CONSTITUENTS_CTE.ISHOUSEHOLD,
'Phone number' as CONTACTTYPE,
2 as CONTACTTYPECODE,
@PHONECONTEXTVIEWFORM as VIEWFORMID,
dbo.UFN_PHONE_GETINTERNATIONALNUMBER(PHONE.COUNTRYID, PHONE.NUMBER) as CONTACTINFO,
dbo.UFN_PHONETYPECODE_GETDESCRIPTION(PHONE.PHONETYPECODEID) as TYPE,
PHONE.ISPRIMARY,
case when PHONE.DONOTCALL = 0 then '' else 'Do not call' end as DONOTCONTACT,
PHONE.ISCONFIDENTIAL as ISCONFIDENTIAL,
PHONE.STARTDATE,
PHONE.ENDDATE,
case when PHONE.STARTDATE is null then '0001-01-01' else cast(PHONE.STARTDATE as date) end as [STARTDATE_SORT],
case when PHONE.ENDDATE is null then '0001-01-01' else cast(PHONE.ENDDATE as date) end as [ENDDATE_SORT],
PHONE.DATEADDED,
null as ADDRESSCOORDINATESID,
null as PENDINGGEOCODE,
null as INVALIDGEOCODE,
null as MAPCONTEXTID
from dbo.PHONE
inner join CONSTITUENTS_CTE on PHONE.CONSTITUENTID = CONSTITUENTS_CTE. CONSTITUENTID
inner join dbo.CONSTITUENT on CONSTITUENTS_CTE.CONSTITUENTID = CONSTITUENT.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
where @INCLUDEPHONES = 1
)
select
ID,
CONSTITUENTID,
CONSTITUENTNAME,
ISHOUSEHOLD,
CONTACTTYPE,
CONTACTTYPECODE,
VIEWFORMID,
case when ISCONFIDENTIAL = 0
then CONTACTINFO
else N'(Confidential) ' + CONTACTINFO
end as CONTACTINFO,
case when ((ENDDATE is null) or (ENDDATE > @CURRENTDATE))
then coalesce(TYPE, N'') + N' (Current)'
else coalesce(TYPE, N'') + N' (Former)'
end as TYPE,
case when ISPRIMARY = 0 then '' else 'Yes' end as ISPRIMARY,
DONOTCONTACT,
ISCONFIDENTIAL,
case when ((ENDDATE is null) or (ENDDATE > @CURRENTDATE)) then 0 else 1 end as ISFORMER,
STARTDATE,
ENDDATE,
case when ADDRESSCOORDINATESID is null or PENDINGGEOCODE = 1 or INVALIDGEOCODE = 1 then 0 else 1 end as ISGEOCODED,
case when ADDRESSCOORDINATESID is null then 0 else PENDINGGEOCODE end as PENDINGGEOCODE,
case when ADDRESSCOORDINATESID is null then 0 else INVALIDGEOCODE end as INVALIDGEOCODE,
MAPCONTEXTID,
case when ISCONFIDENTIAL = 1
then 'RES:padlock'
when Len(DONOTCONTACT) > 0
then 'RES:warning'
else 'RES:lv_spacer'
end as IMAGEKEY
from [CONTACTINFO_CTE]
where (@INCLUDEFORMER = 1 or ((ENDDATE is null) or (ENDDATE > @CURRENTDATE)))
order by CONTACTTYPE, ISPRIMARY desc, ISFORMER asc, ENDDATE_SORT desc, STARTDATE_SORT desc, DATEADDED desc