UFN_TRIBUTEACKNOWLEDGEMENT_GETNAMEFORMATS

This function returns a table of name formats for the specified tribute acknowledgement process.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@TRIBUTEACKNOWLEDGEMENTPROCESSID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_TRIBUTEACKNOWLEDGEMENT_GETNAMEFORMATS
            (
                @TRIBUTEACKNOWLEDGEMENTPROCESSID uniqueidentifier
            )
            returns @NAMEFORMAT table
                (
                 CONSTITUENTID uniqueidentifier not null,
                 ADDRESSEE nvarchar(700),
                 SALUTATION nvarchar(700),
                 CONTACT nvarchar(700),
                 POSITION nvarchar(50)
                )                
            as
            begin
                declare @ADDRESSEEFORMATID uniqueidentifier;
                declare @ALTADDRESSEEFORMATID uniqueidentifier;
                declare    @ADDRESSEEFUNCTIONID uniqueidentifier;
                declare @SALUTATIONFORMATID uniqueidentifier;
                declare @ALTSALUTATIONFORMATID uniqueidentifier;
                declare @SALUTATIONFUNCTIONID uniqueidentifier;
                declare @CONTACTADDRESSEEFORMATID uniqueidentifier;
                declare @ALTCONTACTADDRESSEEFORMATID uniqueidentifier;
                declare @CONTACTADDRESSEEFUNCTIONID uniqueidentifier;
                declare @ORGSALUTATIONCODE tinyint;
                declare @CONTACTSALUTATIONFORMATID uniqueidentifier;
                declare @ALTCONTACTSALUTATIONFORMATID uniqueidentifier;
                declare @CONTACTSALUTATIONFUNCTIONID uniqueidentifier;
                declare @CONTACTSALUTATIONOPTIONCODE bit;
                declare @CUSTOMNAME nvarchar(100);

                if exists(select ID from dbo.TRIBUTEACKNOWLEDGEMENTPROCESSNAMEFORMAT where TRIBUTEACKNOWLEDGEMENTPROCESSID = @TRIBUTEACKNOWLEDGEMENTPROCESSID)
                    begin
                        select
                            @ADDRESSEEFORMATID = ADDRESSEEFORMATID,
                            @ALTADDRESSEEFORMATID = ALTADDRESSEEFORMATID,
                            @ADDRESSEEFUNCTIONID = ADDRESSEEFUNCTIONID,
                            @SALUTATIONFORMATID = SALUTATIONFORMATID,
                            @ALTSALUTATIONFORMATID = ALTSALUTATIONFORMATID,
                            @SALUTATIONFUNCTIONID = SALUTATIONFUNCTIONID,
                            @CONTACTADDRESSEEFORMATID = CONTACTADDRESSEEFORMATID,
                            @ALTCONTACTADDRESSEEFORMATID = ALTCONTACTADDRESSEEFORMATID,
                            @CONTACTADDRESSEEFUNCTIONID = CONTACTADDRESSEEFUNCTIONID,
                            @ORGSALUTATIONCODE = ORGSALUTATIONCODE,
                            @CONTACTSALUTATIONFORMATID = CONTACTSALUTATIONFORMATID,
                            @ALTCONTACTSALUTATIONFORMATID = ALTCONTACTSALUTATIONFORMATID,
                            @CONTACTSALUTATIONFUNCTIONID = CONTACTSALUTATIONFUNCTIONID,
                            @CONTACTSALUTATIONOPTIONCODE = CONTACTSALUTATIONOPTIONCODE,
                            @CUSTOMNAME = CUSTOMNAME
                        from
                            dbo.TRIBUTEACKNOWLEDGEMENTPROCESSNAMEFORMAT
                        where
                            TRIBUTEACKNOWLEDGEMENTPROCESSID = @TRIBUTEACKNOWLEDGEMENTPROCESSID
                    end
                else
                    begin
                        select
                            @ADDRESSEEFORMATID = ADDRESSEEFORMATID,
                            @ALTADDRESSEEFORMATID = ALTADDRESSEEFORMATID,
                            @ADDRESSEEFUNCTIONID = ADDRESSEEFUNCTIONID,
                            @SALUTATIONFORMATID = SALUTATIONFORMATID,
                            @ALTSALUTATIONFORMATID = ALTSALUTATIONFORMATID,
                            @SALUTATIONFUNCTIONID = SALUTATIONFUNCTIONID,
                            @CONTACTADDRESSEEFORMATID = CONTACTADDRESSEEFORMATID,
                            @ALTCONTACTADDRESSEEFORMATID = ALTCONTACTADDRESSEEFORMATID,
                            @CONTACTADDRESSEEFUNCTIONID = CONTACTADDRESSEEFUNCTIONID,
                            @ORGSALUTATIONCODE = ORGSALUTATIONCODE,
                            @CONTACTSALUTATIONFORMATID = CONTACTSALUTATIONFORMATID,
                            @ALTCONTACTSALUTATIONFORMATID = ALTCONTACTSALUTATIONFORMATID,
                            @CONTACTSALUTATIONFUNCTIONID = CONTACTSALUTATIONFUNCTIONID,
                            @CONTACTSALUTATIONOPTIONCODE = CONTACTSALUTATIONOPTIONCODE,
                            @CUSTOMNAME = CUSTOMNAME
                        from
                            dbo.NAMEFORMATPARAMETER
                    end

                insert @NAMEFORMAT
                select 
                    CONSTITUENT.ID,
                    --ADDRESSEE

                    case when CONSTITUENT.ISORGANIZATION = 1 then
                        CONSTITUENT.NAME
                    else
                        case when @ADDRESSEEFORMATID is null then
                            dbo.UFN_NAMEFORMAT_FROMID(@ADDRESSEEFUNCTIONID, CONSTITUENT.ID)
                        else
                            coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONSTITUENT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @ADDRESSEEFORMATID),
                                     (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONSTITUENT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTADDRESSEEFORMATID),
                                    CONSTITUENT.NAME)            
                        end
                    end,    
                    --SALUTATION

                    case when CONSTITUENT.ISORGANIZATION = 1 then
                            --process salutation option

                            case when @ORGSALUTATIONCODE = 0 then --use organization name

                                CONSTITUENT.NAME
                            when @ORGSALUTATIONCODE = 1 then -- use contact name

                                coalesce((select top (1)
                                            case when @CONTACTSALUTATIONFORMATID is null then
                                                dbo.UFN_NAMEFORMAT_FROMID(@CONTACTSALUTATIONFUNCTIONID, CONTACT.ID)
                                            else 
                                                coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @CONTACTSALUTATIONFORMATID),
                                                         (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTCONTACTSALUTATIONFORMATID),
                                                            CONTACT.NAME)
                                            end
                                        from dbo.RELATIONSHIP                        
                                        inner join dbo.CONSTITUENT CONTACT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONTACT.ID
                                        where RELATIONSHIP.ISPRIMARYCONTACT = 1
                                            and RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID),
                                        @CUSTOMNAME, CONSTITUENT.NAME)
                            else    --use custom name

                                @CUSTOMNAME
                            end
                    else
                        case when @SALUTATIONFORMATID is null then
                            dbo.UFN_NAMEFORMAT_FROMID(@SALUTATIONFUNCTIONID, CONSTITUENT.ID)
                        else
                            coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONSTITUENT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @SALUTATIONFORMATID),
                                     (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONSTITUENT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTSALUTATIONFORMATID),
                                        CONSTITUENT.NAME)            
                        end
                    end,
                    --CONTACT

                    case when CONSTITUENT.ISORGANIZATION = 1 then 
                        (select top (1
                            case when @CONTACTADDRESSEEFORMATID is null then
                                dbo.UFN_NAMEFORMAT_FROMID(@CONTACTADDRESSEEFUNCTIONID, CONTACT.ID)
                            else
                                coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @CONTACTADDRESSEEFORMATID),
                                         (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID and NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTCONTACTADDRESSEEFORMATID),
                                            CONTACT.NAME)
                            end
                        from dbo.RELATIONSHIP                        
                        inner join dbo.CONSTITUENT CONTACT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONTACT.ID
                        where RELATIONSHIP.ISPRIMARYCONTACT = 1
                            and RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID)
                    else
                        null
                    end,
                    --POSITION

                    case when CONSTITUENT.ISORGANIZATION = 1 then
                        (select top (1) RELATIONSHIP.POSITION
                        from dbo.RELATIONSHIP                        
                        inner join dbo.CONSTITUENT CONTACT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONTACT.ID
                        where RELATIONSHIP.ISPRIMARYCONTACT = 1
                            and RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID)
                    else
                        null
                    end as POSITION
                from dbo.CONSTITUENT;

                return
            end