USP_DATALIST_CONSTITUENTPURPOSES
Summary of purposes to which this constituent has made donations.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@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_DATALIST_CONSTITUENTPURPOSES
(
@CURRENTAPPUSERID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@SECURITYFEATUREID uniqueidentifier,
@SECURITYFEATURETYPE tinyint
)
as
set nocount on;
declare @TEMPTBL table
(
ID uniqueidentifier,
DESIGNATIONLEVEL nvarchar(100),
LOOKUPID nvarchar(100),
TOTAL money,
NUMBERGIFTS integer
)
insert into @TEMPTBL(ID, DESIGNATIONLEVEL, LOOKUPID, TOTAL, NUMBERGIFTS)
select
DESIGNATIONLEVEL.ID,
DESIGNATIONLEVEL.NAME as DESIGNATIONLEVEL,
DESIGNATIONLEVEL.USERID as LOOKUPID,
sum(dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUESPLIT.ID, DESIGNATIONLEVEL.BASECURRENCYID)) as TOTAL,
count(DISTINCT REVENUE.ID) as NUMBERGIFTS
from dbo.REVENUE
inner join dbo.REVENUESPLIT on REVENUESPLIT.REVENUEID = REVENUE.ID
inner join dbo.DESIGNATION on REVENUESPLIT.DESIGNATIONID = DESIGNATION.ID
inner join dbo.DESIGNATIONLEVEL DESIGNATIONLEVEL
on (
DESIGNATION.DESIGNATIONLEVEL1ID = DESIGNATIONLEVEL.ID or
DESIGNATION.DESIGNATIONLEVEL2ID = DESIGNATIONLEVEL.ID or
DESIGNATION.DESIGNATIONLEVEL3ID = DESIGNATIONLEVEL.ID or
DESIGNATION.DESIGNATIONLEVEL4ID = DESIGNATIONLEVEL.ID or
DESIGNATION.DESIGNATIONLEVEL5ID = DESIGNATIONLEVEL.ID
)
where REVENUE.CONSTITUENTID = @CONSTITUENTID
and --JamesWill 2009-02-10 Work Item 22436 Only include certain types of revenue records
(
(REVENUE.TRANSACTIONTYPECODE in (1, 4)) --Pledges, Planned Gifts
or
(REVENUE.TRANSACTIONTYPECODE= 0 and
(
REVENUESPLIT.APPLICATIONCODE in (0, 1, 3, 4, 5, 7, 8) --Donations, Event registration payment, Recurring gift payment, Other, Membership payment, Matching gift payment, grant payment
)
)
)
group by DESIGNATIONLEVEL.ID, DESIGNATIONLEVEL.NAME, DESIGNATIONLEVEL.USERID
select
T.ID,
DESIGNATIONLEVELTYPE.DESCRIPTION as [TYPE],
T.DESIGNATIONLEVEL,
T.LOOKUPID,
T.TOTAL,
T.NUMBERGIFTS,
case
when exists(
select ID
from dbo.DESIGNATIONLEVELDONORINFORMATION
where DESIGNATIONLEVELID = T.ID
and CONSTITUENTID = @CONSTITUENTID
and ISBENEFACTOR = 1
) then 1
else 0
end as FOUNDER,
DESIGNATIONLEVEL.BASECURRENCYID as CURRENCYID
from @TEMPTBL T
inner join dbo.DESIGNATIONLEVEL on DESIGNATIONLEVEL.ID = T.ID
inner join dbo.DESIGNATIONLEVELTYPE on DESIGNATIONLEVEL.DESIGNATIONLEVELTYPEID = DESIGNATIONLEVELTYPE.ID
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[DESIGNATIONLEVEL].[SITEID] or (SITEID is null and [DESIGNATIONLEVEL].[SITEID] is null)))
order by DESIGNATIONLEVELTYPE.DESCRIPTION asc, T.DESIGNATIONLEVEL asc