UFN_CONTACTPREFERENCES_GETFORMATS_5_WORKER

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN
@MAILTYPE tinyint IN
@PARAMETERSETID uniqueidentifier IN
@SEASONALDATE datetime IN
@INCLUDEHOUSEHOLDPROCESSING bit IN
@INDUSESEASONALADDRESS bit IN
@ORGMAILINGPREFERENCE tinyint IN
@INDALTADDRESS1TYPECODEID uniqueidentifier IN
@INDALTADDRESS1ISPRIMARY bit IN
@INDALTADDRESS2TYPECODEID uniqueidentifier IN
@INDALTADDRESS2ISPRIMARY bit IN
@ORGALTADDRESS1TYPECODEID uniqueidentifier IN
@ORGALTADDRESS1ISPRIMARY bit IN
@ORGALTADDRESS2TYPECODEID uniqueidentifier IN
@ORGALTADDRESS2ISPRIMARY bit IN
@INDINCLUDEWITHNOADDRESS bit IN
@ORGINCLUDEWITHNOADDRESS bit IN
@ORGINCLUDEWITHNOCONTACT bit IN
@ORGSENDTOALLCONTACTS bit IN
@INDUSECONSTITUENTPREFS bit IN
@ORGUSECONSTITUENTPREFS bit IN
@GROUPALTADDRESS1TYPECODEID uniqueidentifier IN
@GROUPALTADDRESS1ISPRIMARY bit IN
@GROUPALTADDRESS2TYPECODEID uniqueidentifier IN
@GROUPALTADDRESS2ISPRIMARY bit IN
@GROUPINCLUDEWITHNOADDRESS bit IN
@GROUPUSECONSTITUENTPREFS bit IN
@INDIVIDUALADDRESSEES xml IN
@ADDRESSEEFUNCTIONID uniqueidentifier IN
@INDIVIDUALSALUTATIONS xml IN
@SALUTATIONFUNCTIONID uniqueidentifier IN
@ORGADDRESSEES xml IN
@CONTACTADDRESSEEFUNCTIONID uniqueidentifier IN
@ORGSALUTATIONCODE tinyint IN
@ORGSALUTATIONS xml IN
@CONTACTSALUTATIONFUNCTIONID uniqueidentifier IN
@CONTACTSALUTATIONOPTIONCODE tinyint IN
@CUSTOMNAME nvarchar(100) IN
@GROUPADDRESSEES xml IN
@GROUPADDRESSEEFUNCTIONID uniqueidentifier IN
@GROUPSALUTATIONCODE tinyint IN
@GROUPSALUTATIONS xml IN
@GROUPSALUTATIONFUNCTIONID uniqueidentifier IN
@GROUPNOCONTACTOPTIONCODE bit IN
@GROUPNOCONTACTCUSTOMNAME nvarchar(100) IN
@JOINTRULETYPECODE tinyint IN
@JOINTSELECTIONID uniqueidentifier IN
@JOINTSELECTIONBOTHRULETYPECODE tinyint IN
@JOINTSELECTIONNEITHERRULETYPECODE tinyint IN
@EXCLUDESPOUSE bit IN
@CONSTITUENTID uniqueidentifier IN

Definition

Copy


--New overload function that takes CONSTITUENTID as parameter

--This calls UFN_ADDRESSPROCESS_ADDRESSES_CONSTITUENT instead of UFN_ADDRESSPROCESS_ADDRESSES_CONSTITUENT_BULK

CREATE function dbo.[UFN_CONTACTPREFERENCES_GETFORMATS_5_WORKER]
(
    @ADDRESSPROCESSINGOPTIONID uniqueidentifier,
    @MAILTYPE tinyint,
    @PARAMETERSETID uniqueidentifier,
    @SEASONALDATE datetime,
    @INCLUDEHOUSEHOLDPROCESSING bit,
    @INDUSESEASONALADDRESS bit,
    @ORGMAILINGPREFERENCE tinyint,
    @INDALTADDRESS1TYPECODEID uniqueidentifier,
    @INDALTADDRESS1ISPRIMARY bit,
    @INDALTADDRESS2TYPECODEID uniqueidentifier,
    @INDALTADDRESS2ISPRIMARY bit,
    @ORGALTADDRESS1TYPECODEID uniqueidentifier,
    @ORGALTADDRESS1ISPRIMARY bit,
    @ORGALTADDRESS2TYPECODEID uniqueidentifier,
    @ORGALTADDRESS2ISPRIMARY bit,
    @INDINCLUDEWITHNOADDRESS bit,
    @ORGINCLUDEWITHNOADDRESS bit,
    @ORGINCLUDEWITHNOCONTACT bit,
    @ORGSENDTOALLCONTACTS bit,
    @INDUSECONSTITUENTPREFS bit,
    @ORGUSECONSTITUENTPREFS bit,
    @GROUPALTADDRESS1TYPECODEID uniqueidentifier,
    @GROUPALTADDRESS1ISPRIMARY bit,
    @GROUPALTADDRESS2TYPECODEID uniqueidentifier,
    @GROUPALTADDRESS2ISPRIMARY bit,
    @GROUPINCLUDEWITHNOADDRESS bit,
    @GROUPUSECONSTITUENTPREFS bit,
    @INDIVIDUALADDRESSEES xml,
    @ADDRESSEEFUNCTIONID uniqueidentifier,
    @INDIVIDUALSALUTATIONS xml,
    @SALUTATIONFUNCTIONID uniqueidentifier,
    @ORGADDRESSEES xml,
    @CONTACTADDRESSEEFUNCTIONID uniqueidentifier,
    @ORGSALUTATIONCODE tinyint,
    @ORGSALUTATIONS xml,
    @CONTACTSALUTATIONFUNCTIONID uniqueidentifier,
    @CONTACTSALUTATIONOPTIONCODE tinyint,
    @CUSTOMNAME nvarchar(100),
    @GROUPADDRESSEES xml,
    @GROUPADDRESSEEFUNCTIONID uniqueidentifier,
    @GROUPSALUTATIONCODE tinyint,
    @GROUPSALUTATIONS xml,
    @GROUPSALUTATIONFUNCTIONID uniqueidentifier,
    @GROUPNOCONTACTOPTIONCODE bit,
    @GROUPNOCONTACTCUSTOMNAME nvarchar(100),
    @JOINTRULETYPECODE As tinyint,
    @JOINTSELECTIONID As uniqueidentifier,
    @JOINTSELECTIONBOTHRULETYPECODE As tinyint,
    @JOINTSELECTIONNEITHERRULETYPECODE As tinyint,
    @EXCLUDESPOUSE as bit,
  @CONSTITUENTID uniqueidentifier
)
returns table
as
return(
    select
        ADDRESSPROCESS.CONSTITUENTID CONSTITUENTID,

        case when CONSTITUENT.ISORGANIZATION = 1 or CONSTITUENT.ISGROUP = 1 then
            CONSTITUENT.NAME
        else
            case when len(INDADDRESSEE.CUSTOMNAME) > 0 then
                INDADDRESSEE.CUSTOMNAME
            else
                dbo.UFN_NAMEFORMAT_FROMID_INTERNAL(
                    isnull(INDADDRESSEE.NAMEFORMATFUNCTIONID, @ADDRESSEEFUNCTIONID),
                    case when dbo.UFN_NAMEFORMATFUNCTION_ISJOINT(isnull(INDADDRESSEE.NAMEFORMATFUNCTIONID, @ADDRESSEEFUNCTIONID)) = 1 and @EXCLUDESPOUSE = 0 and dbo.[UFN_NAMEFORMATFUNCTION_ISJOINTSPOUSEFIELDFIRST](isnull(INDADDRESSEE.NAMEFORMATFUNCTIONID, @ADDRESSEEFUNCTIONID)) = 0 then
                        dbo.UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR(CONSTITUENT.ID, SPOUSECONSTIT.ID, CONSTITUENT.GENDERCODE, SPOUSECONSTIT.GENDERCODE,@JOINTRULETYPECODE, @JOINTSELECTIONID, @JOINTSELECTIONBOTHRULETYPECODE, @JOINTSELECTIONNEITHERRULETYPECODE, CONSTITUENT.GENDERCODEID, SPOUSECONSTIT.GENDERCODEID)
                    else
                        CONSTITUENT.ID 
                    end,
                    @EXCLUDESPOUSE
                )
            end
        end ADDRESSEE,

        case when CONSTITUENT.ISORGANIZATION = 1 then
            case @ORGSALUTATIONCODE
            when 1 then
                case when ADDRESSPROCESS.CONTACTID is null then
                    case when @CONTACTSALUTATIONOPTIONCODE = 1 then
                        @CUSTOMNAME
                    else
                        CONSTITUENT.NAME
                    end
                else
                    case when len(CONTACTSALUTATION.CUSTOMNAME) > 0 then
                        CONTACTSALUTATION.CUSTOMNAME
                    else
                        dbo.UFN_NAMEFORMAT_FROMID_INTERNAL(
                            isnull(CONTACTSALUTATION.NAMEFORMATFUNCTIONID, @CONTACTSALUTATIONFUNCTIONID),
                            case when dbo.UFN_NAMEFORMATFUNCTION_ISJOINT(isnull(CONTACTSALUTATION.NAMEFORMATFUNCTIONID, @CONTACTSALUTATIONFUNCTIONID)) = 1 and @EXCLUDESPOUSE = 0 and dbo.[UFN_NAMEFORMATFUNCTION_ISJOINTSPOUSEFIELDFIRST](isnull(CONTACTSALUTATION.NAMEFORMATFUNCTIONID, @CONTACTSALUTATIONFUNCTIONID)) = 0 then
                                dbo.UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR(ADDRESSPROCESS.CONTACTID, SPOUSECONTACT.ID, CONSTITUENT.GENDERCODE, SPOUSECONTACT.GENDERCODE, @JOINTRULETYPECODE, @JOINTSELECTIONID, @JOINTSELECTIONBOTHRULETYPECODE, @JOINTSELECTIONNEITHERRULETYPECODE, CONSTITUENT.GENDERCODEID, SPOUSECONTACT.GENDERCODEID)
                            else
                                ADDRESSPROCESS.CONTACTID
                            end,
                            @EXCLUDESPOUSE
                        )
                    end
                end
            when 2 then
                @CUSTOMNAME
            else
                CONSTITUENT.NAME
            end
        when CONSTITUENT.ISGROUP = 1 then
            case @GROUPSALUTATIONCODE
            when 1 then
                case when GROUPMEMBER.ID is null then
                    case when @GROUPNOCONTACTOPTIONCODE = 1 then
                        @GROUPNOCONTACTCUSTOMNAME
                    else
                        CONSTITUENT.NAME
                    end
                else
                    case when LEN(MEMBERSALUTATION.CUSTOMNAME) > 0 then
                        MEMBERSALUTATION.CUSTOMNAME
                    else
                        dbo.UFN_NAMEFORMAT_FROMID_INTERNAL(
                            isnull(MEMBERSALUTATION.NAMEFORMATFUNCTIONID, @GROUPSALUTATIONFUNCTIONID),
                            case when dbo.UFN_NAMEFORMATFUNCTION_ISJOINT(isnull(MEMBERSALUTATION.NAMEFORMATFUNCTIONID, @GROUPSALUTATIONFUNCTIONID)) = 1 and @EXCLUDESPOUSE = 0 and dbo.[UFN_NAMEFORMATFUNCTION_ISJOINTSPOUSEFIELDFIRST](isnull(MEMBERSALUTATION.NAMEFORMATFUNCTIONID, @GROUPSALUTATIONFUNCTIONID)) = 0 then
                                dbo.UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR(GROUPMEMBER.MEMBERID, SPOUSEMEMBER.ID, CONSTITUENT.GENDERCODE, SPOUSEMEMBER.GENDERCODE, @JOINTRULETYPECODE, @JOINTSELECTIONID, @JOINTSELECTIONBOTHRULETYPECODE, @JOINTSELECTIONNEITHERRULETYPECODE, CONSTITUENT.GENDERCODEID, SPOUSEMEMBER.GENDERCODEID)
                            else
                                GROUPMEMBER.MEMBERID
                            end,
                            @EXCLUDESPOUSE
                        )
                    end
                end
            when 2 then
                @GROUPNOCONTACTCUSTOMNAME
            else
                CONSTITUENT.NAME
            end
        else
            case when len(INDSALUTATION.CUSTOMNAME) > 0 then
                INDSALUTATION.CUSTOMNAME
            else
                dbo.UFN_NAMEFORMAT_FROMID_INTERNAL(
                    isnull(INDSALUTATION.NAMEFORMATFUNCTIONID, @SALUTATIONFUNCTIONID),
                    case when dbo.UFN_NAMEFORMATFUNCTION_ISJOINT(isnull(INDSALUTATION.NAMEFORMATFUNCTIONID, @SALUTATIONFUNCTIONID)) = 1 and @EXCLUDESPOUSE = 0 and dbo.[UFN_NAMEFORMATFUNCTION_ISJOINTSPOUSEFIELDFIRST](isnull(INDSALUTATION.NAMEFORMATFUNCTIONID, @SALUTATIONFUNCTIONID)) = 0 then
                        dbo.UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR(CONSTITUENT.ID, SPOUSECONSTIT.ID, CONSTITUENT.GENDERCODE, SPOUSECONSTIT.GENDERCODE, @JOINTRULETYPECODE, @JOINTSELECTIONID, @JOINTSELECTIONBOTHRULETYPECODE, @JOINTSELECTIONNEITHERRULETYPECODE, CONSTITUENT.GENDERCODEID, SPOUSECONSTIT.GENDERCODEID)
                    else
                        CONSTITUENT.ID 
                    end,
                    @EXCLUDESPOUSE
                )
            end
        end SALUTATION,

        case when CONSTITUENT.ISORGANIZATION = 1 then
            case when ADDRESSPROCESS.CONTACTID is null then --No contact found

                null
            else
                case when len(CONTACTADDRESSEE.CUSTOMNAME) > 0 then
                    CONTACTADDRESSEE.CUSTOMNAME
                else
                    dbo.UFN_NAMEFORMAT_FROMID_INTERNAL(
                        isnull(CONTACTADDRESSEE.NAMEFORMATFUNCTIONID, @CONTACTADDRESSEEFUNCTIONID),
                        case when dbo.UFN_NAMEFORMATFUNCTION_ISJOINT(isnull(CONTACTADDRESSEE.NAMEFORMATFUNCTIONID, @CONTACTADDRESSEEFUNCTIONID)) = 1 and @EXCLUDESPOUSE = 0 and dbo.[UFN_NAMEFORMATFUNCTION_ISJOINTSPOUSEFIELDFIRST](isnull(CONTACTADDRESSEE.NAMEFORMATFUNCTIONID, @CONTACTADDRESSEEFUNCTIONID)) = 0 then
                            dbo.UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR(ADDRESSPROCESS.CONTACTID, SPOUSECONTACT.ID, CONSTITUENT.GENDERCODE, SPOUSECONTACT.GENDERCODE, @JOINTRULETYPECODE, @JOINTSELECTIONID, @JOINTSELECTIONBOTHRULETYPECODE, @JOINTSELECTIONNEITHERRULETYPECODE, CONSTITUENT.GENDERCODEID, SPOUSECONTACT.GENDERCODEID)
                        else
                            ADDRESSPROCESS.CONTACTID
                        end,
                        @EXCLUDESPOUSE
                    )
                end
            end
        when CONSTITUENT.ISGROUP = 1 then
            case when GROUPMEMBER.ID is null then --No group members found

                null
            else
                case when len(MEMBERADDRESSEE.CUSTOMNAME) > 0 then
                    MEMBERADDRESSEE.CUSTOMNAME
                else
                    dbo.UFN_NAMEFORMAT_FROMID_INTERNAL(
                        isnull(MEMBERADDRESSEE.NAMEFORMATFUNCTIONID, @GROUPADDRESSEEFUNCTIONID),
                        case when dbo.UFN_NAMEFORMATFUNCTION_ISJOINT(isnull(MEMBERADDRESSEE.NAMEFORMATFUNCTIONID, @GROUPADDRESSEEFUNCTIONID)) = 1 and @EXCLUDESPOUSE = 0 and dbo.[UFN_NAMEFORMATFUNCTION_ISJOINTSPOUSEFIELDFIRST](isnull(MEMBERADDRESSEE.NAMEFORMATFUNCTIONID, @GROUPADDRESSEEFUNCTIONID)) = 0 then
                            dbo.UFN_MAILING_GETNAMEFORMATS_JOINTPROCESSOR(GROUPMEMBER.MEMBERID, SPOUSEMEMBER.ID, CONSTITUENT.GENDERCODE, SPOUSEMEMBER.GENDERCODE, @JOINTRULETYPECODE, @JOINTSELECTIONID, @JOINTSELECTIONBOTHRULETYPECODE, @JOINTSELECTIONNEITHERRULETYPECODE, CONSTITUENT.GENDERCODEID, SPOUSEMEMBER.GENDERCODEID)

                        else
                            GROUPMEMBER.MEMBERID
                        end,
                        @EXCLUDESPOUSE
                    )
                end
            end
        else
            null
        end CONTACT,

        ADDRESSPROCESS.ADDRESSID,
        ADDRESSPROCESS.HOUSEHOLDID,
        ADDRESSPROCESS.RETURNEDASHOUSEHOLDMEMBER,
        ADDRESSPROCESS.GROUPCONTACTID,
        ADDRESSPROCESS.POSITION,
        coalesce(ADDRESSPROCESS.CONTACTID, GROUPMEMBER.MEMBERID, CONSTITUENT.ID) MAILTOCONSTITUENTID,
        ADDRESSPROCESS.CONTACTID,

        case when CONSTITUENT.ISORGANIZATION = 1 then
            SPOUSECONTACT.ID
        when CONSTITUENT.ISGROUP = 1 then
            SPOUSEMEMBER.ID
        else
            INDFORMATS.SPOUSEID
        end as SPOUSEID,

        CONSTITUENT.ISORGANIZATION,
        CONSTITUENT.ISGROUP

    from  dbo.UFN_ADDRESSPROCESS_ADDRESSES_CONSTITUENT(@CONSTITUENTID,@ADDRESSPROCESSINGOPTIONID,@MAILTYPE,@PARAMETERSETID,@SEASONALDATE,@INCLUDEHOUSEHOLDPROCESSING,@INDUSESEASONALADDRESS, @ORGMAILINGPREFERENCE, @INDALTADDRESS1TYPECODEID, @INDALTADDRESS1ISPRIMARY, @INDALTADDRESS2TYPECODEID, @INDALTADDRESS2ISPRIMARY, @ORGALTADDRESS1TYPECODEID, @ORGALTADDRESS1ISPRIMARY, @ORGALTADDRESS2TYPECODEID
    @ORGALTADDRESS2ISPRIMARY, @INDINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOADDRESS, @ORGINCLUDEWITHNOCONTACT, @ORGSENDTOALLCONTACTS, @INDUSECONSTITUENTPREFS, @ORGUSECONSTITUENTPREFS, @GROUPALTADDRESS1TYPECODEID, @GROUPALTADDRESS1ISPRIMARY, @GROUPALTADDRESS2TYPECODEID, @GROUPALTADDRESS2ISPRIMARY, @GROUPINCLUDEWITHNOADDRESS, @GROUPUSECONSTITUENTPREFS) as ADDRESSPROCESS 
    left outer join dbo.CONSTITUENT on CONSTITUENT.ID = isnull(ADDRESSPROCESS.GROUPCONTACTID, ADDRESSPROCESS.CONSTITUENTID)
    left outer join dbo.GROUPMEMBER on CONSTITUENT.ID = GROUPMEMBER.GROUPID and GROUPMEMBER.ISPRIMARY = 1

    cross apply dbo.UFN_MAILING_GETNAMEFORMATS(CONSTITUENT.ID, @INDIVIDUALADDRESSEES, @INDIVIDUALSALUTATIONS) INDFORMATS
    outer apply dbo.UFN_MAILING_GETCONTACTNAMEFORMATS(ADDRESSPROCESS.CONTACTID, @ORGADDRESSEES, @ORGSALUTATIONS) CONTACTFORMATS
    outer apply dbo.UFN_MAILING_GETMEMBERNAMEFORMATS(GROUPMEMBER.MEMBERID, @GROUPADDRESSEES, @GROUPSALUTATIONS) MEMBERFORMATS

    left outer join dbo.CONSTITUENT SPOUSECONSTIT on INDFORMATS.SPOUSEID = SPOUSECONSTIT.ID

    left outer join dbo.RELATIONSHIP RELATIONSHIPCONTACT on ADDRESSPROCESS.CONTACTID = RELATIONSHIPCONTACT.RELATIONSHIPCONSTITUENTID and RELATIONSHIPCONTACT.ISSPOUSE = 1 and CONSTITUENT.ISORGANIZATION = 1
    left outer join dbo.CONSTITUENT SPOUSECONTACT on RELATIONSHIPCONTACT.RECIPROCALCONSTITUENTID = SPOUSECONTACT.ID

    left outer join dbo.RELATIONSHIP RELATIONSHIPMEMBER on GROUPMEMBER.MEMBERID = RELATIONSHIPMEMBER.RELATIONSHIPCONSTITUENTID and RELATIONSHIPMEMBER.ISSPOUSE = 1 and CONSTITUENT.ISGROUP = 1
    left outer join dbo.CONSTITUENT SPOUSEMEMBER on RELATIONSHIPMEMBER.RECIPROCALCONSTITUENTID = SPOUSEMEMBER.ID

    left outer join dbo.NAMEFORMAT INDADDRESSEE on INDADDRESSEE.ID = INDFORMATS.ADDRESSEE_NAMEFORMATID
    left outer join dbo.NAMEFORMAT INDSALUTATION on INDSALUTATION.ID = INDFORMATS.SALUTATION_NAMEFORMATID
    left outer join dbo.NAMEFORMAT CONTACTADDRESSEE on CONTACTADDRESSEE.ID = CONTACTFORMATS.ADDRESSEE_NAMEFORMATID
    left outer join dbo.NAMEFORMAT CONTACTSALUTATION on CONTACTSALUTATION.ID = CONTACTFORMATS.SALUTATION_NAMEFORMATID
    left outer join dbo.NAMEFORMAT MEMBERADDRESSEE on MEMBERADDRESSEE.ID = MEMBERFORMATS.ADDRESSEE_NAMEFORMATID
    left outer join dbo.NAMEFORMAT MEMBERSALUTATION on MEMBERSALUTATION.ID = MEMBERFORMATS.SALUTATION_NAMEFORMATID
);