USP_RELATIONSHIPTREE_GET
Selects the relationship tree for the given constituent.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_RELATIONSHIPTREE_GET
(
@CONSTITUENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier
) as
set nocount on;
select
R1.ID,
R1.RECIPROCALCONSTITUENTID,
(select DESCRIPTION from dbo.RELATIONSHIPTYPECODE where ID = R1.RECIPROCALTYPECODEID) RELATIONSHIP,
(
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
union all
select ',(Subsidiary organization)' STATUS
from dbo.ORGANIZATIONDATA OD
where OD.ID = CONSTITUENT.ID
and OD.PARENTCORPID = @CONSTITUENTID
union all
select ',(Parent organization)' STATUS
from dbo.ORGANIZATIONDATA OD
where OD.ID = @CONSTITUENTID
and OD.PARENTCORPID = CONSTITUENT.ID
) as SUBQ for xml path(''))
,1,1,'')
, '),(', ', ')
,'')
)
) as NAME,
CONSTITUENT.ISINACTIVE,
(select sum(CNT) from (
select count(ID) CNT from dbo.RELATIONSHIP R2 where R2.RELATIONSHIPCONSTITUENTID = R1.RECIPROCALCONSTITUENTID
union all
select count(ID) CNT from dbo.ORGANIZATIONDATA OD
where OD.PARENTCORPID = R1.RECIPROCALCONSTITUENTID
and not exists(select ID from dbo.RELATIONSHIP R2 where R2.RELATIONSHIPCONSTITUENTID = R1.RECIPROCALCONSTITUENTID)
union all
select count(ID) CNT from dbo.ORGANIZATIONDATA OD
where OD.PARENTCORPID is not null and OD.ID = R1.RECIPROCALCONSTITUENTID
and not exists(select ID from dbo.RELATIONSHIP R2 where R2.RELATIONSHIPCONSTITUENTID = R1.RECIPROCALCONSTITUENTID)
) a
) COUNT,
R1.ISSPOUSE,
CONSTITUENT.ISORGANIZATION,
dbo.UFN_SECURITY_APPUSER_GRANTED_DATALIST_FORCONSTIT(@CURRENTAPPUSERID,'9297f3a4-c0c5-4947-9cb2-f1d9eb15b155',R1.RECIPROCALCONSTITUENTID) LOADDATALIST,
dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID,'0C836902-A398-47a0-91EB-8B66E434148E',R1.RECIPROCALCONSTITUENTID) LOADPAGE,
CONSTITUENT.ISGROUP,
case when GD.GROUPTYPECODE = 0 then 1 else 0 end ISHOUSEHOLD
from
dbo.RELATIONSHIP R1
inner join
dbo.CONSTITUENT on R1.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
left outer join
dbo.GROUPDATA GD on GD.ID = R1.RECIPROCALCONSTITUENTID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
where
R1.RELATIONSHIPCONSTITUENTID = @CONSTITUENTID
union all
select
NULL as ID, --RELATIONSHIPSID,
PARENTCORPID as RECIPROCALCONSTITUENTID,
'' RELATIONSHIP,
(
rtrim(NF.NAME + ' ' +
coalesce(
replace(
stuff(
(select '' + STATUS from
(select ',(Inactive)' STATUS
from dbo.CONSTITUENT C
where C.ID = CONSTITUENT.ID
and C.ISINACTIVE=1
union all
select ',(Parent organization)' STATUS
) as SUBQ for xml path(''))
,1,1,'')
, '),(', ', ')
,'')
)
) as NAME,
CONSTITUENT.ISINACTIVE,
(select sum(CNT) from (
select count(ID) CNT from dbo.ORGANIZATIONDATA OD where OD.PARENTCORPID = ORGANIZATIONDATA.PARENTCORPID
union all
select count(ID) CNT from dbo.ORGANIZATIONDATA OD where OD.PARENTCORPID is not null and OD.ID = ORGANIZATIONDATA.PARENTCORPID
) a
) COUNT,
0 as ISSPOUSE,
1 as ISORGANIZATION,
dbo.UFN_SECURITY_APPUSER_GRANTED_DATALIST_FORCONSTIT(@CURRENTAPPUSERID,'9297f3a4-c0c5-4947-9cb2-f1d9eb15b155',PARENTCORPID) LOADDATALIST,
dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID,'0C836902-A398-47a0-91EB-8B66E434148E',PARENTCORPID) LOADPAGE,
0 as ISGROUP,
0 as ISHOUSEHOLD
from ORGANIZATIONDATA
inner join dbo.CONSTITUENT
on ORGANIZATIONDATA.PARENTCORPID = CONSTITUENT.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
where ORGANIZATIONDATA.ID = @CONSTITUENTID
and not exists(select ID from dbo.RELATIONSHIP
where RELATIONSHIPCONSTITUENTID = @CONSTITUENTID
and RECIPROCALCONSTITUENTID = PARENTCORPID)
union all
select
NULL as ID, --RELATIONSHIPSID,
ORGANIZATIONDATA.ID as RECIPROCALCONSTITUENTID,
'' RELATIONSHIP,
(
rtrim(NF.NAME + ' ' +
coalesce(
replace(
stuff(
(select '' + STATUS from
(select ',(Inactive)' STATUS
from dbo.CONSTITUENT C
where C.ID = CONSTITUENT.ID
and C.ISINACTIVE=1
union all
select ',(Subsidiary organization)' STATUS
) as SUBQ for xml path(''))
,1,1,'')
, '),(', ', ')
,'')
)
) as NAME,
CONSTITUENT.ISINACTIVE,
(select sum(CNT) from (
select count(ID) CNT from dbo.ORGANIZATIONDATA OD where OD.PARENTCORPID = ORGANIZATIONDATA.ID
union all
select count(ID) CNT from dbo.ORGANIZATIONDATA OD where OD.PARENTCORPID is not null and OD.ID = ORGANIZATIONDATA.ID
) a
) COUNT,
0 as ISSPOUSE,
1 as ISORGANIZATION,
dbo.UFN_SECURITY_APPUSER_GRANTED_DATALIST_FORCONSTIT(@CURRENTAPPUSERID,'9297f3a4-c0c5-4947-9cb2-f1d9eb15b155',PARENTCORPID) LOADDATALIST,
dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID,'0C836902-A398-47a0-91EB-8B66E434148E',PARENTCORPID) LOADPAGE,
0 as ISGROUP,
0 as ISHOUSEHOLD
from ORGANIZATIONDATA
inner join dbo.CONSTITUENT
on ORGANIZATIONDATA.ID = CONSTITUENT.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) NF
where ORGANIZATIONDATA.PARENTCORPID = @CONSTITUENTID
and not exists(select ID from dbo.RELATIONSHIP
where RELATIONSHIPCONSTITUENTID = ORGANIZATIONDATA.ID
and RECIPROCALCONSTITUENTID = @CONSTITUENTID)
order by ISSPOUSE desc