USP_DATALIST_STUDENTSCHOLARSHIPS
Displays a tree view of scholarships awarded to the student along with a scholarship total as the root node.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STUDENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@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_STUDENTSCHOLARSHIPS
(
@STUDENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@CURRENCYCODE tinyint = 2
)
as
set nocount on;
--Multicurrency
declare @CURRENCYID uniqueidentifier;
declare @MULTICURRENCYENABLED bit;
declare @HOLDER int;
declare @CURRENCIESAREDIFFERENT bit = 0;
declare @DISPLAYCURRENCY uniqueidentifier;
set @MULTICURRENCYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');
if @MULTICURRENCYENABLED = 0
set @CURRENCYCODE = 1
if @CURRENCYCODE = 1
set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
if @CURRENCYCODE = 2
set @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
--If currency filter is base then we need to see if all rows return same currency
--so we know if we can display the aggregate or not.
if @CURRENCYCODE = 0
begin
Select @HOLDER = count(ID)
from
dbo.DESIGNATIONLEVELRECIPIENT as RECIPIENT
where
RECIPIENT.CONSTITUENTID = @STUDENTID and
dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, dbo.UFN_SITEID_MAPFROM_DESIGNATIONLEVELRECIPIENTID(RECIPIENT.ID), @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1
group by BASECURRENCYID
Select @CURRENCIESAREDIFFERENT = case when @@ROWCOUNT > 1 then 1 else 0 end
end
if @CURRENCIESAREDIFFERENT = 0
begin
select top 1
@DISPLAYCURRENCY = case @CURRENCYCODE
when 0 then RECIPIENT.BASECURRENCYID
else @CURRENCYID
end
from
dbo.DESIGNATIONLEVELRECIPIENT as RECIPIENT
where
RECIPIENT.CONSTITUENTID = @STUDENTID and
dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, dbo.UFN_SITEID_MAPFROM_DESIGNATIONLEVELRECIPIENTID(RECIPIENT.ID), @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1
end
declare @PARENTID uniqueidentifier
set @PARENTID = newid();
--Total amount from scholarship funds
select
@PARENTID,
'Total funds (' + cast(count(*)as varchar) +')' as NAME,
null as DATE,
sum(case
when @CURRENCIESAREDIFFERENT = 1 then null
else
case @CURRENCYCODE
when 0 then dbo.UFN_DESIGNATIONLEVELRECIPIENT_GETAMOUNTINCURRENCY(RECIPIENT.ID,RECIPIENT.BASECURRENCYID)
else dbo.UFN_DESIGNATIONLEVELRECIPIENT_GETAMOUNTINCURRENCY(RECIPIENT.ID,@CURRENCYID)
end
end) as AMOUNT,
null as PARENTID,
null as DESIGNATIONLEVELID,
@DISPLAYCURRENCY as DISPLAYCURRENCY
from
dbo.DESIGNATIONLEVELRECIPIENT as RECIPIENT
where
RECIPIENT.CONSTITUENTID = @STUDENTID and
dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, dbo.UFN_SITEID_MAPFROM_DESIGNATIONLEVELRECIPIENTID(RECIPIENT.ID), @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1
union all
--List of all received scholarship funds
select
RECIPIENT.ID,
DESIGNATIONLEVEL.NAME,
RECIPIENT.DATE,
case @CURRENCYCODE
when 0 then dbo.UFN_DESIGNATIONLEVELRECIPIENT_GETAMOUNTINCURRENCY(RECIPIENT.ID,RECIPIENT.BASECURRENCYID)
else dbo.UFN_DESIGNATIONLEVELRECIPIENT_GETAMOUNTINCURRENCY(RECIPIENT.ID,@CURRENCYID)
end as AMOUNT,
@PARENTID as PARENTID,
RECIPIENT.DESIGNATIONLEVELID,
case @CURRENCYCODE
when 0 then RECIPIENT.BASECURRENCYID
else @CURRENCYID
end as DISPLAYCURRENCY
from
dbo.DESIGNATIONLEVELRECIPIENT as RECIPIENT
inner join dbo.DESIGNATIONLEVEL on RECIPIENT.DESIGNATIONLEVELID = DESIGNATIONLEVEL.ID
left outer join dbo.SCHOLARSHIPTERM on RECIPIENT.SCHOLARSHIPTERMID = SCHOLARSHIPTERM.ID
where
RECIPIENT.CONSTITUENTID = @STUDENTID and
dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, dbo.UFN_SITEID_MAPFROM_DESIGNATIONLEVELRECIPIENTID(RECIPIENT.ID), @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1