UFN_BBNC_CONSTITATTRIBUTEDATA

Returns a list of attributes for the specified constituent for Blackbaud Internet Solutions. The list may be filtered by attribute type.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID int IN
@ATTRIBUTETYPEID int IN

Definition

Copy


            CREATE function dbo.UFN_BBNC_CONSTITATTRIBUTEDATA(@CONSTITUENTID int, @ATTRIBUTETYPEID int = null
            returns @TABLE table 
            (
                ID int,
                ATTRIBUTETYPEID int,
                ATTRIBUTEDATATYPE tinyint,
                COMMENTS nvarchar(max),
                SEQUENCE int,
                DESCRIPTION nvarchar(max),
                TABLEENTRYID int,
                CURRENCYISO4217 nvarchar(3)
            )
            as
            begin
                declare @BUILTINATTRIBID int;

                set @ATTRIBUTETYPEID = coalesce(@ATTRIBUTETYPEID, 0);

        /* *** 
                if @ATTRIBUTETYPEID = 0 or @ATTRIBUTETYPEID = 1

                    JamesWill 02/29/2008 CR294475-022508 Having a "Nickname" attribute is confusing BBNC (because of the "Nickname" ConstitData.Bio field)
                    -- Nickname
                    insert into @TABLE 
                    (
                        ID, 
                        ATTRIBUTETYPEID,
                        ATTRIBUTEDATATYPE,
                        COMMENTS,
                        SEQUENCE,
                        DESCRIPTION,
                        TABLEENTRYID
                    )
                        select
                            @CONSTITUENTID as ID,
                            convert(int, 1) as ATTRIBUTETYPEID,    -- as defined in UFN_BBNC_ATTRIBUTETYPE_GETLIST
                            convert(tinyint, 1) as ATTRIBUTEDATATYPE,    -- TEXT
                            '' as COMMENTS,
                            1 as SEQUENCE,
                            NICKNAME as [VALUE],
                            null as [TABLEENTRYID]
                        from
                            dbo.CONSTITUENT
                        where
                            CONSTITUENT.SEQUENCEID = @CONSTITUENTID;
                     */

                if @ATTRIBUTETYPEID = 0 or @ATTRIBUTETYPEID = 2
                    -- Interests

                    insert into @TABLE 
                    (
                        ID, 
                        ATTRIBUTETYPEID,
                        ATTRIBUTEDATATYPE,
                        COMMENTS,
                        SEQUENCE,
                        DESCRIPTION,
                        TABLEENTRYID
                    )
                        select 
                            convert(int, row_number() over (order by CONSTITUENTINTEREST.DATEADDED)) as ID,
                            2 as ATTRIBUTETYPEID,        -- as defined in UFN_BBNC_ATTRIBUTETYPE_GETLIST

                            convert(tinyint, 6) as ATTRIBUTEDATATYPE,    -- TABLEENTRY

                            CONSTITUENTINTEREST.NOTE as COMMENTS,
                            1 as SEQUENCE,
                            CONSTITUENTINTERESTCODE.DESCRIPTION as [VALUE],
                            BBNCCODETABLEIDMAP.ID as [TABLEENTRYID]

                        from
                            dbo.CONSTITUENT
                        inner join
                            dbo.CONSTITUENTINTEREST on CONSTITUENT.ID = CONSTITUENTINTEREST.CONSTITUENTID
                        inner join dbo.CONSTITUENTINTERESTCODE 
                            on CONSTITUENTINTEREST.CONSTITUENTINTERESTCODEID = CONSTITUENTINTERESTCODE.ID
                        inner join dbo.BBNCCODETABLEIDMAP 
                            on CONSTITUENTINTERESTCODE.ID = BBNCCODETABLEIDMAP.TABLEENTRYID and BBNCCODETABLEIDMAP.CODETABLECATALOGID = '0C51D76A-D06C-4A63-88B6-4104BE00D11C'                    
                        where
                            CONSTITUENT.SEQUENCEID = @CONSTITUENTID;

                -- Add any built-in attributes (DO NOT REMOVE OR MODIFY THIS SECTION!!)            

                if @ATTRIBUTETYPEID = 0 or @ATTRIBUTETYPEID > 499
                    begin
                        select @BUILTINATTRIBID = object_id('dbo.UFN_BBNC_CONSTITATTRIBUTEDATABUILTIN');
                        if @BUILTINATTRIBID > 0
                            insert into @TABLE 
                            (
                                ID, 
                                ATTRIBUTETYPEID,
                                ATTRIBUTEDATATYPE,
                                COMMENTS,
                                SEQUENCE,
                                DESCRIPTION,
                                TABLEENTRYID,
                                CURRENCYISO4217
                            )
                            select 
                                ID, 
                                ATTRIBUTETYPEID,
                                ATTRIBUTEDATATYPE,
                                COMMENTS,
                                SEQUENCE,
                                DESCRIPTION,
                                TABLEENTRYID,
                                CURRENCYISO4217
                            from 
                                dbo.UFN_BBNC_CONSTITATTRIBUTEDATABUILTIN(@CONSTITUENTID,@ATTRIBUTETYPEID);
                    end;
                return;
            end;