V_QUERY_ACKNOWLEDGEMENTPROCESS
View used for standard output for the acknowledgement process.
Fields
Field | Field Type | Null | Description |
---|---|---|---|
REVENUEID | uniqueidentifier | System record ID | |
CONSTITUENTNAME | nvarchar(154) | yes | Constituent name |
CONSTITUENTLOOKUPID | nvarchar(100) | yes | Constituent lookup ID |
PRIMARYADDRESSEE | nvarchar(4000) | yes | Primary addressee |
PRIMARYSALUTATION | nvarchar(4000) | yes | Primary salutation |
PRIMARYCONTACT | nvarchar(154) | yes | Primary contact |
ADDRESSBLOCK | nvarchar(150) | yes | Address block |
CITY | nvarchar(50) | yes | City |
STATE | nvarchar(50) | yes | State |
POSTCODE | nvarchar(12) | yes | Post code |
COUNTRY | nvarchar(100) | yes | Country |
EMAILADDRESS | UDT_EMAILADDRESS | yes | Email address |
REVENUETYPE | nvarchar(27) | yes | Revenue type |
DATE | datetime | yes | Date |
PAYMENTMETHOD | nvarchar(14) | yes | Payment method |
GIVENANONYMOUSLY | varchar(3) | Anonymous | |
ISFIRSTGIFT | varchar(3) | First gift | |
AMOUNT | money | Revenue amount | |
RECEIPTAMOUNT | money | Receipt amount | |
APPEALNAME | nvarchar(100) | yes | Appeal name |
DESIGNATION1NAME | nvarchar(512) | yes | Designation 1 |
DESIGNATION1PUBLICNAME | nvarchar(512) | yes | Designation 1 public name |
DESIGNATION1AMOUNT | money | yes | Designation 1 amount |
DESIGNATION2NAME | nvarchar(512) | yes | Designation 2 |
DESIGNATION2PUBLICNAME | nvarchar(512) | yes | Designation 2 public name |
DESIGNATION2AMOUNT | money | yes | Designation 2 amount |
BENEFITSWAIVED | varchar(3) | Revenue benefits waived | |
BENEFIT1NAME | nvarchar(100) | yes | Benefit 1 |
BENEFIT1QUANTITY | decimal(20, 4) | yes | Benefit 1 quantity |
BENEFIT1UNITVALUE | money | yes | Benefit 1 unit cost |
BENEFIT1TOTALVALUE | money | yes | Benefit 1 total value |
BENEFIT2NAME | nvarchar(100) | yes | Benefit 2 |
BENEFIT2QUANTITY | decimal(20, 4) | yes | Benefit 2 quantity |
BENEFIT2UNITVALUE | money | yes | Benefit 2 unit cost |
BENEFIT2TOTALVALUE | money | yes | Benefit 2 total value |
ISSUER | nvarchar(100) | yes | Stock issuer |
SYMBOL | nvarchar(25) | yes | Stock symbol |
NUMBEROFUNITS | decimal(20, 3) | yes | Stock number of units |
MEDIANPRICE | decimal(19, 4) | yes | Stock median price |
PROPERTYGIKSUBTYPE | nvarchar(100) | yes | Property/GIK subtype |
POSITION | nvarchar(100) | yes | Position |
REVENUELETTERID | uniqueidentifier | Revenue letter ID | |
DONORADDRESSEE | nvarchar(700) | yes | Donor primary addressee |
DONORADDRESSBLOCK | nvarchar(150) | yes | Donor address block |
DONORCITY | nvarchar(50) | yes | Donor city |
DONORSTATE | nvarchar(50) | yes | Donor state |
DONORPOSTCODE | nvarchar(12) | yes | Donor post code |
DONORCOUNTRY | nvarchar(100) | yes | Donor country |
DONOREMAILADDRESS | UDT_EMAILADDRESS | yes | Donor email address |
DDIACCOUNTHOLDER | nvarchar(154) | yes | Direct debit account holder |
DDIACCOUNTHOLDERADDRESSBLOCK | nvarchar(150) | yes | Direct debit account holder address block |
DDIACCOUNTHOLDERCITY | nvarchar(50) | yes | Direct debit account holder city |
DDIACCOUNTHOLDERSTATE | nvarchar(50) | yes | Direct debit account holder state |
DDIACCOUNTHOLDERPOSTCODE | nvarchar(12) | yes | Direct debit account holder post code |
DDIACCOUNTHOLDERCOUNTRY | nvarchar(100) | yes | Direct debit account holder country |
DDIACCOUNTNUMBER | nvarchar(50) | yes | Direct debit account number |
DDIACCOUNTBANK | nvarchar(100) | yes | Direct debit financial institution |
DDIACCOUNTBRANCH | nvarchar(100) | yes | Direct debit branch |
DDIACCOUNTBANKADDRESSBLOCK | nvarchar(150) | yes | Direct debit financial institution address block |
DDIACCOUNTBANKCITY | nvarchar(50) | yes | Direct debit financial institution city |
DDIACCOUNTBANKSTATE | nvarchar(50) | yes | Direct debit financial institution state |
DDIACCOUNTBANKPOSTCODE | nvarchar(12) | yes | Direct debit financial institution post code |
DDIACCOUNTBANKCOUNTRY | nvarchar(100) | yes | Direct debit financial institution country |
DDINUMBEROFINSTALLMENTS | int | yes | Direct debit number of installments |
DDIFREQUENCY | nvarchar(18) | yes | Direct debit frequency |
DDISTARTDATE | datetime | yes | Direct debit start date |
DDIENDDATE | date | yes | Direct debit end date |
DDIINSTALLMENTAMOUNT | money | yes | Direct debit installment amount |
DDINAMEONACCOUNT | nvarchar(100) | yes | Direct debit name on account |
AMOUNTWITHGIFTAID | money | Amount with Gift Aid | |
GIFTINKINDITEMNAME | nvarchar(100) | yes | Gift-in-kind item name |
GIFTINKINDDISPOSITION | nvarchar(7) | yes | Gift-in-kind disposition |
GIFTINKINDNUMBEROFUNITS | int | yes | Gift-in-kind number of units |
GIFTINKINDFAIRMARKETVALUE | money | yes | Gift-in-kind fair market value per unit |
BENEFIT1PERCENTVALUE | decimal(20, 4) | yes | Benefit 1 percent value |
BENEFIT2PERCENTVALUE | decimal(20, 4) | yes | Benefit 2 percent value |
TRANSACTIONCURRENCYID | uniqueidentifier | Transaction currency ID | |
TRANSACTIONCURRENCY | nvarchar(3) | Transaction currency | |
DDIACCOUNTNUMBER_MASKED | nvarchar(4000) | yes |
Definition
Copy
/*
Generated by Blackbaud AppFx Platform
Date: 5/3/2024 2:16:43 PM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=4.0.3700.0, Culture=neutral, PublicKeyToken=null
Copyright Blackbaud
*/
CREATE VIEW dbo.V_QUERY_ACKNOWLEDGEMENTPROCESS AS
select
REVENUE.ID as REVENUEID,
CONSTITUENT.NAME as CONSTITUENTNAME,
CONSTITUENT.LOOKUPID as CONSTITUENTLOOKUPID,
FORMATTEDNAMES.PRIMARYADDRESSEE,
FORMATTEDNAMES.PRIMARYSALUTATION,
case when CONSTITUENT.ISORGANIZATION = 1 then
(select top (1)
CONTACT.NAME
from dbo.RELATIONSHIP
inner join dbo.CONSTITUENT CONTACT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONTACT.ID
where RELATIONSHIP.ISPRIMARYCONTACT = 1
and RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID)
else
null
end as PRIMARYCONTACT,
isnull(PRIMARYCONTACTADDRESS.ADDRESSBLOCK, ADDRESS.ADDRESSBLOCK) as ADDRESSBLOCK,
isnull(PRIMARYCONTACTADDRESS.CITY, ADDRESS.CITY) as CITY,
STATE.ABBREVIATION as STATE,
isnull(PRIMARYCONTACTADDRESS.POSTCODE, ADDRESS.POSTCODE) as POSTCODE,
COUNTRY.DESCRIPTION as COUNTRY,
EMAILADDRESS.EMAILADDRESS,
case REVENUE.TYPECODE
when 0 then N'Payment'
when 1 then N'Pledge'
when 2 then N'Recurring gift'
when 3 then N'Matching gift claim'
when 4 then N'Planned gift'
when 5 then N'Order'
when 6 then N'Grant award'
when 7 then N'Auction donation'
when 8 then N'Donor challenge claim'
when 9 then N'Pending gift'
when 15 then N'Membership installment plan'
end as REVENUETYPE,
cast(REVENUE.DATE as datetime) as DATE,
REVENUEPAYMENTMETHOD.PAYMENTMETHOD as PAYMENTMETHOD,
REVENUE.GIVENANONYMOUSLY,
case when [FIRSTGIFTS].[ID] is not null then 'Yes' else 'No' end as [ISFIRSTGIFT],
REVENUE.TRANSACTIONAMOUNT as AMOUNT,
REVENUE.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,
REVENUE.BENEFITSWAIVED,
REVENUEBENEFIT1.NAME as BENEFIT1NAME,
REVENUEBENEFIT1.QUANTITY as BENEFIT1QUANTITY,
REVENUEBENEFIT1.TRANSACTIONUNITVALUE as BENEFIT1UNITVALUE,
REVENUEBENEFIT1.TRANSACTIONTOTALVALUE as BENEFIT1TOTALVALUE,
REVENUEBENEFIT2.NAME as BENEFIT2NAME,
REVENUEBENEFIT2.QUANTITY as BENEFIT2QUANTITY,
REVENUEBENEFIT2.TRANSACTIONUNITVALUE as BENEFIT2UNITVALUE,
REVENUEBENEFIT2.TRANSACTIONTOTALVALUE as BENEFIT2TOTALVALUE,
STOCKDETAIL.ISSUER as ISSUER,
STOCKDETAIL.SYMBOL as SYMBOL,
STOCKDETAIL.NUMBEROFUNITS as NUMBEROFUNITS,
STOCKDETAIL.TRANSACTIONMEDIANPRICE as MEDIANPRICE,
PROPERTYGIKSUBTYPE =
case when REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE in (5,8) then (select PTC.DESCRIPTION from dbo.PROPERTYSUBTYPECODE PTC where PTC.ID = PROPERTYDETAIL.PROPERTYSUBTYPECODEID)
when REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 6 then [GIKCODE].DESCRIPTION
else null end,
case when CONSTITUENT.ISORGANIZATION = 1 then
(select top 1 RELATIONSHIP.POSITION from dbo.RELATIONSHIP
inner join dbo.CONSTITUENT CONTACT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONTACT.ID
where RELATIONSHIP.ISPRIMARYCONTACT = 1
and RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID)
else
null
end as POSITION,
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,
DONOREMAILADDRESS.EMAILADDRESS as DONOREMAILADDRESS,
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
(
select case when REVENUE.TYPECODE in (1,15) then
dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCE([NEXTINSTALLMENTS].[INSTALLMENTID])
when REVENUE.TYPECODE = 2 then
REVENUE.TRANSACTIONAMOUNT
else
null
end
)
end as [DDIINSTALLMENTAMOUNT],
[DDACCOUNT].ACCOUNTNAME as [DDINAMEONACCOUNT],
isnull(GIFTAID.GROSSAMOUNT, REVENUE.TRANSACTIONAMOUNT) as AMOUNTWITHGIFTAID,
[GIK].ITEMNAME as [GIFTINKINDITEMNAME],
[GIK].DISPOSITION as [GIFTINKINDDISPOSITION],
[GIK].NUMBEROFUNITS as [GIFTINKINDNUMBEROFUNITS],
[GIK].TRANSACTIONFAIRMARKETVALUE as [GIFTINKINDFAIRMARKETVALUE],
REVENUEBENEFIT1.VALUEPERCENT as BENEFIT1PERCENTVALUE,
REVENUEBENEFIT2.VALUEPERCENT as BENEFIT2PERCENTVALUE,
REVENUE.TRANSACTIONCURRENCYID,
C.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
(
select
FT.ID
,FT.TYPECODE
,FT.DATE
,case REX.GIVENANONYMOUSLY when 1 then 'Yes' else 'No' end as GIVENANONYMOUSLY
,FT.CONSTITUENTID
,FT.TRANSACTIONAMOUNT
,REX.RECEIPTAMOUNT
,case REX.BENEFITSWAIVED when 1 then 'Yes' else 'No' end as BENEFITSWAIVED
,FT.TRANSACTIONCURRENCYID
,REX.APPEALID
from dbo.FINANCIALTRANSACTION as FT
inner join dbo.REVENUE_EXT as REX ON FT.ID = REX.ID
where
FT.ID not in (select ID FROM REVENUE_EXT where donotacknowledge = 1)
--REVENUE_EXT.DONOTACKNOWLEDGE = 0
and FT.TYPECODE != 3
and (FT.TYPECODE < 10 or FT.TYPECODE = 15)
and FT.DELETEDON is null
) as REVENUE
inner join dbo.CURRENCY as C on C.ID = REVENUE.TRANSACTIONCURRENCYID
outer apply dbo.UFN_REVENUE_GETORDEREDDESIGNATIONS_BYROWNUMBER(REVENUE.ID,1) REVENUEDESIGNATION1
outer apply dbo.UFN_REVENUE_GETORDEREDDESIGNATIONS_BYROWNUMBER(REVENUE.ID,2) REVENUEDESIGNATION2
inner join dbo.REVENUELETTER on REVENUELETTER.REVENUEID = REVENUE.ID
inner join dbo.REVENUEPAYMENTMETHOD on REVENUE.ID = REVENUEPAYMENTMETHOD.REVENUEID
inner join dbo.CONSTITUENT on CONSTITUENT.ID = REVENUELETTER.ACKNOWLEDGEEID
left join dbo.CONSTITUENT DONOR on DONOR.ID = REVENUE.CONSTITUENTID
left outer join
(
select
case
when NFADDRESSEE.NAMEFORMATFUNCTIONID is null
then NFADDRESSEE.CUSTOMNAME
else
replace(dbo.UFN_BUILDNAMEFORMAT(
NFADDRESSEE.NAMEFORMATFUNCTIONID,
CONSTITUENT.ID,
CONSTITUENT.KEYNAME,
CONSTITUENT.FIRSTNAME,
CONSTITUENT.MIDDLENAME,
CONSTITUENTTITLECODE.DESCRIPTION,
CONSTITUENTSUFFIXCODE.DESCRIPTION,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSE.KEYNAME else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSE.FIRSTNAME else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSE.MIDDLENAME else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSETITLECODE.DESCRIPTION else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSESUFFIXCODE.DESCRIPTION else null end
), N'{CONDBREAK}', N' ')
end as PRIMARYADDRESSEE,
case
when NFSALUTATION.NAMEFORMATFUNCTIONID is null
then NFSALUTATION.CUSTOMNAME
else
replace(dbo.UFN_BUILDNAMEFORMAT(
NFSALUTATION.NAMEFORMATFUNCTIONID,
CONSTITUENT.ID,
CONSTITUENT.KEYNAME,
CONSTITUENT.FIRSTNAME,
CONSTITUENT.MIDDLENAME,
CONSTITUENTTITLECODE.DESCRIPTION,
CONSTITUENTSUFFIXCODE.DESCRIPTION,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSE.KEYNAME else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSE.FIRSTNAME else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSE.MIDDLENAME else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSETITLECODE.DESCRIPTION else null end,
case when DECEASEDCONSTITUENT.ID is null and SPOUSE.ISINACTIVE =0 then SPOUSESUFFIXCODE.DESCRIPTION else null end
), N'{CONDBREAK}', N' ')
end as PRIMARYSALUTATION,
CONSTITUENT.ID
from dbo.CONSTITUENT
left outer join dbo.RELATIONSHIP on CONSTITUENT.ID = RELATIONSHIP.RELATIONSHIPCONSTITUENTID and RELATIONSHIP.ISSPOUSE = 1
left outer join dbo.CONSTITUENT as SPOUSE on SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
left outer join dbo.DECEASEDCONSTITUENT on DECEASEDCONSTITUENT.ID = SPOUSE.ID
left outer join dbo.NAMEFORMAT as NFADDRESSEE on NFADDRESSEE.CONSTITUENTID = CONSTITUENT.ID and NFADDRESSEE.PRIMARYADDRESSEE=1
left outer join dbo.NAMEFORMAT as NFSALUTATION on NFSALUTATION.CONSTITUENTID = CONSTITUENT.ID and NFSALUTATION.PRIMARYSALUTATION=1
left outer join dbo.TITLECODE as CONSTITUENTTITLECODE on CONSTITUENTTITLECODE.ID = CONSTITUENT.TITLECODEID
left outer join dbo.SUFFIXCODE as CONSTITUENTSUFFIXCODE on CONSTITUENTSUFFIXCODE.ID = CONSTITUENT.SUFFIXCODEID
left outer join dbo.TITLECODE as SPOUSETITLECODE on SPOUSETITLECODE.ID = SPOUSE.TITLECODEID
left outer join dbo.SUFFIXCODE as SPOUSESUFFIXCODE on SPOUSESUFFIXCODE.ID = SPOUSE.SUFFIXCODEID
) as FORMATTEDNAMES on CONSTITUENT.ID = FORMATTEDNAMES.ID
left join dbo.RELATIONSHIP ORGCONTACTS ON CONSTITUENT.ISORGANIZATION = 1 and ORGCONTACTS.ISPRIMARYCONTACT = 1 and ORGCONTACTS.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID
left join dbo.ADDRESS PRIMARYCONTACTADDRESS ON PRIMARYCONTACTADDRESS.RELATIONSHIPID = ORGCONTACTS.ID and PRIMARYCONTACTADDRESS.DONOTMAIL = 0
left join dbo.ADDRESS on PRIMARYCONTACTADDRESS.ID is null and ADDRESS.CONSTITUENTID = CONSTITUENT.ID and ADDRESS.ISPRIMARY = 1 and ADDRESS.DONOTMAIL = 0
left join dbo.COUNTRY on isnull(PRIMARYCONTACTADDRESS.COUNTRYID, ADDRESS.COUNTRYID) = COUNTRY.ID
left join dbo.STATE on isnull(PRIMARYCONTACTADDRESS.STATEID, ADDRESS.STATEID) = STATE.ID
left join dbo.APPEAL on REVENUE.APPEALID = APPEAL.ID
left join dbo.EMAILADDRESS on EMAILADDRESS.CONSTITUENTID = CONSTITUENT.ID and EMAILADDRESS.ISPRIMARY = 1
left join dbo.STOCKDETAIL on REVENUEPAYMENTMETHOD.ID = STOCKDETAIL.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 dbo.[UFN_REVENUE_GETNEXTINSTALLMENT_BULK]() as [NEXTINSTALLMENTS] on [NEXTINSTALLMENTS].[REVENUEID] = [DDPAYMENT].[ID]
left join
(
select
FINANCIALTRANSACTION.ID as REVENUEID,
case FINANCIALTRANSACTION.TYPECODE
when 0 then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEGROSSAMOUNT_2(FINANCIALTRANSACTION.ID, 1, 1)
when 1 then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGEGROSSAMOUNT_2(FINANCIALTRANSACTION.ID, 1)
when 2 then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEGROSSAMOUNT_2(FINANCIALTRANSACTION.ID, 1, 1)
end as GROSSAMOUNT
from dbo.FINANCIALTRANSACTION
where (FINANCIALTRANSACTION.TYPECODE < 10 or FINANCIALTRANSACTION.TYPECODE = 15)
and FINANCIALTRANSACTION.DELETEDON is null
and exists(select * from dbo.INSTALLEDPRODUCTLIST where ID = '9568A6C2-F7AA-45fd-8F54-21FE9654EE2D')
) as GIFTAID on REVENUE.ID = GIFTAID.REVENUEID
left join dbo.GIFTINKINDPAYMENTMETHODDETAIL as [GIK] on [GIK].ID = REVENUEPAYMENTMETHOD.ID
left join dbo.GIFTINKINDSUBTYPECODE as [GIKCODE] on [GIKCODE].ID = [GIK].GIFTINKINDSUBTYPECODEID
outer apply dbo.UFN_REVENUE_GETREVENUEBENEFITS_BYROWNUMBER(REVENUE.ID, 1) as REVENUEBENEFIT1
outer apply dbo.UFN_REVENUE_GETREVENUEBENEFITS_BYROWNUMBER(REVENUE.ID, 2) as REVENUEBENEFIT2
left join dbo.PROPERTYDETAIL on REVENUEPAYMENTMETHOD.ID = PROPERTYDETAIL.ID
left join dbo.[UFN_FINANCIALTRANSACTION_GETFIRSTGIFTS]() as [FIRSTGIFTS] on [FIRSTGIFTS].[ID] = [REVENUE].[ID]