UFN_STUDENTENROLLMENT_INUSE
Determines if a given student enrollment is in use.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ENROLLMENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_STUDENTENROLLMENT_INUSE(
@ENROLLMENTID uniqueidentifier
)
returns bit
with execute as caller
as begin
declare @RETVAL bit = 0;
declare @STUDENTID as uniqueidentifier
set @STUDENTID = (SELECT dbo.EDUCATIONALHISTORY.[CONSTITUENTID] FROM dbo.EDUCATIONALHISTORY WHERE dbo.EDUCATIONALHISTORY.[ID] = @ENROLLMENTID)
--see if the enrollment contains last progression
if (select count (dbo.EDUCATIONALHISTORY.[ID])
from dbo.EDUCATIONALHISTORY
inner join dbo.STUDENTPROGRESSION on dbo.EDUCATIONALHISTORY.[ID] = dbo.STUDENTPROGRESSION.[ENROLLMENTID]
where (dbo.EDUCATIONALHISTORY.[CONSTITUENTID] = @STUDENTID) and (dbo.STUDENTPROGRESSION.[ENROLLMENTID] <> @ENROLLMENTID)) = 0
set @RETVAL = 1;
--see if the enrollment is used on a charge
if (exists (select dbo.STUDENTCHARGE.ID
from dbo.STUDENTCHARGE
where
dbo.STUDENTCHARGE.EDUCATIONALHISTORYID = @ENROLLMENTID))
set @RETVAL = 1;
--check to see if the enrollment's progressions are being used
if @RETVAL = 0
begin
if (select max(case when dbo.UFN_STUDENTPROGRESSION_INUSE(dbo.STUDENTPROGRESSION.[ID]) = 1 then 1 else 0 end)
from dbo.STUDENTPROGRESSION
where dbo.STUDENTPROGRESSION.[ENROLLMENTID] = @ENROLLMENTID) > 0
set @RETVAL = 1;
end
--see if this is the last student enrollment or contains last progression
if @RETVAL = 0
begin
if (dbo.UFN_STUDENTENROLLMENT_RECORDCOUNT(@STUDENTID) <= 1)
set @RETVAL = 1;
end
return @RETVAL;
end