UFN_QUERY_TRIBUTEACKNOWLEDGEMENTOUTPUT

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@NAMEFORMATPARAMETERID uniqueidentifier IN
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN
@SEASONALDATE datetime 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

Definition

Copy


CREATE function [dbo].[UFN_QUERY_TRIBUTEACKNOWLEDGEMENTOUTPUT]
  (
    @NAMEFORMATPARAMETERID uniqueidentifier,
    @ADDRESSPROCESSINGOPTIONID uniqueidentifier,
    @SEASONALDATE datetime = null,
    @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
  )
returns table
as
return
(
  with [RELATIONSHIP_CTE] as (
    select
      [RELATIONSHIPJOBINFO].[JOBTITLE],
      [RELATIONSHIP].[RELATIONSHIPCONSTITUENTID],
      [CONSTITUENT].[NAME],
      [RELATIONSHIPJOBINFO].[STARTDATE]
    from dbo.[RELATIONSHIP] 
    inner join dbo.[RELATIONSHIPJOBINFO] on [RELATIONSHIPJOBINFO].[RELATIONSHIPSETID] = [RELATIONSHIP].[RELATIONSHIPSETID]
    inner join dbo.[CONSTITUENT] on [CONSTITUENT].[ID] = [RELATIONSHIP].[RECIPROCALCONSTITUENTID]
    where [RELATIONSHIP].[ISPRIMARYCONTACT] = 1
  )
  select 
    REVENUETRIBUTELETTER.ID as REVENUETRIBUTELETTERID,
    FINANCIALTRANSACTION.ID as REVENUEID, 
    ACKNOWLEDGEE.NAME as ACKNOWLEDGEENAME,
    A.ADDRESSEE as ACKNOWLEDGEEADDRESSEE,
    A.SALUTATION as ACKNOWLEDGEESALUTATION,
    A.CONTACT as ACKNOWLEDGEECONTACT,
    A.POSITION as ACKNOWLEDGEEPOSITION,
    A.ADDRESSBLOCK as ACKNOWLEDGEEADDRESSBLOCK,
    A.CITY as ACKNOWLEDGEECITY,
    A.STATE as ACKNOWLEDGEESTATE,
    A.POSTCODE as ACKNOWLEDGEEPOSTCODE,
    A.COUNTRY as ACKNOWLEDGEECOUNTRY,
    TRIBUTE.TRIBUTETEXT,
    REVENUETRIBUTE.AMOUNT as REVENUETRIBUTEAMOUNT,    
    CONSTITUENT.NAME as CONSTITUENTNAME,
    CONSTITUENT.LOOKUPID as CONSTITUENTLOOKUPID,
    (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONSTITUENT.ID and NAMEFORMAT.PRIMARYADDRESSEE = 1) as PRIMARYADDRESSEE,
    (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = CONSTITUENT.ID and NAMEFORMAT.PRIMARYSALUTATION = 1) as PRIMARYSALUTATION,
    case when [CONSTITUENT].[ISORGANIZATION] = 1 then 
      (select top 1 
          [RELATIONSHIP_CTE].[NAME] 
        from [RELATIONSHIP_CTE]
        where [RELATIONSHIP_CTE].[RELATIONSHIPCONSTITUENTID] = [CONSTITUENT].[ID]) 
    else null end as [PRIMARYCONTACT],
    case when [CONSTITUENT].[ISORGANIZATION] = 1 then 
      (select top 1
          [RELATIONSHIP_CTE].[JOBTITLE] 
        from [RELATIONSHIP_CTE]
        where [RELATIONSHIP_CTE].[RELATIONSHIPCONSTITUENTID] = [CONSTITUENT].[ID]
     order by [RELATIONSHIP_CTE].[STARTDATE] desc
    else null end as [POSITION],
    ADDRESS.ADDRESSBLOCK as ADDRESSBLOCK,
    ADDRESS.CITY as CITY,
    STATE.ABBREVIATION as STATE,
    ADDRESS.POSTCODE as POSTCODE,
    COUNTRY.DESCRIPTION as COUNTRY,
    EMAILADDRESS.EMAILADDRESS,
    FINANCIALTRANSACTION.TYPE as REVENUETYPE,
    cast(FINANCIALTRANSACTION.DATE as datetime) as DATE,
    case REVENUE_EXT.GIVENANONYMOUSLY when 1 then 'Yes' else 'No' end as GIVENANONYMOUSLY,
    FINANCIALTRANSACTION.TRANSACTIONAMOUNT as AMOUNT,
    REVENUE_EXT.RECEIPTAMOUNT as RECEIPTAMOUNT,
    APPEAL.NAME as APPEALNAME,
    REVENUEDESIGNATION1.DESIGNATIONNAME as DESIGNATION1NAME,
    REVENUEDESIGNATION1.DESIGNATIONPUBLICNAME as DESIGNATION1PUBLICNAME, 
    REVENUEDESIGNATION1.TRANSACTIONAMOUNT as DESIGNATION1AMOUNT,    
    REVENUEDESIGNATION2.DESIGNATIONNAME as DESIGNATION2NAME, 
    REVENUEDESIGNATION2.DESIGNATIONPUBLICNAME as DESIGNATION2PUBLICNAME, 
    REVENUEDESIGNATION2.TRANSACTIONAMOUNT as DESIGNATION2AMOUNT,
    coalesce(REVENUETRIBUTE.AMOUNT + REVENUETRIBUTETAXCLAIMAMOUNT.TAXCLAIMAMOUNT, REVENUETRIBUTE.AMOUNT) as GROSSAMOUNT,
    FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
    isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, ACCOUNTSYSTEMCURRENCY.ID) as BASECURRENCYID,
    isnull(NONPOSTABLEBASECURRENCY.ISO4217, ACCOUNTSYSTEMCURRENCY.ISO4217) as REVENUETRIBUTEAMOUNTCURRENCY,
    TRANSACTIONCURRENCY.ISO4217 as AMOUNTCURRENCY,
    TRANSACTIONCURRENCY.ISO4217 as RECEIPTAMOUNTCURRENCY,
    case 
      when REVENUEDESIGNATION1.DESIGNATIONID is not null then TRANSACTIONCURRENCY.ISO4217
      else null
    end as DESIGNATION1AMOUNTCURRENCY,
    case 
      when REVENUEDESIGNATION2.DESIGNATIONID is not null then TRANSACTIONCURRENCY.ISO4217
      else null
    end as DESIGNATION2AMOUNTCURRENCY,
    isnull(NONPOSTABLEBASECURRENCY.ISO4217, ACCOUNTSYSTEMCURRENCY.ISO4217) as GROSSAMOUNTCURRENCY
  from dbo.FINANCIALTRANSACTION
  inner join dbo.REVENUE_EXT on REVENUE_EXT.ID = FINANCIALTRANSACTION.ID
  inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
  inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
  inner join dbo.CURRENCY as ACCOUNTSYSTEMCURRENCY on ACCOUNTSYSTEMCURRENCY.ID = CURRENCYSET.BASECURRENCYID
  inner join dbo.CURRENCY as TRANSACTIONCURRENCY on TRANSACTIONCURRENCY.ID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
  left join dbo.CURRENCY as NONPOSTABLEBASECURRENCY on NONPOSTABLEBASECURRENCY.ID = REVENUE_EXT.NONPOSTABLEBASECURRENCYID
  left join dbo.REVENUETRIBUTE on FINANCIALTRANSACTION.ID = REVENUETRIBUTE.REVENUEID
  left join dbo.REVENUETRIBUTETAXCLAIMAMOUNT on REVENUETRIBUTE.ID = REVENUETRIBUTETAXCLAIMAMOUNT.ID
  left join dbo.TRIBUTE on REVENUETRIBUTE.TRIBUTEID = TRIBUTE.ID
  left join dbo.REVENUETRIBUTELETTER on REVENUETRIBUTE.ID = REVENUETRIBUTELETTER.REVENUETRIBUTEID
  outer apply dbo.UFN_REVENUE_GETORDEREDDESIGNATIONS_BYROWNUMBER(FINANCIALTRANSACTION.ID,1) as REVENUEDESIGNATION1
  outer apply dbo.UFN_REVENUE_GETORDEREDDESIGNATIONS_BYROWNUMBER(FINANCIALTRANSACTION.ID,2) as REVENUEDESIGNATION2
  inner join dbo.CONSTITUENT ACKNOWLEDGEE on REVENUETRIBUTELETTER.CONSTITUENTID = ACKNOWLEDGEE.ID
  inner join dbo.UFN_CONTACTPREFERENCES_GETFORMATS_EXT(
    @NAMEFORMATPARAMETERID,
    @ADDRESSPROCESSINGOPTIONID,
    7,
    null,
    @SEASONALDATE,
    0,
    @INDUSESEASONALADDRESS ,
    @ORGMAILINGPREFERENCE ,
    @INDALTADDRESS1TYPECODEID,
    @INDALTADDRESS1ISPRIMARY ,
    @INDALTADDRESS2TYPECODEID,
    @INDALTADDRESS2ISPRIMARY ,
    @ORGALTADDRESS1TYPECODEID,
    @ORGALTADDRESS1ISPRIMARY ,
    @ORGALTADDRESS2TYPECODEID,
    @ORGALTADDRESS2ISPRIMARY ,
    @INDINCLUDEWITHNOADDRESS ,
    @ORGINCLUDEWITHNOADDRESS ,
    @ORGINCLUDEWITHNOCONTACT ,
    @ORGSENDTOALLCONTACTS ,
    @INDUSECONSTITUENTPREFS ,
    @ORGUSECONSTITUENTPREFS ,
    @GROUPALTADDRESS1TYPECODEID,
    @GROUPALTADDRESS1ISPRIMARY ,
   @GROUPALTADDRESS2TYPECODEID,
    @GROUPALTADDRESS2ISPRIMARY ,
    @GROUPINCLUDEWITHNOADDRESS ,
    @GROUPUSECONSTITUENTPREFS ,
    @INDIVIDUALADDRESSEES ,
    @ADDRESSEEFUNCTIONID,
    @INDIVIDUALSALUTATIONS ,
    @SALUTATIONFUNCTIONID,
    @ORGADDRESSEES ,
    @CONTACTADDRESSEEFUNCTIONID,
    @ORGSALUTATIONCODE,
    @ORGSALUTATIONS ,
    @CONTACTSALUTATIONFUNCTIONID,
    @CONTACTSALUTATIONOPTIONCODE ,
    @CUSTOMNAME ,
    @GROUPADDRESSEES ,
    @GROUPADDRESSEEFUNCTIONID,
    @GROUPSALUTATIONCODE,
    @GROUPSALUTATIONS ,
    @GROUPSALUTATIONFUNCTIONID,
    @GROUPNOCONTACTOPTIONCODE ,
    @GROUPNOCONTACTCUSTOMNAME,
    @JOINTRULETYPECODE,
    @JOINTSELECTIONID,
    @JOINTSELECTIONBOTHRULETYPECODE,
    @JOINTSELECTIONNEITHERRULETYPECODE
    0) as A on ACKNOWLEDGEE.ID = A.CONSTITUENTID
  left join dbo.CONSTITUENT on CONSTITUENT.ID = FINANCIALTRANSACTION.CONSTITUENTID
  left join dbo.ADDRESS on ADDRESS.CONSTITUENTID = FINANCIALTRANSACTION.CONSTITUENTID and ADDRESS.ISPRIMARY = 1 
  left join dbo.COUNTRY on ADDRESS.COUNTRYID = COUNTRY.ID
  left join dbo.STATE on ADDRESS.STATEID = STATE.ID
  left join dbo.APPEAL on REVENUE_EXT.APPEALID = APPEAL.ID
  left join dbo.EMAILADDRESS on EMAILADDRESS.CONSTITUENTID=CONSTITUENT.ID and EMAILADDRESS.ISPRIMARY = 1
  left join dbo.STOCKDETAIL on FINANCIALTRANSACTION.ID = STOCKDETAIL.ID
  where
    REVENUE_EXT.DONOTACKNOWLEDGE = 0
    and FINANCIALTRANSACTION.TYPECODE in (0,1,2,4,5,6,7,8,9) -- not matching gift claims

    and CONSTITUENT.ID not in(select ID from dbo.DECEASEDCONSTITUENT)
    and FINANCIALTRANSACTION.DELETEDON is null

)