USP_DATAFORMTEMPLATE_DATALIST_FUNDRAISERSUMMARYPAST2
Fetches summary information for a fundraiser.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DATEFILTER | tinyint | IN | |
@FUNDRAISERID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@PROSPECTPLANTYPECODEID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | 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. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_DATALIST_FUNDRAISERSUMMARYPAST2
(
@DATEFILTER tinyint,
@FUNDRAISERID uniqueidentifier,
@PROSPECTPLANTYPECODEID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null
)
as begin
set nocount on;
exec dbo.USP_RESOLVEDATEFILTER @DATEFILTER, @STARTDATE output, @ENDDATE output;
declare @TODAY datetime;
set @TODAY=getdate();
declare @REJECTEDASKSCOUNT int;
declare @REJECTEDASKSAMOUNT money;
declare @ACCEPTEDASKSCOUNT int;
declare @ACCEPTEDASKSAMOUNT money;
declare @CANCELEDASKSCOUNT int;
declare @CANCELEDASKSAMOUNT money;
declare @HASACCEPTEDREJECTEDINFUTURE bit;
declare @TOTALREVENUECOMMITTEDCOUNT int;
declare @TOTALREVENUECOMMITTEDAMOUNT money;
declare @TOTALPAIDCOUNT int;
declare @TOTALPAIDAMOUNT money;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @CURRENCYID uniqueidentifier;
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
select @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(APPUSER.ID)
from dbo.APPUSER
where APPUSER.CONSTITUENTID = @FUNDRAISERID;
if @CURRENCYID is null
set @CURRENCYID = @ORGANIZATIONCURRENCYID;
select
@DECIMALDIGITS = DECIMALDIGITS,
@ROUNDINGTYPECODE = ROUNDINGTYPECODE
from dbo.CURRENCY
where
CURRENCY.ID = @CURRENCYID;
declare @OPPORTUNITYINFO table(
ID uniqueidentifier,
AMOUNT money,
STATUSCODE tinyint
);
insert into @OPPORTUNITYINFO
select
OPPORTUNITYBULK.ID,
OPPORTUNITYBULK.AMOUNTINCURRENCY,
OPPORTUNITYBULK.STATUSCODE
from dbo.PROSPECTPLAN
inner join dbo.UFN_OPPORTUNITY_AMOUNTINCURRENCY_BULK(
@CURRENCYID,
@ORGANIZATIONCURRENCYID
) OPPORTUNITYBULK on OPPORTUNITYBULK.PROSPECTPLANID = PROSPECTPLAN.ID
where
(@PROSPECTPLANTYPECODEID is null or PROSPECTPLAN.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = @FUNDRAISERID AND OS.OPPORTUNITYID = OPPORTUNITYBULK.ID)
and(
(OPPORTUNITYBULK.STATUSCODE in (3,4) and OPPORTUNITYBULK.RESPONSEDATE between @STARTDATE and @ENDDATE)
or
(
OPPORTUNITYBULK.STATUSCODE = 5 and
(OPPORTUNITYBULK.ASKDATE is null
and
(OPPORTUNITYBULK.EXPECTEDASKDATE>=convert(nvarchar(8), @STARTDATE, 112) and
OPPORTUNITYBULK.EXPECTEDASKDATE<=convert(nvarchar(8), @ENDDATE, 112))
or
(OPPORTUNITYBULK.ASKDATE>=convert(nvarchar(8), @STARTDATE, 112)and
OPPORTUNITYBULK.ASKDATE<=convert(nvarchar(8), @ENDDATE, 112))
or
(OPPORTUNITYBULK.ASKDATE is null and OPPORTUNITYBULK.EXPECTEDASKDATE is null and @DATEFILTER = 10))
)
)
and (
select count(*)
from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PROSPECTPLAN.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;
--and PROSPECTPLAN.PRIMARYMANAGERFUNDRAISERID=@FUNDRAISERID;
select
@REJECTEDASKSCOUNT = count(ID),
@REJECTEDASKSAMOUNT = coalesce(sum(AMOUNT), 0)
from @OPPORTUNITYINFO
where STATUSCODE=4;
select
@ACCEPTEDASKSCOUNT = count(ID),
@ACCEPTEDASKSAMOUNT = coalesce(sum(AMOUNT), 0)
from @OPPORTUNITYINFO
where STATUSCODE=3;
select
@CANCELEDASKSCOUNT = count(*),
@CANCELEDASKSAMOUNT = coalesce(sum(AMOUNT), 0)
from @OPPORTUNITYINFO
where STATUSCODE=5
if exists( select 1 from dbo.OPPORTUNITY
inner join dbo.PROSPECTPLAN on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
where
STATUSCODE in (3,4,5)
and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = @FUNDRAISERID AND OS.OPPORTUNITYID = OPPORTUNITY.ID)
and RESPONSEDATE>@TODAY
and (@PROSPECTPLANTYPECODEID is null or PROSPECTPLAN.PROSPECTPLANTYPECODEID = @PROSPECTPLANTYPECODEID)
and (
select count(*)
from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PROSPECTPLAN.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)
--and PROSPECTPLAN.PRIMARYMANAGERFUNDRAISERID = @FUNDRAISERID)
set @HASACCEPTEDREJECTEDINFUTURE = 1;
else
set @HASACCEPTEDREJECTEDINFUTURE = 0;
declare @REVENUEINFO table(
ID uniqueidentifier,
AMOUNT money,
TRANSACTIONTYPECODE tinyint,
APPLICATIONCODE tinyint,
OPPORTUNITYID uniqueidentifier
)
insert into @REVENUEINFO
select
REVENUEBULK.ID,
REVENUEBULK.AMOUNTINCURRENCY,
REVENUEBULK.TRANSACTIONTYPECODE,
REVENUESPLIT_EXT.APPLICATIONCODE,
OPPORTUNITYINFO.ID
from @OPPORTUNITYINFO OPPORTUNITYINFO
inner join dbo.REVENUEOPPORTUNITY on REVENUEOPPORTUNITY.OPPORTUNITYID = OPPORTUNITYINFO.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = REVENUEOPPORTUNITY.ID
inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(
@CURRENCYID,
@ORGANIZATIONCURRENCYID,
@DECIMALDIGITS,
@ROUNDINGTYPECODE
) REVENUEBULK on REVENUEBULK.ID = FINANCIALTRANSACTIONLINEITEM.ID
where OPPORTUNITYINFO.STATUSCODE in (3,4)
and FINANCIALTRANSACTIONLINEITEM.TYPECODE = 0
and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
and REVENUESPLIT_EXT.APPLICATIONCODE in (0,2);
select
@TOTALREVENUECOMMITTEDCOUNT = count(distinct OPPORTUNITYID),
@TOTALREVENUECOMMITTEDAMOUNT = coalesce(sum(AMOUNT), 0)
from @REVENUEINFO
where (TRANSACTIONTYPECODE in (0,1,2) and APPLICATIONCODE = 0);
select
@TOTALPAIDCOUNT = count(distinct OPPORTUNITYID),
@TOTALPAIDAMOUNT = coalesce(sum(AMOUNT), 0)
from @REVENUEINFO
where (TRANSACTIONTYPECODE = 0 and APPLICATIONCODE in (0,2));
select
@ACCEPTEDASKSCOUNT,
@ACCEPTEDASKSAMOUNT,
@REJECTEDASKSCOUNT,
@REJECTEDASKSAMOUNT,
@HASACCEPTEDREJECTEDINFUTURE,
@TOTALREVENUECOMMITTEDCOUNT,
@TOTALREVENUECOMMITTEDAMOUNT,
@TOTALPAIDCOUNT,
@TOTALPAIDAMOUNT,
@CURRENCYID,
@CANCELEDASKSCOUNT,
@CANCELEDASKSAMOUNT;
return 0;
end