USP_DATALIST_CONSTITUENTPROFILEDASHBOARDLATESTRECOGNITION
This datalist returns information about a constituent's latest recognition that is used by the constituent profile dashboard.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Constituent |
@ISVISIBLE | bit | IN | Visible |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SELECTEDCURRENCYID | uniqueidentifier | IN | Selected currency ID |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_CONSTITUENTPROFILEDASHBOARDLATESTRECOGNITION
(
@CONSTITUENTID uniqueidentifier,
@ISVISIBLE bit = 1,
@CURRENTAPPUSERID uniqueidentifier,
@SELECTEDCURRENCYID uniqueidentifier = null
)
as
set nocount on;
declare @ISADMIN bit;
declare @APPUSER_IN_NONRACROLE bit;
declare @APPUSER_IN_NOSECGROUPROLE bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
if @ISVISIBLE = 1
begin
declare @ISGROUP bit, @INCLUDEMEMBERGIVING bit
select
@ISGROUP = C.ISGROUP,
@INCLUDEMEMBERGIVING = case when GD.GROUPTYPECODE = 0 then 1 else coalesce(GT.INCLUDEMEMBERGIVING, 0) end
from dbo.CONSTITUENT C
left join dbo.GROUPDATA GD on C.ID = GD.ID
left join dbo.GROUPTYPE GT on GD.GROUPTYPEID = GT.ID
where C.ID = @CONSTITUENTID;
declare @CURRENTDATEEARLIESTTIME date
set @CURRENTDATEEARLIESTTIME = getdate();
if @ISGROUP = 1
begin
declare @CONSTITUENTSTOINCLUDE table
(
CONSTITUENTID uniqueidentifier
)
insert into @CONSTITUENTSTOINCLUDE(CONSTITUENTID)
select @CONSTITUENTID
if @INCLUDEMEMBERGIVING = 1
insert into @CONSTITUENTSTOINCLUDE (CONSTITUENTID)
select
GM.MEMBERID
from dbo.GROUPMEMBER GM
left join dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
where GM.GROUPID = @CONSTITUENTID and
((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATEEARLIESTTIME)) or
(GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME)) or
(GMDR.DATEFROM <= @CURRENTDATEEARLIESTTIME and GMDR.DATETO > @CURRENTDATEEARLIESTTIME))
select top 1
RR.EFFECTIVEDATE,
R.TRANSACTIONTYPE,
dbo.UFN_REVENUERECOGNITION_GETAMOUNTINCURRENCY(RR.ID, @SELECTEDCURRENCYID) as TOTALAMOUNT,
C.NAME as CONSTITUENTNAME
from @CONSTITUENTSTOINCLUDE CTI
inner join dbo.REVENUERECOGNITION RR on RR.CONSTITUENTID = CTI.CONSTITUENTID
inner join dbo.REVENUESPLIT RS on RS.ID = RR.REVENUESPLITID
inner join dbo.REVENUE R on RS.REVENUEID = R.ID
inner join dbo.CONSTITUENT C on RR.CONSTITUENTID = C.ID
left join dbo.V_PLANNEDGIFTREVENUE_WITHADDITIONS PGR on PGR.REVENUEID = R.ID
left join dbo.PLANNEDGIFT PG on PG.ID = PGR.PLANNEDGIFTID
where
(R.TRANSACTIONTYPECODE = 1 or --Pledge
(R.TRANSACTIONTYPECODE = 3) or --Matching gift claim
(R.TRANSACTIONTYPECODE = 4 and PG.VEHICLECODE in (0,1,2,5,6,7,8,9)) or --Planned gift
((R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE in (0, 3)))) and --Payment (Gift or Recurring gift payment)
dbo.UFN_DESIGNATION_USERHASSITEACCESS(DESIGNATIONID,@CURRENTAPPUSERID) = 1
order by
RR.EFFECTIVEDATE desc, RR.DATEADDED desc
end
else
begin
select top 1
RR.EFFECTIVEDATE,
R.TRANSACTIONTYPE,
dbo.UFN_REVENUERECOGNITION_GETAMOUNTINCURRENCY(RR.ID, @SELECTEDCURRENCYID) as TOTALAMOUNT,
C.NAME as CONSTITUENTNAME
from dbo.REVENUERECOGNITION RR
inner join dbo.REVENUESPLIT RS on RS.ID = RR.REVENUESPLITID
inner join dbo.REVENUE R on RS.REVENUEID = R.ID
inner join dbo.CONSTITUENT C on RR.CONSTITUENTID = C.ID
left join dbo.V_PLANNEDGIFTREVENUE_WITHADDITIONS PGR on PGR.REVENUEID = R.ID
left join dbo.PLANNEDGIFT PG on PG.ID = PGR.PLANNEDGIFTID
where
(R.TRANSACTIONTYPECODE = 1 or --Pledge
(R.TRANSACTIONTYPECODE = 3) or --Matching gift claim
(R.TRANSACTIONTYPECODE = 4 and PG.VEHICLECODE in (0,1,2,5,6,7,8,9)) or --Planned gift
((R.TRANSACTIONTYPECODE = 0 and RS.APPLICATIONCODE in (0, 3)))) and --Payment (Gift or Recurring gift payment)
RR.CONSTITUENTID = @CONSTITUENTID and
dbo.UFN_DESIGNATION_USERHASSITEACCESS(DESIGNATIONID,@CURRENTAPPUSERID) = 1
order by
RR.EFFECTIVEDATE desc, RR.DATEADDED desc
end
end