UFN_REVENUE_GETREVENUESTREAMS
Returns all revenue streams for a given revenue record.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TRANSACTIONID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_GETREVENUESTREAMS
(
@TRANSACTIONID uniqueidentifier
)
returns @RESULT table
(
ID uniqueidentifier,
CONSTITUENTID uniqueidentifier,
CONSTITUENTNAME nvarchar(255),
APPLIED money,
BALANCE money,
AMOUNTDUE money,
DATEDUE datetime,
TYPECODE tinyint,
RECEIPTAMOUNT money,
DONOTRECEIPT bit,
DESCRIPTION nvarchar(255)
)
as
begin
insert into @RESULT
--PLEDGE PAYMENTS
select
dbo.UFN_PLEDGE_GETPLEDGEFROMPAYMENT(REVENUE.ID) as [ID],
CONSTITUENT.ID as [CONSTITUENTID],
CONSTITUENT.NAME as [CONSTITUENTNAME],
REVENUESPLIT.AMOUNT as [APPLIED],
dbo.UFN_PLEDGE_GETBALANCE(dbo.UFN_PLEDGE_GETPLEDGEFROMPAYMENT(REVENUE.ID)) + REVENUE.AMOUNT as [BALANCE],
dbo.UFN_INSTALLMENT_GETOLDINSTALLMENTBALANCE(dbo.UFN_REVENUE_GETOLDNEXTINSTALLMENT(dbo.UFN_PLEDGE_GETPLEDGEFROMPAYMENT(REVENUE.ID), REVENUE.ID), REVENUE.ID) as [AMOUNTDUE],
INSTALLMENT.DATE as [DATEDUE],
case
when REVENUESPLIT.APPLICATIONCODE = 2 then 1
when REVENUESPLIT.APPLICATIONCODE = 7 then 3
else null end as [TRANSACTIONTYPECODE],
REVENUE.RECEIPTAMOUNT as [RECEIPTAMOUNT],
[PLEDGEREVENUE].DONOTRECEIPT as [DONOTRECEIPT],
'' as [DESCRIPTION]
from dbo.REVENUE
inner join dbo.REVENUESPLIT on REVENUESPLIT.REVENUEID = REVENUE.ID
left join dbo.INSTALLMENT on INSTALLMENT.ID = dbo.UFN_REVENUE_GETOLDNEXTINSTALLMENT(dbo.UFN_PLEDGE_GETPLEDGEFROMPAYMENT(REVENUE.ID), REVENUE.ID)
left join dbo.REVENUE as [PLEDGEREVENUE] on [PLEDGEREVENUE].ID = INSTALLMENT.REVENUEID
left join dbo.CONSTITUENT on CONSTITUENT.ID = [PLEDGEREVENUE].CONSTITUENTID
where REVENUE.ID = @TRANSACTIONID and REVENUESPLIT.APPLICATIONCODE in (2, 7)
union all
--RECURRING GIFT PAYMENTS
select
SOURCEREVENUEID as [ID],
CONSTITUENT.ID as [CONSTITUENTID],
CONSTITUENT.NAME as [CONSTITUENTNAME],
REVENUE.AMOUNT as [APPLIED],
0 as [BALANCE],
TEMPLATE.AMOUNT as [AMOUNTDUE],
RECURRINGGIFTACTIVITY.SCHEDULEDATE as [DATEDUE],
2 as [TRANSACTIONTYPECODE],
REVENUE.RECEIPTAMOUNT as [RECEIPTAMOUNT],
REVENUE.DONOTRECEIPT as [DONOTRECEIPT],
'' as [DESCRIPTION]
from dbo.REVENUE
inner join dbo.REVENUESPLIT on REVENUESPLIT.REVENUEID = REVENUE.ID
inner join dbo.CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
inner join dbo.RECURRINGGIFTACTIVITY on PAYMENTREVENUEID = REVENUESPLIT.ID
inner join dbo.REVENUE TEMPLATE on TEMPLATE.ID = SOURCEREVENUEID
where REVENUE.ID = @TRANSACTIONID and REVENUESPLIT.APPLICATIONCODE = 3
union all
--EVENT REGISTRATION FEE PAYMENTS
select
REGISTRANT.ID,
CONSTITUENT.ID as [CONSTITUENTID],
CONSTITUENT.NAME as [CONSTITUENTNAME],
REVENUESPLIT.AMOUNT as [APPLIED],
dbo.UFN_EVENTREGISTRANT_GETBALANCE(REGISTRANT.ID) + REVENUESPLIT.AMOUNT as [BALANCE],
dbo.UFN_EVENTREGISTRANT_GETBALANCE(REGISTRANT.ID) + REVENUESPLIT.AMOUNT as [AMOUNTDUE],
[EVENT].STARTDATE as [DATEDUE], --JamesWill CR260844-113006 2007/03/15 Use the event start date as the due date
6 as [TRANSACTIONTYPECODE],
REVENUE.RECEIPTAMOUNT as [RECEIPTAMOUNT],
REVENUE.DONOTRECEIPT as [DONOTRECEIPT],
[EVENT].NAME as [DESCRIPTION]
from dbo.REGISTRANT
inner join dbo.CONSTITUENT on CONSTITUENT.ID = REGISTRANT.CONSTITUENTID
inner join dbo.[EVENT] on [EVENT].ID = REGISTRANT.EVENTID
inner join dbo.EVENTREGISTRANTPAYMENT as [PAYMENT] on [PAYMENT].REGISTRANTID = REGISTRANT.ID
inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = [PAYMENT].PAYMENTID
inner join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
where REVENUE.ID = @TRANSACTIONID
order by CONSTITUENTID, TRANSACTIONTYPECODE;
return;
end