USP_BBNC_PHONESANDEMAILS

Retrieves all of a constituent's phone and email address data for Blackbaud Internet Solutions.

Parameters

Parameter Parameter Type Mode Description
@ID int IN

Definition

Copy


            CREATE procedure dbo.USP_BBNC_PHONESANDEMAILS
            (
                @ID int
            )
            as
                set nocount on;

                select
                    PHONETYPE,
                    NUMBER,
                    ISEMAIL,
                    SYSTEMID,
          STARTDATE,
                    ENDDATE,
                    DONOTCONTACT,
          ISPRIMARY,
          GUID,
          PHONETYPECODEID
                from
                    (
                        select
                            EMAILADDRESSTYPECODE.DESCRIPTION as PHONETYPE,
                            EMAILADDRESS.EMAILADDRESS as NUMBER,
                            convert(bit, 1) as ISEMAIL,
                            bctim.ID as SYSTEMID,
                            EMAILADDRESS.SEQUENCE,
              EMAILADDRESS.STARTDATE,
                            EMAILADDRESS.ENDDATE,
                            EMAILADDRESS.DONOTEMAIL as DONOTCONTACT,
              EMAILADDRESS.ISPRIMARY,
              EMAILADDRESS.ID as GUID,
              EMAILADDRESSTYPECODE.ID AS PHONETYPECODEID
                        from
                            dbo.CONSTITUENT
                        inner join
                            dbo.EMAILADDRESS on CONSTITUENT.ID = EMAILADDRESS.CONSTITUENTID
                        left join
                            dbo.EMAILADDRESSTYPECODE on EMAILADDRESS.EMAILADDRESSTYPECODEID = EMAILADDRESSTYPECODE.ID
                        left join
                            dbo.BBNCCODETABLEIDMAP as bctim
                        on
                            bctim.TABLEENTRYID = EMAILADDRESSTYPECODE.ID
                        where
                            CONSTITUENT.SEQUENCEID = @ID

                        union all

                        select
                            PHONETYPECODE.DESCRIPTION as PHONETYPE,
                            PHONE.NUMBER,
                            convert(bit, 0) as ISEMAIL,
                            bctim.ID AS SYSTEMID,
                            PHONE.SEQUENCE,
              PHONE.STARTDATE,
                            PHONE.ENDDATE,
                            PHONE.DONOTCALL as DONOTCONTACT,
              PHONE.ISPRIMARY,
              PHONE.ID as GUID,
              PHONETYPECODE.ID AS PHONETYPECODEID
                        from
                            dbo.CONSTITUENT
                        inner join
                            dbo.PHONE on CONSTITUENT.ID = PHONE.CONSTITUENTID
                        left join
                            dbo.PHONETYPECODE on PHONE.PHONETYPECODEID = PHONETYPECODE.ID
                        left join
                            dbo.BBNCCODETABLEIDMAP as bctim
                        on
                            bctim.TABLEENTRYID = PHONETYPECODE.ID
                        where
                            CONSTITUENT.SEQUENCEID = @ID
                    ) as T
                order by
                    ISPRIMARY desc, PHONETYPE desc, SEQUENCE;
                --Order matters since Galileo can have multiple phones with the same type and BBNC only uses the first