USP_STUDENT_GETSCHEDULINGPROFILE

Returns basic information about a student to be displayed during scheduling.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@SESSION_STARTDATE date INOUT
@SESSION_ENDDATE date INOUT
@STUDENT_NAME nvarchar(100) INOUT
@GRADELEVELID uniqueidentifier INOUT
@GRADELEVEL nvarchar(200) INOUT
@ADVISOR nvarchar(1000) INOUT
@HOMEROOMTEACHER nvarchar(1000) INOUT
@GENDER nvarchar(100) INOUT
@SCHOOLGRADELEVELID uniqueidentifier INOUT

Definition

Copy


CREATE procedure dbo.USP_STUDENT_GETSCHEDULINGPROFILE
(
    @ID uniqueidentifier,
    @SESSION_STARTDATE date = null output,
    @SESSION_ENDDATE date = null output,
    @STUDENT_NAME nvarchar(100) = null output,
    @GRADELEVELID uniqueidentifier = null output,
    @GRADELEVEL nvarchar(200) = null output,
    @ADVISOR nvarchar(1000) = null output,
    @HOMEROOMTEACHER nvarchar(1000) = null output,
    @GENDER nvarchar(100) = null output,
    @SCHOOLGRADELEVELID uniqueidentifier = null output
)
as
begin
    select 
        @STUDENT_NAME = CONSTITUENT.NAME,
        @GENDER = CONSTITUENT.GENDER
    from CONSTITUENT
    where ID = @ID

    -- Build the SPE list, which will parse to build lists

    declare @SPE table
    (
        GRADELEVEL nvarchar(100),
        GRADELEVELID uniqueidentifier,
        SCHOOLGRADELEVELID uniqueidentifier,
        ADVISOR nvarchar(200),
        HOMEROOMTEACHER nvarchar(200)
    )
    insert into @SPE
    (
        GRADELEVEL,
        GRADELEVELID,
        SCHOOLGRADELEVELID,
        ADVISOR,
        HOMEROOMTEACHER
    )
    select
        GRADELEVEL.DESCRIPTION,
        GRADELEVEL.ID,
        SCHOOLGRADELEVEL.ID,
        ADVISOR.NAME,
        HOMEROOMTEACHER.NAME
    from dbo.EDUCATIONALHISTORY
        inner join dbo.STUDENTPROGRESSION on EDUCATIONALHISTORY.ID = STUDENTPROGRESSION.ENROLLMENTID
        left join dbo.CONSTITUENT HOMEROOMTEACHER on STUDENTPROGRESSION.HOMEROOMTEACHERID = HOMEROOMTEACHER.ID
        left join dbo.STUDENTADVISOR on STUDENTPROGRESSION.ID = STUDENTADVISOR.STUDENTPROGRESSIONID
        left join dbo.CONSTITUENT ADVISOR on STUDENTADVISOR.FACULTYID = ADVISOR.ID
        inner join dbo.SCHOOLGRADELEVEL on STUDENTPROGRESSION.SCHOOLGRADELEVELID = SCHOOLGRADELEVEL.ID
        inner join dbo.GRADELEVEL on SCHOOLGRADELEVEL.GRADELEVELID = GRADELEVEL.ID
    where EDUCATIONALHISTORY.CONSTITUENTID = @ID
        and not (STUDENTPROGRESSION.ENDDATE < @SESSION_STARTDATE or STUDENTPROGRESSION.STARTDATE > @SESSION_ENDDATE)    

    if (select count(GRADELEVELID) from @SPE where GRADELEVELID is not null) = 1
    begin
        select
            @GRADELEVELID = GRADELEVELID,
            @SCHOOLGRADELEVELID = SCHOOLGRADELEVELID
        from @SPE
        where GRADELEVELID is not null
    end    

    set @GRADELEVEL = null
    select @GRADELEVEL = coalesce(@GRADELEVEL + '; ', '') + GRADELEVEL
    from @SPE
    group by GRADELEVEL
    order by GRADELEVEL

    set @ADVISOR = null
    select @ADVISOR = coalesce(@ADVISOR + '; ', '') + ADVISOR
    from @SPE
    group by ADVISOR
    order by ADVISOR

    set @HOMEROOMTEACHER = null
    select @HOMEROOMTEACHER = coalesce(@HOMEROOMTEACHER + '; ', '') + HOMEROOMTEACHER
    from @SPE
    group by HOMEROOMTEACHER
    order by HOMEROOMTEACHER
end