UFN_CONTACTPREFERENCES_GETFORMATS_2

Returns address and name formats according to contact preference settings.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@NAMEFORMATPARAMETERID uniqueidentifier IN
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN
@MAILTYPE tinyint IN
@PARAMETERSETID uniqueidentifier IN
@SEASONALDATE datetime IN
@INCLUDEHOUSEHOLDPROCESSING bit IN
@USEADDRESSEEFORMAT bit IN
@ADDRESSEEFORMATID uniqueidentifier IN
@ADDRESSEEFORMATISPRIMARY bit IN
@ALTADDRESSEEFORMATID uniqueidentifier IN
@ALTADDRESSEEFORMATISPRIMARY bit IN
@ADDRESSEEFUNCTIONID uniqueidentifier IN
@USESALUTATIONFORMAT bit IN
@SALUTATIONFORMATID uniqueidentifier IN
@SALUTATIONFORMATISPRIMARY bit IN
@ALTSALUTATIONFORMATID uniqueidentifier IN
@ALTSALUTATIONFORMATISPRIMARY bit IN
@SALUTATIONFUNCTIONID uniqueidentifier IN
@USECONTACTADDRESSEEFORMAT bit IN
@CONTACTADDRESSEEFORMATID uniqueidentifier IN
@CONTACTADDRESSEEFORMATISPRIMARY bit IN
@ALTCONTACTADDRESSEEFORMATID uniqueidentifier IN
@ALTCONTACTADDRESSEEFORMATISPRIMARY bit IN
@CONTACTADDRESSEEFUNCTIONID uniqueidentifier IN
@ORGSALUTATIONCODE tinyint IN
@USECONTACTSALUTATIONFORMAT bit IN
@CONTACTSALUTATIONFORMATID uniqueidentifier IN
@CONTACTSALUTATIONFORMATISPRIMARY bit IN
@ALTCONTACTSALUTATIONFORMATID uniqueidentifier IN
@ALTCONTACTSALUTATIONFORMATISPRIMARY bit IN
@CONTACTSALUTATIONFUNCTIONID uniqueidentifier IN
@CONTACTSALUTATIONOPTIONCODE tinyint IN
@CUSTOMNAME nvarchar(100) 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 tinyint IN

Definition

Copy


CREATE function dbo.UFN_CONTACTPREFERENCES_GETFORMATS_2 
   (@NAMEFORMATPARAMETERID uniqueidentifier,  
   @ADDRESSPROCESSINGOPTIONID uniqueidentifier,  
   @MAILTYPE tinyint,  
   @PARAMETERSETID uniqueidentifier,  
   @SEASONALDATE datetime,  
   @INCLUDEHOUSEHOLDPROCESSING bit,
   @USEADDRESSEEFORMAT bit,
   @ADDRESSEEFORMATID uniqueidentifier,
   @ADDRESSEEFORMATISPRIMARY bit,
   @ALTADDRESSEEFORMATID uniqueidentifier,
   @ALTADDRESSEEFORMATISPRIMARY bit,
   @ADDRESSEEFUNCTIONID uniqueidentifier,
   @USESALUTATIONFORMAT bit,
   @SALUTATIONFORMATID uniqueidentifier,
   @SALUTATIONFORMATISPRIMARY bit,
   @ALTSALUTATIONFORMATID uniqueidentifier,
   @ALTSALUTATIONFORMATISPRIMARY bit,
   @SALUTATIONFUNCTIONID uniqueidentifier,
   @USECONTACTADDRESSEEFORMAT bit,
   @CONTACTADDRESSEEFORMATID uniqueidentifier,
   @CONTACTADDRESSEEFORMATISPRIMARY bit,
   @ALTCONTACTADDRESSEEFORMATID uniqueidentifier,
   @ALTCONTACTADDRESSEEFORMATISPRIMARY bit,
   @CONTACTADDRESSEEFUNCTIONID uniqueidentifier,
   @ORGSALUTATIONCODE tinyint,
   @USECONTACTSALUTATIONFORMAT bit,
   @CONTACTSALUTATIONFORMATID uniqueidentifier,
   @CONTACTSALUTATIONFORMATISPRIMARY bit,
   @ALTCONTACTSALUTATIONFORMATID uniqueidentifier,
   @ALTCONTACTSALUTATIONFORMATISPRIMARY bit,
   @CONTACTSALUTATIONFUNCTIONID uniqueidentifier,
   @CONTACTSALUTATIONOPTIONCODE tinyint,
   @CUSTOMNAME nvarchar(100),
   @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 tinyint
   )  
  returns table  
  as  
  return  
   (  

            /*
                Note this function has been upgraded for backwards compatibility 
                but the new UFN_CONTACTPREFERENCES_GETFORMATS_3
                should be used for new development

            */

   select CONSTITUENT.ID as CONSTITUENTID,  
    case when CONSTITUENT.ISORGANIZATION = 1 then  
     CONSTITUENT.NAME  
    else  
     case when @USEADDRESSEEFORMAT = 0 then  
      dbo.UFN_NAMEFORMAT_FROMID(@ADDRESSEEFUNCTIONID, coalesce(AP.GROUPCONTACTID, CONSTITUENT.ID))  
     else  
      coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = coalesce(AP.GROUPCONTACTID, CONSTITUENT.ID)  
         and (NAMEFORMAT.NAMEFORMATTYPECODEID = @ADDRESSEEFORMATID   
          or (@ADDRESSEEFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYADDRESSEE = 1))),  
         (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = coalesce(AP.GROUPCONTACTID, CONSTITUENT.ID)  
             and (NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTADDRESSEEFORMATID   
              or (@ALTADDRESSEEFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYADDRESSEE = 1))),  
         coalesce( (select NAME from dbo.CONSTITUENT where ID = AP.GROUPCONTACTID), CONSTITUENT.NAME))  
     end  
    end as ADDRESSEE,   
    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 @USECONTACTSALUTATIONFORMAT = 0 then  
           dbo.UFN_NAMEFORMAT_FROMID(@CONTACTSALUTATIONFUNCTIONID, CONTACT.ID)  
          else   
  coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID   
              and (NAMEFORMAT.NAMEFORMATTYPECODEID = @CONTACTSALUTATIONFORMATID  
               or (@CONTACTSALUTATIONFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYSALUTATION = 1))),  
              (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID   
              and (NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTCONTACTSALUTATIONFORMATID  
               or (@ALTCONTACTSALUTATIONFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYSALUTATION = 1))),  
              CONTACT.NAME)  
          end  
         from dbo.CONSTITUENT CONTACT   
         where CONTACT.ID = AP.CONTACTID),  
         (case when @CUSTOMNAME <> '' then @CUSTOMNAME else null end), CONSTITUENT.NAME)  
      else --use custom name  

       @CUSTOMNAME  
      end  
    else  
     case when @USESALUTATIONFORMAT = 0 then  
      dbo.UFN_NAMEFORMAT_FROMID(@SALUTATIONFUNCTIONID, coalesce(AP.GROUPCONTACTID, CONSTITUENT.ID))  
     else  
      coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = coalesce(AP.GROUPCONTACTID, CONSTITUENT.ID)  
         and (NAMEFORMAT.NAMEFORMATTYPECODEID = @SALUTATIONFORMATID  
          or (@SALUTATIONFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYSALUTATION = 1))),  
         (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = coalesce(AP.GROUPCONTACTID, CONSTITUENT.ID)  
         and (NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTSALUTATIONFORMATID  
          or (@ALTSALUTATIONFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYSALUTATION = 1))),  
         coalesce( (select NAME from dbo.CONSTITUENT where ID = AP.GROUPCONTACTID), CONSTITUENT.NAME))     
     end  
    end as SALUTATION,  
    case when CONSTITUENT.ISORGANIZATION = 1 then   
     (select top (1)   
      case when @USECONTACTADDRESSEEFORMAT = 0 then  
       dbo.UFN_NAMEFORMAT_FROMID(@CONTACTADDRESSEEFUNCTIONID, CONTACT.ID)  
      else  
       coalesce((select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID   
          and (NAMEFORMAT.NAMEFORMATTYPECODEID = @CONTACTADDRESSEEFORMATID  
           or (@CONTACTADDRESSEEFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYADDRESSEE = 1))),  
          (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONTACT.ID   
          and (NAMEFORMAT.NAMEFORMATTYPECODEID = @ALTCONTACTADDRESSEEFORMATID  
           or (@ALTCONTACTADDRESSEEFORMATISPRIMARY = 1 and NAMEFORMAT.PRIMARYADDRESSEE = 1))),  
          CONTACT.NAME)  
      end  
     from dbo.CONSTITUENT CONTACT   
     where CONTACT.ID = AP.CONTACTID)  
    else  
     null  
    end as CONTACT,  
    AP.POSITION,  
    A.ADDRESSBLOCK,  
    A.CITY,  
    STATE.ABBREVIATION as [STATE],  
    A.POSTCODE,  
    COUNTRY.DESCRIPTION as COUNTRY,  
    AP.CONTACTID,  
    AP.HOUSEHOLDID,  
    AP.RETURNEDASHOUSEHOLDMEMBER,  
    AP.GROUPCONTACTID,  
    coalesce(AP.GROUPCONTACTID, CONSTITUENT.ID) as CONTACTORCONSTITUENTID,
    A.CART,
    A.DPC,
    A.LOT

   from dbo.CONSTITUENT  
   inner join dbo.UFN_ADDRESSPROCESS_ADDRESSES_2(@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 AP on AP.CONSTITUENTID = CONSTITUENT.ID     
   left join dbo.ADDRESS A on AP.ADDRESSID = A.ID  
   left join dbo.STATE on A.STATEID = STATE.ID  
   left join dbo.COUNTRY on A.COUNTRYID = COUNTRY.ID  

   )