UFN_MAILING_GETCONTACTNAMEFORMATS

Returns contact name formats according to name format processing rules.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONTACTID uniqueidentifier IN
@ORGADDRESSEES xml IN
@ORGSALUTATIONS xml IN

Definition

Copy


create function dbo.UFN_MAILING_GETCONTACTNAMEFORMATS  
    (
    @CONTACTID uniqueidentifier,
    @ORGADDRESSEES xml,  
    @ORGSALUTATIONS xml)
returns table  
as   
return   
(  
with 
ORG_ADDRESSEE_CTE as (
  select
  NAMEFORMAT.CONSTITUENTID,
  NAMEFORMAT.ID NAMEFORMATID,
   T.c.value('SEQUENCE[1]', 'int') SEQUENCE  
  from dbo.NAMEFORMAT
   inner join @ORGADDRESSEES.nodes('/ORGANIZATIONADDRESSEES/ITEM') T(c) on
   (  
    (T.c.value('ADDRESSEEFORMATISPRIMARY[1]', 'bit') = 1 and NAMEFORMAT.PRIMARYADDRESSEE = 1)  
    or  
    (NAMEFORMAT.NAMEFORMATTYPECODEID = T.c.value('NAMEFORMATTYPECODEID[1]', 'uniqueidentifier'))  
   )
),   
ORG_SALUTATION_CTE as (   
  select
  NAMEFORMAT.CONSTITUENTID,
  NAMEFORMAT.ID NAMEFORMATID,
   T.c.value('SEQUENCE[1]', 'int') SEQUENCE  
  from dbo.NAMEFORMAT
   inner join @ORGSALUTATIONS.nodes('/ORGANIZATIONSALUTATIONS/ITEM') T(c) on 
   (  
    (T.c.value('SALUTATIONFORMATISPRIMARY[1]', 'bit') = 1 and NAMEFORMAT.PRIMARYSALUTATION = 1)  
    or  
    (NAMEFORMAT.NAMEFORMATTYPECODEID = T.c.value('NAMEFORMATTYPECODEID[1]', 'uniqueidentifier'))  
   )  
)
select   
 ORG_ADDRESSEE.NAMEFORMATID ADDRESSEE_NAMEFORMATID,  
 ORG_SALUTATION.NAMEFORMATID SALUTATION_NAMEFORMATID
from dbo.CONSTITUENT  
outer apply   
 (select top 1 ORG_ADDRESSEE_CTE.CONSTITUENTID, ORG_ADDRESSEE_CTE.NAMEFORMATID from ORG_ADDRESSEE_CTE where ORG_ADDRESSEE_CTE.CONSTITUENTID = @CONTACTID order by ORG_ADDRESSEE_CTE.SEQUENCE) ORG_ADDRESSEE  
outer apply   
 (select top 1 ORG_SALUTATION_CTE.CONSTITUENTID, ORG_SALUTATION_CTE.NAMEFORMATID from ORG_SALUTATION_CTE where ORG_SALUTATION_CTE.CONSTITUENTID = @CONTACTID order by ORG_SALUTATION_CTE.SEQUENCE) ORG_SALUTATION  
where CONSTITUENT.ID = @CONTACTID
)