UFN_OPPORTUNITY_REVENUEAPPLIED
Calculates the amount of revenue applied to an opportunity.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_OPPORTUNITY_REVENUEAPPLIED(@ID uniqueidentifier)
returns money
with execute as caller
as begin
declare @TempTbl table (
REVENUEID uniqueidentifier,
AMOUNT money,
TRANSACTIONID uniqueidentifier
);
insert into @TempTbl
-- gifts and pledges
select distinct
R.ID as REVENUEID,
R.AMOUNT as AMOUNT,
R.ID as TRANSACTIONID
from
dbo.REVENUEOPPORTUNITY RO
inner join
dbo.REVENUESPLIT RS on RO.ID = RS.ID
inner join
dbo.REVENUE R on RS.REVENUEID = R.ID
where
RO.OPPORTUNITYID = @ID
and
(R.TRANSACTIONTYPECODE = 1
or
(R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE = 0))
-- pledge payments
union all
select
PRS.ID as REVENUEID,
R.AMOUNT as AMOUNT,
R.ID as TRANSACTIONID
from
dbo.INSTALLMENTPAYMENT IP
inner join
dbo.REVENUE R on IP.PAYMENTID = R.ID
inner join
dbo.REVENUE PR on IP.PLEDGEID = PR.ID
inner join
dbo.REVENUESPLIT PRS on PRS.REVENUEID = PR.ID
inner join
dbo.REVENUEOPPORTUNITY RO on RO.ID = PRS.ID
where
RO.OPPORTUNITYID = @ID
return coalesce((select SUM(AMOUNT) from @TempTbl), 0)
end