USP_DATALIST_CONSTITUENTMATCHEDGIFTS
This datalist returns a list of a the matched gifts along with claim history for a constituent.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@SITEFILTERMODE | tinyint | IN | Sites |
@SITESSELECTED | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
@CURRENCYCODE | tinyint | IN | Currency |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CONSTITUENTMATCHEDGIFTS
(
@CONSTITUENTID uniqueidentifier,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@CURRENCYCODE tinyint = 2
)
as
set nocount on;
declare @CURRENCYID uniqueidentifier
declare @ORGTOMYBASEEXCHANGERATE uniqueidentifier = null
declare @MULTICURRENCYENABLED bit;
set @MULTICURRENCYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');
if @MULTICURRENCYENABLED = 0
set @CURRENCYCODE = 1;
if @CURRENCYCODE = 1
set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
if @CURRENCYCODE = 3
begin
set @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
if @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
begin
set @CURRENCYCODE = 1
end
end;
with CONSTITUENTREVENUE_CTE as
(
select
REVENUE.ID,
REVENUE.TYPE TRANSACTIONTYPE,
REVENUE.BASEAMOUNT AMOUNT,
REVENUE.TRANSACTIONAMOUNT,
cast(REVENUE.DATE as datetime) as DATE,
REVENUE.TRANSACTIONCURRENCYID,
isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID) BASECURRENCYID,
REVENUE_EXT.GIVENANONYMOUSLY
from
dbo.FINANCIALTRANSACTION REVENUE
inner join dbo.REVENUE_EXT on REVENUE_EXT.ID = REVENUE.ID
inner join dbo.PDACCOUNTSYSTEM on REVENUE.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
where
REVENUE.CONSTITUENTID = @CONSTITUENTID
and exists
(
select top 1 RSSUB.ID from dbo.REVENUESPLIT RSSUB
cross apply dbo.UFN_SITEID_MAPFROM_REVENUESPLITID(RSSUB.ID) REVSITES
where RSSUB.REVENUEID = REVENUE.ID
and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[REVSITES].[SITEID] or (SITEID is null and [REVSITES].[SITEID] is null)))
and
(
@SITEFILTERMODE = 0
or
exists(select UFN_SITE_BUILDDATALISTSITEFILTER.SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) where UFN_SITE_BUILDDATALISTSITEFILTER.SITEID = REVSITES.SITEID)
)
)
)
select
CONSTITUENTREVENUE_CTE.ID as REVENUEID,
null as MGCLAIMID,
'Original gift' as TYPE,
CONSTITUENTREVENUE_CTE.DATE as DATE,
null as MGORGID,
null as MGORGNAME,
case @CURRENCYCODE
when 2 then CONSTITUENTREVENUE_CTE.TRANSACTIONAMOUNT
when 1 then dbo.UFN_REVENUE_GETAMOUNTINCURRENCY(CONSTITUENTREVENUE_CTE.ID,@CURRENCYID)
when 3 then dbo.UFN_REVENUE_GETAMOUNTINCURRENCY(CONSTITUENTREVENUE_CTE.ID,@CURRENCYID)
else CONSTITUENTREVENUE_CTE.AMOUNT
end as AMOUNT,
null as MGCLAIMAMOUNT,
null as PARENT,
row_number() over (order by CONSTITUENTREVENUE_CTE.DATE, CONSTITUENTREVENUE_CTE.AMOUNT desc) as SEQUENCE,
dbo.UFN_REVENUE_BUILDSITELIST(CONSTITUENTREVENUE_CTE.ID) as SITES,
case @CURRENCYCODE
when 2 then CONSTITUENTREVENUE_CTE.TRANSACTIONCURRENCYID
when 0 then CONSTITUENTREVENUE_CTE.BASECURRENCYID
else @CURRENCYID
end as DISPLAYCURRENCY,
case when CONSTITUENTREVENUE_CTE.GIVENANONYMOUSLY = 1 then 'catalog:Blackbaud.AppFx.Fundraising.Catalog.dll,Blackbaud.AppFx.Fundraising.Catalog.gift_anonymous_16.png' else '' end IMAGEKEY
from
CONSTITUENTREVENUE_CTE
where exists(select top(1) ID from dbo.REVENUEMATCHINGGIFT where REVENUEMATCHINGGIFT.MGSOURCEREVENUEID = CONSTITUENTREVENUE_CTE.ID)
union all
select
REVENUE.ID as REVENUEID,
REVENUE.ID as MGCLAIMID,
REVENUE.TYPE as TYPE,
cast(REVENUE.DATE as datetime) as DATE,
CONSTITUENT.ID as MGORGID,
CONSTITUENT.NAME as MGORGNAME,
case @CURRENCYCODE
when 2 then (select TRANSACTIONAMOUNT from dbo.REVENUE where ID=REVENUEMATCHINGGIFT.ID)
when 1 then dbo.UFN_REVENUE_GETAMOUNTINCURRENCY(REVENUE.ID,@CURRENCYID)
when 3 then dbo.UFN_REVENUE_GETAMOUNTINCURRENCY(REVENUE.ID,@CURRENCYID)
else REVENUE.BASEAMOUNT
end as AMOUNT,
case @CURRENCYCODE
when 2 then dbo.UFN_PLEDGE_GETBALANCEINCURRENCY(REVENUE.ID, REVENUE.TRANSACTIONCURRENCYID)
when 0 then dbo.UFN_PLEDGE_GETBALANCEINCURRENCY(REVENUE.ID, isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID))
else dbo.UFN_PLEDGE_GETBALANCEINCURRENCY(REVENUE.ID, @CURRENCYID)
end as MGCLAIMBALANCE,
--dbo.UFN_PLEDGE_GETBALANCEINCURRENCY(REVENUE.ID, CURRENCYCODE) as MGCLAIMBALANCE,
REVENUEMATCHINGGIFT.MGSOURCEREVENUEID as PARENT,
row_number() over (order by REVENUE.DATE, REVENUE.BASEAMOUNT desc) as SEQUENCE,
null as SITES,
case @CURRENCYCODE
when 2 then REVENUE.TRANSACTIONCURRENCYID
when 0 then isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID)
else @CURRENCYID
end as DISPLAYCURRENCY,
case when REVENUE_EXT.GIVENANONYMOUSLY = 1 then 'catalog:Blackbaud.AppFx.Fundraising.Catalog.dll,Blackbaud.AppFx.Fundraising.Catalog.gift_anonymous_16.png' else '' end IMAGEKEY
from
dbo.REVENUEMATCHINGGIFT
inner join
CONSTITUENTREVENUE_CTE on CONSTITUENTREVENUE_CTE.ID = REVENUEMATCHINGGIFT.MGSOURCEREVENUEID
inner join
dbo.FINANCIALTRANSACTION REVENUE on REVENUE.ID = REVENUEMATCHINGGIFT.ID
inner join
dbo.REVENUE_EXT on REVENUE_EXT.ID = REVENUE.ID
inner join
dbo.PDACCOUNTSYSTEM on REVENUE.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join
dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
inner join
dbo.CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID