UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY
This function returns aggregate planned gift revenue information for designations in a given currency.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CURRENCYID | uniqueidentifier | IN | |
@DESIGNATIONID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY
(
@STARTDATE datetime,
@ENDDATE datetime,
@CURRENCYID uniqueidentifier,
@DESIGNATIONID uniqueidentifier
)
returns @REVENUEINFO table
(
DESIGNATIONID uniqueidentifier NOT NULL PRIMARY KEY CLUSTERED,
TOTALPLANNEDGIFT money NOT NULL
)
as begin
select
@STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE),
@ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
if @CURRENCYID is null
set @CURRENCYID = @ORGANIZATIONCURRENCYID;
select
@DECIMALDIGITS = DECIMALDIGITS,
@ROUNDINGTYPECODE = ROUNDINGTYPECODE
from
dbo.UFN_CURRENCY_GETPROPERTIES(@CURRENCYID)
insert @REVENUEINFO
select
D.ID,
sum(PLANNEDGIFTSPLIT.AMOUNTINCURRENCY)
from dbo.DESIGNATION D
inner join dbo.DESIGNATION D2 on (D.DESIGNATIONLEVEL1ID = D2.DESIGNATIONLEVEL1ID and
(D.DESIGNATIONLEVEL2ID = D2.DESIGNATIONLEVEL2ID or D.DESIGNATIONLEVEL2ID is null) and
(D.DESIGNATIONLEVEL3ID = D2.DESIGNATIONLEVEL3ID or D.DESIGNATIONLEVEL3ID is null) and
(D.DESIGNATIONLEVEL4ID = D2.DESIGNATIONLEVEL4ID or D.DESIGNATIONLEVEL4ID is null) and
(D.DESIGNATIONLEVEL5ID = D2.DESIGNATIONLEVEL5ID or D.DESIGNATIONLEVEL5ID is null))
inner join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) PLANNEDGIFTSPLIT on D2.ID = PLANNEDGIFTSPLIT.DESIGNATIONID
inner join dbo.FINANCIALTRANSACTION PLANNEDGIFT on PLANNEDGIFTSPLIT.REVENUEID = PLANNEDGIFT.ID
where (PLANNEDGIFTSPLIT.DATE >= @STARTDATE) and
(PLANNEDGIFTSPLIT.DATE <= @ENDDATE) and
(PLANNEDGIFT.TYPECODE = 4 and PLANNEDGIFT.DELETEDON is null) and
(@DESIGNATIONID is null or @DESIGNATIONID = D.ID)
group by D.ID, D.DESIGNATIONLEVEL1ID, D.DESIGNATIONLEVEL2ID, D.DESIGNATIONLEVEL3ID, D.DESIGNATIONLEVEL4ID, D.DESIGNATIONLEVEL5ID
return
end