UFN_QUERY_ACKNOWLEDGEMENTPLEDGENAMEFORMATOUTPUT

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@NAMEFORMATPARAMETERID uniqueidentifier IN
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN
@PARAMETERSETID 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_ACKNOWLEDGEMENTPLEDGENAMEFORMATOUTPUT]
(
  @NAMEFORMATPARAMETERID uniqueidentifier,
  @ADDRESSPROCESSINGOPTIONID uniqueidentifier,
  @PARAMETERSETID uniqueidentifier = null,
  @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 [FIRSTINSTALLMENT_CTE] as
  (
    select
      [REVENUEID],
      [DATE],
      [TRANSACTIONAMOUNT]
    from dbo.[INSTALLMENT]
    where [SEQUENCE] = 1
  ),
  [NEXTINSTALLMENT_CTE] as
  (
    select
      [REVENUEID],
      [INSTALLMENTID]
    from dbo.[UFN_REVENUE_GETNEXTINSTALLMENT_BULK]()
  ),
  [GIFTAID_CTE] as
  (
    select
      REVENUE.ID as REVENUEID,
      case REVENUE.TRANSACTIONTYPECODE 
        when 0 then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEGROSSAMOUNT_2(REVENUE.ID, 1, 1)
        when 1 then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGEGROSSAMOUNT_2(REVENUE.ID, 1)
        when 2 then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEGROSSAMOUNT_2(REVENUE.ID, 1, 1)
      end as GROSSAMOUNT
    from dbo.REVENUE
    where exists(select * from dbo.INSTALLEDPRODUCTLIST where ID = '9568A6C2-F7AA-45fd-8F54-21FE9654EE2D')
  )
  select
    REVENUE.ID as REVENUEID, 
    CONSTITUENT.NAME as CONSTITUENTNAME,
    CONSTITUENT.LOOKUPID as CONSTITUENTLOOKUPID,
    A.ADDRESSEE,    
    A.SALUTATION,
    A.CONTACT as CONTACTADDRESSEE,
    A.POSITION,
    A.ADDRESSBLOCK,
    A.CITY,
    A.STATE,
    A.POSTCODE,
    A.COUNTRY,
    REVENUE.TRANSACTIONAMOUNT as TOTALPLEDGEAMOUNT,
    REVENUE.DATE as PLEDGEDATE,
    SCHEDULE.FREQUENCY,
    SCHEDULE.STARTDATE,
    SCHEDULE.NUMBEROFINSTALLMENTS,
    [FIRSTINSTALLMENT_CTE].[DATE] as [FIRSTDUEDATE],
    [FIRSTINSTALLMENT_CTE].[TRANSACTIONAMOUNT] as [FIRSTINSTALLMENTAMOUNT],
    case SCHEDULE.SENDPLEDGEREMINDER when 1 then 'Yes' else 'No' end as SENDPLEDGEREMINDER,
    case REVENUE.GIVENANONYMOUSLY when 1 then 'Yes' else 'No' end as GIVENANONYMOUSLY,
    case when [FIRSTGIFTS].[ID] is not null then 'Yes' else 'No' end as [ISFIRSTGIFT],
    APPEAL.NAME as APPEALNAME,
    [DESIGNATION1].[DESIGNATIONNAME] as [DESIGNATION1NAME],
    [DESIGNATION1].[DESIGNATIONPUBLICNAME] as [DESIGNATION1PUBLICNAME],
    [DESIGNATION1].[TRANSACTIONAMOUNT] as [DESIGNATION1AMOUNT],
    [DESIGNATION2].[DESIGNATIONNAME] as [DESIGNATION2NAME],
    [DESIGNATION2].[DESIGNATIONPUBLICNAME] as [DESIGNATION2PUBLICNAME],
    [DESIGNATION2].[TRANSACTIONAMOUNT] as [DESIGNATION2AMOUNT],
    REVENUELETTER.ID as REVENUELETTERID,
    (select FORMATTEDNAME from dbo.NAMEFORMAT where NAMEFORMAT.CONSTITUENTID = DONOR.ID and NAMEFORMAT.PRIMARYADDRESSEE = 1) as DONORADDRESSEE,
    DONORADDRESS.ADDRESSBLOCK as DONORADDRESSBLOCK,
    DONORADDRESS.CITY as DONORCITY,
    DONORSTATE.ABBREVIATION as DONORSTATE,
    DONORADDRESS.POSTCODE as DONORPOSTCODE,
    DONORCOUNTRY.DESCRIPTION as DONORCOUNTRY,
    case when [DDPAYMENT].ID is null then null else [DONOR].NAME end as [DDIACCOUNTHOLDER],
    case when [DDPAYMENT].ID is null then null else [DONORADDRESS].ADDRESSBLOCK end as [DDIACCOUNTHOLDERADDRESSBLOCK],
    case when [DDPAYMENT].ID is null then null else [DONORADDRESS].CITY end as [DDIACCOUNTHOLDERCITY],
    case when [DDPAYMENT].ID is null then null else [DONORSTATE].ABBREVIATION end as [DDIACCOUNTHOLDERSTATE],
    case when [DDPAYMENT].ID is null then null else [DONORADDRESS].POSTCODE end as [DDIACCOUNTHOLDERPOSTCODE],
    case when [DDPAYMENT].ID is null then null else [DONORCOUNTRY].DESCRIPTION end as [DDIACCOUNTHOLDERCOUNTRY],
    case when [DDPAYMENT].ID is null then null else convert(nvarchar(50), DecryptByKey([DDACCOUNT].ACCOUNTNUMBER)) end as [DDIACCOUNTNUMBER],
    case when [DDPAYMENT].ID is null then null else [DDBANK].FINANCIALINSTITUTION end as [DDIACCOUNTBANK],
    case when [DDPAYMENT].ID is null then null else [DDBANK].BRANCHNAME end as [DDIACCOUNTBRANCH],
    case when [DDPAYMENT].ID is null then null else [DDBANK].ADDRESSBLOCK end as [DDIACCOUNTBANKADDRESSBLOCK],
    case when [DDPAYMENT].ID is null then null else [DDBANK].CITY end as [DDIACCOUNTBANKCITY],
    case when [DDPAYMENT].ID is null then null else [DDBANKSTATE].ABBREVIATION end as [DDIACCOUNTBANKSTATE],
    case when [DDPAYMENT].ID is null then null else [DDBANK].POSTCODE end as [DDIACCOUNTBANKPOSTCODE],
    case when [DDPAYMENT].ID is null then null else [DDBANKCOUNTRY].DESCRIPTION end as [DDIACCOUNTBANKCOUNTRY],
    case when [DDPAYMENT].ID is null then null else [DDSCHEDULE].NUMBEROFINSTALLMENTS end as [DDINUMBEROFINSTALLMENTS],
    case when [DDPAYMENT].ID is null then null else [DDSCHEDULE].FREQUENCY end as [DDIFREQUENCY],
    case when [DDPAYMENT].ID is null then null else [DDSCHEDULE].STARTDATE end as [DDISTARTDATE],
    case when [DDPAYMENT].ID is null then null else dbo.UFN_REVENUE_GETLASTTRANSACTIONDATE(REVENUE.ID) end as [DDIENDDATE],
    case when [DDPAYMENT].ID is null then null
      else
      (
        case when REVENUE.TRANSACTIONTYPECODE = 1 then 
          dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCE([DDINSTALLMENT].ID)
        when REVENUE.TRANSACTIONTYPECODE = 2 then 
          REVENUE.TRANSACTIONAMOUNT
        else 
          null
        end
      )
    end as [DDIINSTALLMENTAMOUNT],
    [DDACCOUNT].ACCOUNTNAME as [DDINAMEONACCOUNT],
    isnull([GIFTAID_CTE].[GROSSAMOUNT], [REVENUE].[TRANSACTIONAMOUNT]) as [AMOUNTWITHGIFTAID],
    CONSTITUENT.ID as CONSTITUENTID,
    REVENUE.TRANSACTIONCURRENCYID,
    [CURRENCY].[ISO4217] as [TRANSACTIONCURRENCY],
  case
    when len(coalesce(convert(nvarchar(50), DecryptByKey([DDACCOUNT].ACCOUNTNUMBER)),'')) = 0 then ''
    else replicate('*', len(coalesce(convert(nvarchar(50), DecryptByKey([DDACCOUNT].ACCOUNTNUMBER)),'')) -
      len(right(coalesce(convert(nvarchar(50), DecryptByKey([DDACCOUNT].ACCOUNTNUMBER)),''), 4))) +
      right(coalesce(convert(nvarchar(50), DecryptByKey([DDACCOUNT].ACCOUNTNUMBER)),''), 4)
  end as [DDIACCOUNTNUMBER_MASKED]
  from dbo.REVENUE
  inner join dbo.REVENUELETTER on REVENUE.ID = REVENUELETTER.REVENUEID
  inner join dbo.CONSTITUENT DONOR on REVENUE.CONSTITUENTID = DONOR.ID
  inner join dbo.CONSTITUENT on REVENUELETTER.ACKNOWLEDGEEID = CONSTITUENT.ID
  inner join dbo.UFN_CONTACTPREFERENCES_GETFORMATS_EXT(
    @NAMEFORMATPARAMETERID,
    @ADDRESSPROCESSINGOPTIONID,
    0,
    @PARAMETERSETID,
    @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) A on CONSTITUENT.ID = A.CONSTITUENTID  
  left join dbo.REVENUESCHEDULE SCHEDULE on REVENUE.ID = SCHEDULE.ID
  left join dbo.APPEAL on REVENUE.APPEALID = APPEAL.ID
  left join dbo.ADDRESS DONORADDRESS on DONORADDRESS.CONSTITUENTID = DONOR.ID and DONORADDRESS.ISPRIMARY = 1 and DONORADDRESS.DONOTMAIL = 0
  left join dbo.COUNTRY DONORCOUNTRY on DONORADDRESS.COUNTRYID = DONORCOUNTRY.ID
  left join dbo.STATE DONORSTATE on DONORADDRESS.STATEID = DONORSTATE.ID
  left join dbo.EMAILADDRESS DONOREMAILADDRESS on DONOREMAILADDRESS.CONSTITUENTID = DONOR.ID and DONOREMAILADDRESS.ISPRIMARY = 1 and DONOREMAILADDRESS.DONOTEMAIL = 0
  left join dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT as [DDPAYMENT] on [DDPAYMENT].ID = REVENUE.ID
  left join dbo.CONSTITUENTACCOUNT as [DDACCOUNT] on [DDACCOUNT].ID = [DDPAYMENT].CONSTITUENTACCOUNTID
  left join dbo.FINANCIALINSTITUTION as [DDBANK] on [DDBANK].ID = [DDACCOUNT].FINANCIALINSTITUTIONID
  left join dbo.STATE as [DDBANKSTATE] on [DDBANKSTATE].ID = [DDBANK].STATEID
  left join dbo.COUNTRY as [DDBANKCOUNTRY] on [DDBANKCOUNTRY].ID = [DDBANK].COUNTRYID
  left join dbo.REVENUESCHEDULE as [DDSCHEDULE] on [DDSCHEDULE].ID = [DDPAYMENT].ID
  left join [NEXTINSTALLMENT_CTE] on [NEXTINSTALLMENT_CTE].[REVENUEID] = [DDPAYMENT].[ID]
  left join dbo.INSTALLMENT [DDINSTALLMENT] on [DDPAYMENT].ID is not null and REVENUE.TRANSACTIONTYPECODE = 1 and [DDINSTALLMENT].ID = [NEXTINSTALLMENT_CTE].[INSTALLMENTID]
  left join [GIFTAID_CTE] on [REVENUE].[ID] = [GIFTAID_CTE].[REVENUEID]
  left join dbo.[UFN_FINANCIALTRANSACTION_GETFIRSTGIFTS]() as [FIRSTGIFTS] on [FIRSTGIFTS].[ID] = [REVENUE].[ID]
  left join [FIRSTINSTALLMENT_CTE] on [FIRSTINSTALLMENT_CTE].[REVENUEID] = [REVENUE].[ID]
  left join dbo.[CURRENCY] on [CURRENCY].[ID] = [REVENUE].[TRANSACTIONCURRENCYID]
  outer apply dbo.[UFN_REVENUE_GETORDEREDDESIGNATIONS_BYROWNUMBER]([REVENUE].[ID], 1) as [DESIGNATION1]
  outer apply dbo.[UFN_REVENUE_GETORDEREDDESIGNATIONS_BYROWNUMBER]([REVENUE].[ID], 2) as [DESIGNATION2]
  where REVENUE.ID not in (select ID from dbo.REVENUE_EXT where DONOTACKNOWLEDGE = 1)
  and REVENUE.TRANSACTIONTYPECODE <> 3
)