USP_DATALIST_CONSTITUENTRECOGNITIONREVENUE
A list of revenue that applies to a constituent's recognition level.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTRECOGNITIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@YEARID | uniqueidentifier | IN | Year |
@FROMDATE | datetime | IN | From |
@TODATE | datetime | IN | To |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CONSTITUENTRECOGNITIONREVENUE
(
@CONSTITUENTRECOGNITIONID uniqueidentifier,
@YEARID uniqueidentifier = null,
@FROMDATE datetime = null,
@TODATE datetime = null
)
as
set nocount on;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
declare @CURRENCYID uniqueidentifier;
select @CURRENCYID = BASECURRENCYID from dbo.CONSTITUENTRECOGNITION where ID = @CONSTITUENTRECOGNITIONID;
if @CURRENCYID is null
set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select
@ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),
@DECIMALDIGITS = DECIMALDIGITS,
@ROUNDINGTYPECODE = ROUNDINGTYPECODE
from
dbo.CURRENCY
where
CURRENCY.ID = @CURRENCYID;
declare @RECOGNITIONPROGRAMID uniqueidentifier;
declare @CONSTITUENTID uniqueidentifier;
declare @STARTDATE datetime;
declare @RECOGNITIONTYPE tinyint;
declare @EXPIRESONCODE tinyint;
declare @YEARSTART datetime;
declare @REVENUESELECTIONID uniqueidentifier;
declare @EXPDATE datetime;
declare @PLANNEDGIFTCODE tinyint;
select @STARTDATE = STARTDATE,
@RECOGNITIONTYPE = TYPECODE,
@EXPIRESONCODE = EXPIRESONCODE,
@REVENUESELECTIONID = SELECTIONID,
@CONSTITUENTID = CR.CONSTITUENTID,
@RECOGNITIONPROGRAMID = RP.ID,
@PLANNEDGIFTCODE = RP.PLANNEDGIFTCODE
from dbo.RECOGNITIONPROGRAM RP
inner join dbo.CONSTITUENTRECOGNITION CR on RP.ID = CR.RECOGNITIONPROGRAMID
where CR.ID = @CONSTITUENTRECOGNITIONID;
if @YEARID is not null
--if @RECOGNITIONTYPE = 0 --annual program
begin
select @EXPDATE = EXPIRATIONDATE
from dbo.CONSTITUENTRECOGNITION
where ID = @YEARID;
if @EXPIRESONCODE = 1 --calendar year
begin
set @YEARSTART = dbo.UFN_DATE_THISCALENDARYEAR_FIRSTDAY(@EXPDATE,0);
set @EXPDATE = dbo.UFN_DATE_THISCALENDARYEAR_LASTDAY(@EXPDATE,1);
end
else --fiscal year
begin
set @YEARSTART = dbo.UFN_DATE_THISFISCALYEAR_FIRSTDAY(@EXPDATE,0);
set @EXPDATE = dbo.UFN_DATE_THISFISCALYEAR_LASTDAY(@EXPDATE,1);
end
if @STARTDATE < @YEARSTART or @STARTDATE is null
set @STARTDATE = @YEARSTART;
end
if @STARTDATE < @FROMDATE or @STARTDATE is null
set @STARTDATE = @FROMDATE;
if @EXPDATE > @TODATE or @EXPDATE is null
set @EXPDATE = @TODATE;
select
RC.ID as ID,
CRR.EFFECTIVEDATE,
RC.DESCRIPTION AS TYPE,
CRR.AMOUNTINCURRENCY as AMOUNT,
RS.AMOUNTINCURRENCY as GIFTAMOUNT,
RC.DONOR,
RC.TRANSACTIONTYPE as TRANSACTIONTYPE,
case when RC.RECOGNITIONCREDITTYPECODE <> -1
then null --disable go to revenue for internal donor challenge credits
else R.ID
end as RECORDID,
RC.DATEADDED,
dbo.UFN_DESIGNATION_BUILDNAME(RC.DESIGNATIONID) as DESIGNATIONNAME,
@CURRENCYID as BASECURRENCYID
from dbo.UFN_RECOGNITIONCREDIT_GETRECOGNITIONS_BYCONSTITUENT(@CONSTITUENTID, 1, null, @CURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE, @ORGANIZATIONCURRENCYID) RC
inner join dbo.UFN_CONSTITUENTRECOGNITIONREVENUE_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) AS CRR on CRR.REVENUERECOGNITIONID = RC.ID
left join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) RS
on RC.REVENUESPLITID = RS.ID
left join dbo.FINANCIALTRANSACTION as R on RS.REVENUEID = R.ID
where CRR.RECOGNITIONPROGRAMID = @RECOGNITIONPROGRAMID
AND (CRR.EFFECTIVEDATE >= @STARTDATE or @STARTDATE is null)
AND (CRR.EFFECTIVEDATE <= @EXPDATE or @EXPDATE is null)
and R.DELETEDON is null
order by CRR.EFFECTIVEDATE desc, RC.DATEADDED desc, CRR.AMOUNTINCURRENCY desc