UFN_MAILING_GETMEMBERNAMEFORMATS

Returns group member name formats according to name format processing rules.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@MEMBERID uniqueidentifier IN
@GROUPADDRESSEES xml IN
@GROUPSALUTATIONS xml IN

Definition

Copy


create function dbo.UFN_MAILING_GETMEMBERNAMEFORMATS(
    @MEMBERID uniqueidentifier,
    @GROUPADDRESSEES xml,  
    @GROUPSALUTATIONS xml)
returns table  
as   
return   
(  
with 
GROUP_ADDRESSEE_CTE as (
  select
  NAMEFORMAT.CONSTITUENTID,
  NAMEFORMAT.ID NAMEFORMATID,
   T.c.value('SEQUENCE[1]', 'int') SEQUENCE  
  from dbo.NAMEFORMAT
   inner join @GROUPADDRESSEES.nodes('/GROUPADDRESSEES/ITEM') T(c) on
   (  
    (T.c.value('ADDRESSEEFORMATISPRIMARY[1]', 'bit') = 1 and NAMEFORMAT.PRIMARYADDRESSEE = 1)  
    or  
    (NAMEFORMAT.NAMEFORMATTYPECODEID = T.c.value('NAMEFORMATTYPECODEID[1]', 'uniqueidentifier'))  
   )
),   
GROUP_SALUTATION_CTE as (   
  select
  NAMEFORMAT.CONSTITUENTID,
  NAMEFORMAT.ID NAMEFORMATID,
   T.c.value('SEQUENCE[1]', 'int') SEQUENCE  
  from dbo.NAMEFORMAT
   inner join @GROUPSALUTATIONS.nodes('/GROUPSALUTATIONS/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   
 GROUP_ADDRESSEE.NAMEFORMATID ADDRESSEE_NAMEFORMATID,  
 GROUP_SALUTATION.NAMEFORMATID SALUTATION_NAMEFORMATID
from dbo.CONSTITUENT CONSTITUENT  
outer apply   
 (select top 1 GROUP_ADDRESSEE_CTE.CONSTITUENTID, GROUP_ADDRESSEE_CTE.NAMEFORMATID from GROUP_ADDRESSEE_CTE where GROUP_ADDRESSEE_CTE.CONSTITUENTID = @MEMBERID order by GROUP_ADDRESSEE_CTE.SEQUENCE) GROUP_ADDRESSEE  
outer apply   
 (select top 1 GROUP_SALUTATION_CTE.CONSTITUENTID, GROUP_SALUTATION_CTE.NAMEFORMATID from GROUP_SALUTATION_CTE where GROUP_SALUTATION_CTE.CONSTITUENTID = @MEMBERID order by GROUP_SALUTATION_CTE.SEQUENCE) GROUP_SALUTATION  
where CONSTITUENT.ID = @MEMBERID
)