UFN_DESIGNATION_RAISEDBYAPPEAL_INCURRENCY
Creates a table of appeals, their descriptions, and the associated revenue information in a given currency.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_DESIGNATION_RAISEDBYAPPEAL_INCURRENCY
(@STARTDATE datetime, @ENDDATE datetime, @CURRENCYID uniqueidentifier = null)
returns @REVENUEINFO table
(
APPEALID uniqueidentifier NOT NULL,
DESID uniqueidentifier NOT NULL,
DESNAME nvarchar(500) NOT NULL,
DESTOTALRECEIVED money NOT NULL,
DESTOTALRECEIVED_REGULAR money NOT NULL,
DESGROSSAMOUNT money NOT NULL
)
as
begin
select
@STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE),
@ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
declare @ORGANIZATIONCURRENCY uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @CURRENCYCODE tinyint;
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
if @CURRENCYID is null
set @CURRENCYCODE = 0; -- Use the appeal's base currency
else if @CURRENCYID = @ORGANIZATIONCURRENCY
set @CURRENCYCODE = 1; -- Use the organization currency
else
set @CURRENCYCODE = 3; -- Use the currency specified
if @CURRENCYCODE = 3
select
@DECIMALDIGITS = DECIMALDIGITS,
@ROUNDINGTYPECODE = ROUNDINGTYPECODE
from
dbo.UFN_CURRENCY_GETPROPERTIES(@CURRENCYID)
insert into @REVENUEINFO
select
APPEALREVENUESPLIT.APPEALID APPEALID,
APPEALREVENUESPLIT.DESIGNATIONID DESID,
APPEALREVENUESPLIT.DESIGNATIONNAME DESNAME,
isnull(sum(APPEALREVENUESPLIT.REVENUESPLITAMOUNTINCURRENCY),0) DESTOTALRECEIVED,
0 DESTOTALRECEIVED_REGULAR,
isnull(sum(APPEALREVENUESPLIT.REVENUESPLITAMOUNTINCURRENCY),0) + isnull(sum(APPEALREVENUESPLIT.TAXCLAIMAMOUNTINCURRENCY),0) DESGROSSAMOUNT
from
dbo.UFN_APPEALREVENUESPLIT_GETAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCY, @DECIMALDIGITS, @ROUNDINGTYPECODE, @CURRENCYCODE) APPEALREVENUESPLIT
where (APPEALREVENUESPLIT.APPEALID is not null) and
(APPEALREVENUESPLIT.DATE >= @STARTDATE or @STARTDATE is null) and
(APPEALREVENUESPLIT.DATE <= @ENDDATE or @ENDDATE is null) and
APPEALREVENUESPLIT.TRANSACTIONTYPECODE = 0 and
APPEALREVENUESPLIT.DESIGNATIONID is not null
group by APPEALREVENUESPLIT.APPEALID, APPEALREVENUESPLIT.DESIGNATIONID, APPEALREVENUESPLIT.DESIGNATIONNAME;
-- update table to include total received from regular gifts (recurring gift payments)
update @REVENUEINFO set
DESTOTALRECEIVED_REGULAR =
(
select
isnull(sum(APPEALREVENUESPLIT.REVENUESPLITAMOUNTINCURRENCY),0)
from dbo.UFN_APPEALREVENUESPLIT_GETAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCY, @DECIMALDIGITS, @ROUNDINGTYPECODE, @CURRENCYCODE) APPEALREVENUESPLIT
where (APPEALREVENUESPLIT.APPEALID = info.APPEALID) and
(APPEALREVENUESPLIT.DESIGNATIONID = info.DESID) and
(APPEALREVENUESPLIT.DATE >= @STARTDATE or @STARTDATE is null) and
(APPEALREVENUESPLIT.DATE <= @ENDDATE or @ENDDATE is null) and
APPEALREVENUESPLIT.TRANSACTIONTYPECODE = 0 and
APPEALREVENUESPLIT.APPLICATIONCODE = 3
)
from @REVENUEINFO info;
return;
end