USP_DATALIST_RELATIONSHIPS_ALLTOALL

This datalist returns a list of all relationships for a constituent.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@ONLYCURRENT bit IN Only display current relationships
@RECIPROCALTYPECODEID uniqueidentifier IN Relationship type
@ONLYCONTACTS bit IN Only display contacts
@SHOWINDIVIDUALS bit IN Individuals
@SHOWORGANIZATIONS bit IN Organizations
@SHOWGROUPS bit IN Groups
@SHOWHOUSEHOLDS bit IN Households

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_RELATIONSHIPS_ALLTOALL 
                (
                    @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;