USP_DATALIST_RELATIONSHIPS_ORGTOGROUP

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

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_ORGTOGROUP
          (
            @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 @ISGROUP bit;
            declare @ISORGANIZATION bit;

            select 
              @ISGROUP = C.ISGROUP,
              @ISORGANIZATION = C.ISORGANIZATION
            from 
              dbo.CONSTITUENT C
            where 
              C.ID = @CONSTITUENTID;

            select    
                RELATIONSHIP.ID,
                RELATIONSHIP.RECIPROCALCONSTITUENTID,
                (select DESCRIPTION from dbo.RELATIONSHIPTYPECODE where ID=RELATIONSHIP.RECIPROCALTYPECODEID) 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,
                RELATIONSHIP.STARTDATE,
                RELATIONSHIP.ENDDATE,
                C.ISGROUP,
                case when GD.GROUPTYPECODE = 0 then 1 else 0 end
            from 
                dbo.RELATIONSHIP
            inner join 
                dbo.CONSTITUENT C on RELATIONSHIP.RECIPROCALCONSTITUENTID = C.ID
            left outer join
                dbo.GROUPDATA GD on GD.ID = C.ID
            where 
                RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @CONSTITUENTID 
            and
                C.ISGROUP = ~@ISGROUP 
            and
                C.ISORGANIZATION = ~@ISORGANIZATION
                        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
                            )
            order by
                RELATIONSHIP, C.KEYNAME, C.NAME;