USP_DATALIST_RELATIONSHIPS_ALLTOALL2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@ONLYCURRENT | bit | IN | |
@RECIPROCALTYPECODEID | uniqueidentifier | IN | |
@ONLYCONTACTS | bit | IN | |
@SHOWINDIVIDUALS | bit | IN | |
@SHOWORGANIZATIONS | bit | IN | |
@SHOWGROUPS | bit | IN | |
@SHOWHOUSEHOLDS | bit | IN |
Definition
Copy
create procedure dbo.USP_DATALIST_RELATIONSHIPS_ALLTOALL2
(
@CONSTITUENTID uniqueidentifier,
@ONLYCURRENT bit = 0,
@RECIPROCALTYPECODEID uniqueidentifier = null,
@ONLYCONTACTS bit = 0,
@SHOWINDIVIDUALS bit = 1,
@SHOWORGANIZATIONS bit = 1,
@SHOWGROUPS bit = 1,
@SHOWHOUSEHOLDS bit = 1
)
as
set nocount on;
declare @CURRENTDATE datetime
if @ONLYCURRENT = 1
set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
select
RELATIONSHIP.ID,
RELATIONSHIP.RECIPROCALCONSTITUENTID,
(
rtrim(NF.NAME + ' ' +
coalesce(
replace(
stuff(
(select '' + STATUS from
(select ',(Deceased)' STATUS
from dbo.DECEASEDCONSTITUENT DC
where DC.ID = CONSTITUENT.ID
union all
select ',(Inactive)' STATUS
from dbo.CONSTITUENT C
where C.ID = CONSTITUENT.ID
and C.ISINACTIVE=1
) as SUBQ for xml path(''))
,1,1,'')
, '),(', ', ')
,'')
)
) as NAME,
case
when CONSTITUENT.ISORGANIZATION = 1 then 1
when CONSTITUENT.ISGROUP = 1 then
case
when GROUPDATA.GROUPTYPECODE = 0 then 2
else 3
end
else 0
end RECIPROCALCONSTITUENTTYPE,
case
when CONSTITUENT.ISORGANIZATION = 1 then 'Organization'
when CONSTITUENT.ISGROUP = 1 then
case
when GROUPDATA.GROUPTYPECODE = 0 then 'Household'
else 'Group'
end
else 'Individual'
end RELATIONSHIPTYPE,
case
when RELATIONSHIP.ISSPOUSE = 1 then 'Spouse'
when RELATIONSHIP.ISPRIMARYCONTACT = 1 then 'Primary contact'
when RELATIONSHIP.ISCONTACT = 1 then 'Contact'
else ''
end TYPE,
(select DESCRIPTION from dbo.RELATIONSHIPTYPECODE where ID=RELATIONSHIP.RECIPROCALTYPECODEID) RELATIONSHIP,
RELATIONSHIP.STARTDATE,
RELATIONSHIP.ENDDATE,
RELATIONSHIP.ISSPOUSE,
RELATIONSHIP.ISPRIMARYCONTACT,
RELATIONSHIP.ISCONTACT
from
dbo.RELATIONSHIP
inner join dbo.CONSTITUENT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
left join dbo.GROUPDATA on CONSTITUENT.ID = GROUPDATA.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
where
RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @CONSTITUENTID
and (@CURRENTDATE is null
or RELATIONSHIP.STARTDATE is null
or RELATIONSHIP.STARTDATE <= @CURRENTDATE)
and (@CURRENTDATE is null
or RELATIONSHIP.ENDDATE is null
or RELATIONSHIP.ENDDATE >= @CURRENTDATE)
and (@RECIPROCALTYPECODEID is null
or RELATIONSHIP.RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID)
and
(@ONLYCONTACTS = 0
or RELATIONSHIP.ISCONTACT = @ONLYCONTACTS)
and (@SHOWINDIVIDUALS = 1 or CONSTITUENT.ISORGANIZATION = 1 or CONSTITUENT.ISGROUP = 1)
and (@SHOWORGANIZATIONS = 1 or CONSTITUENT.ISORGANIZATION = 0)
and (@SHOWGROUPS = 1 or CONSTITUENT.ISGROUP = 0 or GROUPDATA.GROUPTYPECODE = 0)
and (@SHOWHOUSEHOLDS = 1 or CONSTITUENT.ISGROUP = 0 or GROUPDATA.GROUPTYPECODE = 1)
order by
RELATIONSHIPTYPE,
CONSTITUENT.KEYNAME,
CONSTITUENT.NAME;