USP_BBNC_CONSTITPRIMARYBUSINESSDATA

Retrieves constituent primary business data for Blackbaud Internet Solutions.

Parameters

Parameter Parameter Type Mode Description
@ID int IN

Definition

Copy


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

                --purposefully using DATE

                declare @CURRENTDATE date;
                set @CURRENTDATE = getdate();

                select top 1
                    case when RELATIONSHIP.ISPRIMARYBUSINESS = 1 then BUSINESS.NAME else null end as [NAME],
                    case when RELATIONSHIP.ISPRIMARYBUSINESS = 1 then RELATIONSHIPJOBINFO.JOBTITLE else null end as [POSITION],
                    case when RELATIONSHIP.ISPRIMARYBUSINESS = 1 then INDUSTRYCODE.DESCRIPTION else null end as [INDUSTRY],
                    COUNTRY.DESCRIPTION as COUNTRYLONG,
                    COUNTRY.ABBREVIATION as COUNTRYSHORT,
                    ADDRESS.ADDRESSBLOCK,
                    ADDRESS.CITY,
                    case
                        --TMV 04/11/2007 CR272266-040907 BBNC expects the full description for New Zealand city, GUID copied from dbo.USP_COUNTRYADDRESSFORMAT_GETDATA.

                        --TMV 04/13/2007 CR272671-041207 BBNC expects the full description for United Kingdom county, GUID copied from dbo.USP_COUNTRYADDRESSFORMAT_GETDATA.

                        when 
                        (
                            COUNTRY.COUNTRYADDRESSFORMATID = '959809FB-8FA7-4A19-888F-9951BD9B29D3' --United Kingdom

                            or
                            COUNTRY.COUNTRYADDRESSFORMATID = 'A3B050A5-E1C8-4E1B-99AE-40E9FCADA0BC' --New Zealand

                        )
                        then
                            STATE.DESCRIPTION
                        else
                            STATE.ABBREVIATION
                    end as STATE,
                    ADDRESS.POSTCODE,
                    dbo.UFN_BUILDFULLADDRESS(ADDRESS.ID, ADDRESS.ADDRESSBLOCK, ADDRESS.CITY, ADDRESS.STATEID, ADDRESS.POSTCODE, ADDRESS.COUNTRYID) as FORMATTEDADDRESS,
                    COUNTRY.COUNTRYADDRESSFORMATID,
                    REGIONCODE.DESCRIPTION as REGION
                from
                    dbo.CONSTITUENT
                left join
                    dbo.RELATIONSHIP on CONSTITUENT.ID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID
                left join
                    dbo.RELATIONSHIPJOBINFO on RELATIONSHIP.RELATIONSHIPSETID = RELATIONSHIPJOBINFO.RELATIONSHIPSETID
                        and @CURRENTDATE between coalesce(RELATIONSHIPJOBINFO.STARTDATE, @CURRENTDATE) and coalesce(RELATIONSHIPJOBINFO.ENDDATE, @CURRENTDATE)
                left join
                    dbo.CONSTITUENT as BUSINESS on RELATIONSHIP.RECIPROCALCONSTITUENTID = BUSINESS.ID
                left join
                    dbo.ORGANIZATIONDATA on BUSINESS.ID = ORGANIZATIONDATA.ID
                left join
                    dbo.ADDRESS on CONSTITUENT.ID = ADDRESS.CONSTITUENTID -- Pull the address from the constituent, not their business.

                    and ADDRESS.ADDRESSTYPECODEID = (select top 1 BUSINESSADDRESSTYPECODEID from dbo.NETCOMMUNITYDEFAULTCODEMAP)
                left join
                    dbo.INDUSTRYCODE on ORGANIZATIONDATA.INDUSTRYCODEID = INDUSTRYCODE.ID
                left join
                    dbo.COUNTRY on ADDRESS.COUNTRYID = COUNTRY.ID
                left join
                    dbo.STATE on ADDRESS.STATEID = STATE.ID
                left join
                    dbo.ADDRESSVALIDATIONUPDATE on ADDRESSVALIDATIONUPDATE.ID = ADDRESS.ID
                left join
                    dbo.REGIONCODE on REGIONCODE.ID = ADDRESSVALIDATIONUPDATE.REGIONCODEID
                where 
                    CONSTITUENT.SEQUENCEID = @ID
                    and CONSTITUENT.ISORGANIZATION = 0 --JamesWill CR272664-041207 2007/04/25 Organizations don't have primary businesses, so don't return data for them

                    and CONSTITUENT.ISGROUP = 0 --JohnLu 2007/08/20 Guarantee that only Individuals are returned

          and (ADDRESS.HISTORICALENDDATE is null or ADDRESS.HISTORICALENDDATE > CONVERT(date,GETDATE()))
                order by
                    RELATIONSHIP.ISPRIMARYBUSINESS desc, ADDRESS.ISPRIMARY desc, ADDRESS.SEQUENCE;