USP_DATALIST_HOUSEHOLD_ADDITIONALRELATIONSHIPS
List of all household relationships
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ADDITIONALCONSTITUENTID | uniqueidentifier | IN | Additional constituent |
@HOUSEHOLDCONSTITUENTID | uniqueidentifier | IN | Household constituent |
@HOUSEHOLDID | uniqueidentifier | IN | Household |
@INCLUDEHOUSEHOLDCONSTITUENT | bit | IN | Include household constituent in results |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_HOUSEHOLD_ADDITIONALRELATIONSHIPS
(
@ADDITIONALCONSTITUENTID uniqueidentifier,
@HOUSEHOLDCONSTITUENTID uniqueidentifier = null,
@HOUSEHOLDID uniqueidentifier = null,
@INCLUDEHOUSEHOLDCONSTITUENT bit = 0
)
as
set nocount on;
if @HOUSEHOLDID is null
select
@HOUSEHOLDID = GROUPDATA.ID
from
dbo.GROUPMEMBER
inner join
dbo.GROUPDATA on GROUPMEMBER.GROUPID = GROUPDATA.ID
where
GROUPDATA.GROUPTYPECODE = 0
and dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GROUPMEMBER.ID) = 1
and GROUPMEMBER.MEMBERID = @HOUSEHOLDCONSTITUENTID
--Return all constituents in the same household and their (if they have one) relation to the household constituent
--that are not already related to the additional constituent
select
RELATIONSHIPCONSTITUENT.ID as RELATIONSHIPCONSTITUENTID,
case when RELATIONSHIPCONSTITUENT.ISGROUP = 1 then 2
when RELATIONSHIPCONSTITUENT.ISORGANIZATION = 1 then 1
else 0 end as RELATIONSHIPCONSTITUENTTYPE,
RELATIONSHIPCONSTITUENT_NF.NAME as RELATIONSHIPNAME,
case when ORIGINALCONSTITUENT.FIRSTNAME = '' then ORIGINALCONSTITUENT.KEYNAME
else ORIGINALCONSTITUENT.FIRSTNAME end as CONSTITUENTNAME,
case when RECIPROCALCONSTITUENT.FIRSTNAME = '' then RECIPROCALCONSTITUENT.KEYNAME
else RECIPROCALCONSTITUENT.FIRSTNAME end as RECIPROCALNAME,
dbo.UFN_RELATIONSHIPTYPECODE_GETDESCRIPTION(RELATIONS.RECIPROCALTYPECODEID) RECIPROCALTYPE,
EXISTINGRELATIONSHIP.RECIPROCALTYPECODEID as EXISTINGRELATIONSHIPTYPEID,
EXISTINGRELATIONSHIP.RELATIONSHIPTYPECODEID as EXISTINGRECIPROCALTYPEID,
GROUPMEMBER.ISPRIMARY as PRIMARYGROUPMEMBER,
case when (not SPOUSERELATIONSHIP.ID is null) then 1 else 0 end as HASSPOUSE,
coalesce(SPOUSERELATIONSHIP.RECIPROCALCONSTITUENTID, '00000000-0000-0000-0000-000000000000') as SPOUSEID
from
dbo.GROUPMEMBER
inner join
dbo.CONSTITUENT RELATIONSHIPCONSTITUENT on RELATIONSHIPCONSTITUENT.ID = GROUPMEMBER.MEMBERID
left join
dbo.CONSTITUENT ORIGINALCONSTITUENT on ORIGINALCONSTITUENT.ID = @HOUSEHOLDCONSTITUENTID
inner join
dbo.CONSTITUENT RECIPROCALCONSTITUENT on RECIPROCALCONSTITUENT.ID = @ADDITIONALCONSTITUENTID
left join
dbo.RELATIONSHIP RELATIONS on RELATIONS.RELATIONSHIPCONSTITUENTID = @HOUSEHOLDCONSTITUENTID and RELATIONS.RECIPROCALCONSTITUENTID = GROUPMEMBER.MEMBERID
left join
dbo.RELATIONSHIP EXISTINGRELATIONSHIP on EXISTINGRELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ADDITIONALCONSTITUENTID and EXISTINGRELATIONSHIP.RECIPROCALCONSTITUENTID = GROUPMEMBER.MEMBERID
left join
dbo.RELATIONSHIP SPOUSERELATIONSHIP on (SPOUSERELATIONSHIP.ISSPOUSE = 1) and (SPOUSERELATIONSHIP.RELATIONSHIPCONSTITUENTID = RELATIONSHIPCONSTITUENT.ID)
outer apply
dbo.UFN_CONSTITUENT_DISPLAYNAME(RELATIONSHIPCONSTITUENT.ID) RELATIONSHIPCONSTITUENT_NF
where
GROUPMEMBER.GROUPID = @HOUSEHOLDID
and dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GROUPMEMBER.ID) = 1
and (@INCLUDEHOUSEHOLDCONSTITUENT = 1 or (@HOUSEHOLDCONSTITUENTID is null or GROUPMEMBER.MEMBERID <> @HOUSEHOLDCONSTITUENTID))
and RELATIONSHIPCONSTITUENT.ID <> @ADDITIONALCONSTITUENTID
order by
PRIMARYGROUPMEMBER desc,
case when EXISTINGRELATIONSHIP.RECIPROCALTYPECODEID is null or EXISTINGRELATIONSHIP.RELATIONSHIPTYPECODEID is null then 0 else 1 end,
RELATIONSHIPNAME