UFN_MAILING_GETNAMEFORMATS

Returns name formats according to name format processing rules.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@INDIVIDUALADDRESSEES xml IN
@INDIVIDUALSALUTATIONS xml IN

Definition

Copy


CREATE function dbo.UFN_MAILING_GETNAMEFORMATS(
    @CONSTITUENTID uniqueidentifier,  
    @INDIVIDUALADDRESSEES xml,  
    @INDIVIDUALSALUTATIONS xml)
returns table  
as   
return   
(  
with 
ADDRESSEE_CTE as (   
  select
  NAMEFORMAT.CONSTITUENTID,
  NAMEFORMAT.ID NAMEFORMATID,
   T.c.value('SEQUENCE[1]', 'int') SEQUENCE  
  from dbo.NAMEFORMAT
   inner join @INDIVIDUALADDRESSEES.nodes('/INDIVIDUALADDRESSEES/ITEM') T(c) on
   (  
    (T.c.value('ADDRESSEEFORMATISPRIMARY[1]', 'bit') = 1 and NAMEFORMAT.PRIMARYADDRESSEE = 1)  
    or  
    (NAMEFORMAT.NAMEFORMATTYPECODEID = T.c.value('NAMEFORMATTYPECODEID[1]', 'uniqueidentifier'))  
   )
   where NAMEFORMAT.CONSTITUENTID = @CONSTITUENTID
)
,   
SALUTATION_CTE as (   
  select
  NAMEFORMAT.CONSTITUENTID,
  NAMEFORMAT.ID NAMEFORMATID,
   T.c.value('SEQUENCE[1]', 'int') SEQUENCE  
  from dbo.NAMEFORMAT
   inner join @INDIVIDUALSALUTATIONS.nodes('/INDIVIDUALSALUTATIONS/ITEM') T(c) on 
   (  
    (T.c.value('SALUTATIONFORMATISPRIMARY[1]', 'bit') = 1 and NAMEFORMAT.PRIMARYSALUTATION = 1)  
    or  
    (NAMEFORMAT.NAMEFORMATTYPECODEID = T.c.value('NAMEFORMATTYPECODEID[1]', 'uniqueidentifier'))  
   )
   where NAMEFORMAT.CONSTITUENTID = @CONSTITUENTID  
)
select   
 CONSTITUENT.ID CONSTITUENTID,   
 RELATIONSHIP.RECIPROCALCONSTITUENTID SPOUSEID,  
 ADDRESSEE.NAMEFORMATID ADDRESSEE_NAMEFORMATID,  
 SALUTATION.NAMEFORMATID SALUTATION_NAMEFORMATID
from dbo.CONSTITUENT  
left outer join dbo.RELATIONSHIP   
 on CONSTITUENT.ID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID and RELATIONSHIP.ISSPOUSE = 1  
outer apply   
 (select top 1 ADDRESSEE_CTE.CONSTITUENTID, ADDRESSEE_CTE.NAMEFORMATID from ADDRESSEE_CTE where ADDRESSEE_CTE.CONSTITUENTID = CONSTITUENT.ID order by ADDRESSEE_CTE.SEQUENCE) ADDRESSEE  
outer apply   
 (select top 1 SALUTATION_CTE.CONSTITUENTID, SALUTATION_CTE.NAMEFORMATID from SALUTATION_CTE where SALUTATION_CTE.CONSTITUENTID = CONSTITUENT.ID order by SALUTATION_CTE.SEQUENCE) SALUTATION  
where CONSTITUENT.ID = @CONSTITUENTID
)