UFN_COURSEGRADINGMARKINGCOLUMN_ISVALIDTRANSLATIONTABLE

Returns true if given translation table is valid for the course grading marking column with existing grades.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@COURSEGRADINGMARKINGCOLUMNID uniqueidentifier IN
@TRANSLATIONTABLEID uniqueidentifier IN
@VALUESALLOWED tinyint IN

Definition

Copy


CREATE function dbo.UFN_COURSEGRADINGMARKINGCOLUMN_ISVALIDTRANSLATIONTABLE
(
    @COURSEGRADINGMARKINGCOLUMNID uniqueidentifier,
    @TRANSLATIONTABLEID uniqueidentifier,
    @VALUESALLOWED tinyint
)
returns bit
as begin
    declare @retval bit = 1;

    if (@VALUESALLOWED = 1 or @VALUESALLOWED = 0) and (@TRANSLATIONTABLEID is not null)
    begin
        if (select sum(case when SELECTED.ID is null then 1 else 0 end) from dbo.STUDENTMARKINGCOLUMNGRADE
            inner join dbo.TRANSLATIONTABLEGRADE EXISTING on STUDENTMARKINGCOLUMNGRADE.TRANSLATIONTABLEGRADEID = EXISTING.ID
            left outer join dbo.TRANSLATIONTABLEGRADE SELECTED on EXISTING.GRADE = SELECTED.GRADE and 
                SELECTED.TRANSLATIONTABLEID = @TRANSLATIONTABLEID
            where STUDENTMARKINGCOLUMNGRADE.GRADEISBLANK = 0 and
                STUDENTMARKINGCOLUMNGRADE.GRADETYPECODE = 1 and
                STUDENTMARKINGCOLUMNGRADE.COURSEGRADINGMARKINGCOLUMNID = @COURSEGRADINGMARKINGCOLUMNID) > 0
        set @retval = 0;
    end    


    if (@VALUESALLOWED = 2 or @VALUESALLOWED = 0) and (@TRANSLATIONTABLEID is not null)
    begin
        if (select sum(case when SELECTED.ID is null then 1 else 0 end) from dbo.STUDENTMARKINGCOLUMNGRADE
            left outer join dbo.TRANSLATIONTABLE SELECTED on SELECTED.ID = @TRANSLATIONTABLEID and
                STUDENTMARKINGCOLUMNGRADE.NUMERICGRADE between SELECTED.LOWESTSCOREALLOWED and SELECTED.HIGHESTSCOREALLOWED                 
            where STUDENTMARKINGCOLUMNGRADE.GRADEISBLANK = 0 and
                STUDENTMARKINGCOLUMNGRADE.GRADETYPECODE = 2 and
                STUDENTMARKINGCOLUMNGRADE.COURSEGRADINGMARKINGCOLUMNID = @COURSEGRADINGMARKINGCOLUMNID) > 0
        set @retval = 0;
    end    

    return @retval
end