USP_DATALIST_RELATIONSHIPS_INDTOGROUP

A list of relationships between a constituent group and an individual.

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

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_RELATIONSHIPS_INDTOGROUP
                (
                    @CONSTITUENTID uniqueidentifier,
                    @ONLYCURRENT bit = 0,
                    @RECIPROCALTYPECODEID uniqueidentifier = null
                ) as
                    set nocount on;

                    declare @CURRENTDATE datetime
                    if @ONLYCURRENT = 1
                        set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

                    declare @CONSTITUENTSEARCHTYPE bit;
                    select @CONSTITUENTSEARCHTYPE = ~CONSTITUENT.ISGROUP from dbo.CONSTITUENT where CONSTITUENT.ID = @CONSTITUENTID;

                    select
                        R.ID,
                        R.RECIPROCALCONSTITUENTID,
                        (select DESCRIPTION from dbo.RELATIONSHIPTYPECODE where ID=R.RECIPROCALTYPECODEID) as RELATIONSHIP,
                        (
                            rtrim(C.NAME + ' ' +
                                coalesce(
                                    replace(
                                        stuff(
                                            (select '' + STATUS from
                                                (select ',(Deceased)' STATUS
                                                from dbo.DECEASEDCONSTITUENT DC
                                                where DC.ID = C.ID
                                                union all
                                                select ',(Inactive)' STATUS
                                                from dbo.CONSTITUENT
                                                where CONSTITUENT.ID = C.ID
                                                and CONSTITUENT.ISINACTIVE=1
                                            ) as SUBQ for xml path(''))
                                        ,1,1,'')
                                    , '),(', ', ')
                                ,'')
                            )
                        ) as NAME,
                        R.STARTDATE,
                        R.ENDDATE,
                        C.ISGROUP,
                        case when GD.GROUPTYPECODE = 0 then 1 else 0 end
                    from
                        dbo.RELATIONSHIP R
                    inner join
                        dbo.CONSTITUENT C on R.RECIPROCALCONSTITUENTID = C.ID
                    left outer join
                        dbo.GROUPDATA GD on GD.ID = C.ID
                    where
                        R.RELATIONSHIPCONSTITUENTID = @CONSTITUENTID
                    and
                        C.ISGROUP = @CONSTITUENTSEARCHTYPE
                    and
                        C.ISORGANIZATION = 0
                        and (@CURRENTDATE is null
                                or R.STARTDATE is null
                                or R.STARTDATE <= @CURRENTDATE
                            )
                        and (@CURRENTDATE is null
                                or R.ENDDATE is null
                                or R.ENDDATE >= @CURRENTDATE
                            )
                        and (@RECIPROCALTYPECODEID is null
                                or R.RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID
                            )
                    order by
                        RELATIONSHIP, C.KEYNAME, C.NAME