USP_DATAFORMTEMPLATE_DATALIST_FUNDRAISERSUMMARYGIFTTOTALS
Fetches summary information.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DATEFILTER | tinyint | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@FUNDRAISERID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@PROSPECTPLANTYPECODEID | uniqueidentifier | IN | |
@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. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_DATALIST_FUNDRAISERSUMMARYGIFTTOTALS
(
@DATEFILTER tinyint,
@CURRENTAPPUSERID uniqueidentifier = null,
@FUNDRAISERID uniqueidentifier,
@PROSPECTPLANTYPECODEID uniqueidentifier = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null
)
as begin
set nocount on;
declare @STARTDATE datetime;
declare @ENDDATE datetime;
exec dbo.USP_RESOLVEDATEFILTER @DATEFILTER, @STARTDATE output, @ENDDATE output;
declare @TODAY datetime;
set @TODAY=getdate();
declare @CURRENCYID uniqueidentifier;
select @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(APPUSER.ID) from dbo.APPUSER where APPUSER.CONSTITUENTID = @FUNDRAISERID;
if @CURRENCYID is null
set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
select @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),
@DECIMALDIGITS = DECIMALDIGITS,
@ROUNDINGTYPECODE = ROUNDINGTYPECODE
from
dbo.CURRENCY
where
CURRENCY.ID = @CURRENCYID;
declare @TOTALREVENUECOMMITTEDCOUNT int;
declare @TOTALREVENUECOMMITTEDAMOUNT money;
declare @TOTALPAIDCOUNT int;
declare @TOTALPAIDAMOUNT money;
select
@TOTALREVENUECOMMITTEDCOUNT = count(*),
@TOTALREVENUECOMMITTEDAMOUNT = coalesce(sum(R.AMOUNTINCURRENCY), 0)
from
dbo.OPPORTUNITY O
inner join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
inner join dbo.UFN_FUNDRAISER_PROSPECTPLANS(@FUNDRAISERID) FPP on PP.ID = FPP.ID
inner join dbo.REVENUEOPPORTUNITY RO on RO.OPPORTUNITYID = O.ID
inner join dbo.REVENUESPLIT RS on RS.ID = RO.ID
inner join dbo.UFN_REVENUE_GETAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) R on R.ID = RS.REVENUEID
where
(
(O.STATUSCODE in (3,4) and O.RESPONSEDATE > @STARTDATE)
or
(
O.STATUSCODE = 5 and
(O.ASKDATE is null
and
(O.EXPECTEDASKDATE>convert(nvarchar(8), @STARTDATE, 112))
or
(O.ASKDATE>convert(nvarchar(8), @STARTDATE, 112)))
)
)
and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
--and PP.PRIMARYMANAGERFUNDRAISERID=@FUNDRAISERID
and ((R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE = 0 and RS.TYPECODE = 0) or
(R.TRANSACTIONTYPECODE in (1,2) and RS.APPLICATIONCODE = 0 and RS.TYPECODE = 0))
and (
select count(*)
from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as PROSPECTPLANSITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[PROSPECTPLANSITE].[SITEID] or (SITEID is null and [PROSPECTPLANSITE].[SITEID] is null)))
) > 0;
select
@TOTALPAIDCOUNT = count(*),
@TOTALPAIDAMOUNT = coalesce(sum(R.AMOUNTINCURRENCY), 0)
from
dbo.OPPORTUNITY O
inner join dbo.PROSPECTPLAN PP on PP.ID = O.PROSPECTPLANID
inner join dbo.UFN_FUNDRAISER_PROSPECTPLANS(@FUNDRAISERID) FPP on PP.ID = FPP.ID
inner join dbo.REVENUEOPPORTUNITY RO on RO.OPPORTUNITYID = O.ID
inner join dbo.REVENUESPLIT RS on RS.ID = RO.ID
inner join dbo.UFN_REVENUE_GETAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) R on R.ID = RS.REVENUEID
where
(
(O.STATUSCODE in (3,4) and O.RESPONSEDATE > @STARTDATE)
or
(
O.STATUSCODE = 5 and
(O.ASKDATE is null
and
(O.EXPECTEDASKDATE>convert(nvarchar(8), @STARTDATE, 112))
or
(O.ASKDATE>convert(nvarchar(8), @STARTDATE, 112)))
)
)
--and PP.PRIMARYMANAGERFUNDRAISERID=@FUNDRAISERID
and (@PROSPECTPLANTYPECODEID is null or PP.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
and (R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE in (0,2) and RS.TYPECODE =0)
and (
select count(*)
from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as PROSPECTPLANSITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[PROSPECTPLANSITE].[SITEID] or (SITEID is null and [PROSPECTPLANSITE].[SITEID] is null)))
) > 0
select
@TOTALREVENUECOMMITTEDCOUNT,
@TOTALREVENUECOMMITTEDAMOUNT,
@TOTALPAIDCOUNT,
@TOTALPAIDAMOUNT,
@CURRENCYID;
return 0;
end