Imports AppCommon
Imports AppVariable

Partial Class EvalClassEdit
    Inherits System.Web.UI.Page

#Region "******************** ページイベント ********************"

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '---------------------------------------------------------------
        'ダイアログセット
        '---------------------------------------------------------------
        btn_戻る.Attributes("onclick") = "return Dialog_YN(""取り消してもよろしいですか？\r\n※入力中の成績は更新されません。"")"
        btn_更新.Attributes("onclick") = "return Dialog_YN(""更新してもよろしいですか？"")"

        If 編集許可判定() = 1 Then
            btn_更新.Enabled = False
            btn_更新.ForeColor = Drawing.Color.DarkGray
        Else
            btn_更新.Enabled = True
            btn_更新.ForeColor = Drawing.Color.Red
        End If
    End Sub

#End Region

#Region "***************** コントロールイベント *****************"

    Protected Sub btn_戻る_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_戻る.Click
        '閲覧ページへ遷移
        Response.Redirect(Com_Get_Content("menu_km_003", "close"))
    End Sub

    Protected Sub btn_更新_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_更新.Click
        'コンテンツページのgv_出欠コントロールを取得
        Dim gv As GridView = CType(gv_成績, GridView)

        '授業出欠の更新
        For Each r As GridViewRow In gv.Rows
            IsRowModified(r)
        Next
        gv.DataBind()

        '閲覧ページへ遷移
        Response.Redirect(Com_Get_Content("menu_km_003", "close"))
    End Sub

    Protected Sub sql_成績_Init(sender As Object, e As EventArgs) Handles sql_成績.Init
        sql_成績_SET()
    End Sub

#End Region

#Region "******************* Sub及びFunction ********************"

    Private Sub sql_成績_SET()
        Dim sds As SqlDataSource = sql_成績
        WebControlsUtil.DeclareSP(sds, "成績_授業評価_SELECT")
        With sds
            .SelectParameters.Add("履修年度", Session(S_COM_Selected_Risyu_Nendo))
            .SelectParameters.Add("成績年度", Session(S_COM_Selected_Seiseki_Nendo))
            .SelectParameters.Add("分野CD", Session(S_COM_Selected_Bunya_CD))
            .SelectParameters.Add("科目CD", Session(S_COM_Selected_Kamoku_CD))
            .SelectParameters.Add("講座CD", Session(S_COM_Selected_Kouza_CD))
            .SelectParameters.Add("教員CD", Session(S_COM_UserCD))
        End With
    End Sub

    Private Sub IsRowModified(ByVal r As GridViewRow)
        Dim 学籍NO As String
        Dim 履修年度 As Integer
        Dim 成績年度 As Integer
        Dim 分野CD As String
        Dim 科目CD As String
        Dim 講座CD As String
        Dim 定期点数 As String
        Dim 備考 As String

        学籍NO = CType(r.FindControl("lb_学籍NO"), Label).Text
        履修年度 = CType(r.FindControl("lb_履修年度"), Label).Text
        成績年度 = CType(r.FindControl("lb_成績年度"), Label).Text
        分野CD = CType(r.FindControl("lb_分野CD"), Label).Text
        科目CD = CType(r.FindControl("lb_科目CD"), Label).Text
        講座CD = CType(r.FindControl("lb_講座CD"), Label).Text
        定期点数 = CType(r.FindControl("txt_定期点数"), TextBox).Text
        備考 = CType(r.FindControl("txt_備考"), TextBox).Text

        成績更新(学籍NO, 履修年度, 成績年度, 分野CD, 科目CD, 講座CD, 定期点数, 備考)
    End Sub

    Private Sub 成績更新(学籍NO As String, _
                            履修年度 As Integer, _
                            成績年度 As Integer, _
                            分野CD As String, _
                            科目CD As String, _
                            講座CD As String, _
                            定期点数 As String, _
                            備考 As String)
        Using spm As New StoredProcedureManager("成績_授業評価_UPDATE")
            spm.AddPrmIn("@学籍NO", Data.SqlDbType.VarChar, 学籍NO)
            spm.AddPrmIn("@履修年度", Data.SqlDbType.SmallInt, 履修年度)
            spm.AddPrmIn("@成績年度", Data.SqlDbType.SmallInt, 成績年度)
            spm.AddPrmIn("@分野CD", Data.SqlDbType.VarChar, 分野CD)
            spm.AddPrmIn("@科目CD", Data.SqlDbType.VarChar, 科目CD)
            spm.AddPrmIn("@講座CD", Data.SqlDbType.VarChar, 講座CD)
            spm.AddPrmIn("@定期点数", Data.SqlDbType.VarChar, 定期点数)
            spm.AddPrmIn("@備考", Data.SqlDbType.VarChar, 備考)
            spm.Exec()
        End Using
    End Sub

    Private Function 編集許可判定() As Integer
        Dim ret As Integer

        Using spm As New StoredProcedureManager("成績_成績編集判定_OUTPUT")
            spm.AddPrmIn("@USERCD", Data.SqlDbType.VarChar, Session(S_COM_UserCD))
            spm.AddPrmIn("@履修年度", Data.SqlDbType.SmallInt, Session(S_COM_Selected_Risyu_Nendo))
            spm.AddPrmIn("@成績年度", Data.SqlDbType.SmallInt, Session(S_COM_Selected_Seiseki_Nendo))
            spm.AddPrmIn("@分野CD", Data.SqlDbType.VarChar, Session(S_COM_Selected_Bunya_CD))
            spm.AddPrmIn("@科目CD", Data.SqlDbType.VarChar, Session(S_COM_Selected_Kamoku_CD))
            spm.AddPrmIn("@講座CD", Data.SqlDbType.VarChar, Session(S_COM_Selected_Kouza_CD))
            spm.AddPrmOut("@編集判定", Data.SqlDbType.Int)
            spm.Exec()

            ret = spm.GetValue("@編集判定")
        End Using

        Return ret
    End Function

#End Region

End Class
