USP_DATAFORMTEMPLATE_VIEW_ENROLLGROUPINCLASSES_STUDENTSELECTIONADD

The load procedure used by the view dataform template "Enroll group in classes, student selection to add"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@STUDENTCOUNT int INOUT STUDENTCOUNT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_ENROLLGROUPINCLASSES_STUDENTSELECTIONADD
(
    @ID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @STUDENTCOUNT int = null output
)
as
    set nocount on;

    -- be sure to set this, in case the select returns no rows

    set @DATALOADED = 1;

    declare @SESSION_STARTDATE date
    declare @SESSION_ENDDATE date

    select
        @SESSION_STARTDATE = min(STARTDATE),
        @SESSION_ENDDATE = max(ENDDATE)
    from dbo.TERM
        inner join dbo.APPUSERSESSION on TERM.SESSIONID = APPUSERSESSION.SESSIONID
    where APPUSERSESSION.ID = @CURRENTAPPUSERID
    group by APPUSERSESSION.ID, APPUSERSESSION.SESSIONID

    declare @STUDENTS table
    (
        ID uniqueidentifier
    )
    insert into @STUDENTS (ID)
    exec dbo.USP_STUDENT_GETSTUDENTSELECTION @ID

    delete from @STUDENTS
        from @STUDENTS STUDENTS
            left join dbo.EDUCATIONALHISTORY on STUDENTS.ID = EDUCATIONALHISTORY.CONSTITUENTID
            left join dbo.STUDENTPROGRESSION on EDUCATIONALHISTORY.ID = STUDENTPROGRESSION.ENROLLMENTID
                and STUDENTPROGRESSION.STARTDATE <= @SESSION_STARTDATE
                and STUDENTPROGRESSION.ENDDATE >= @SESSION_ENDDATE
        where STUDENTPROGRESSION.ID is null

    select @STUDENTCOUNT = count(distinct STUDENTS.ID)
    from @STUDENTS STUDENTS

    return 0;