Exemplo n.º 1
0
    protected void btnCambiar_Click(object sender, EventArgs e)
    {
        // ClientScript.RegisterStartupScript(this.GetType(), "forzar", "<script>javascript:Forzar();</script>");
        Calificacion          objCalificacion     = new Calificacion();
        OperacionCalificacion objOperCalificacion = new OperacionCalificacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objCalificacion.id_estudiante = Convert.ToInt64(txtEstudiante.Text);
        Int64 cedula = Convert.ToInt64(txtEstudiante.Text);

        DataView dtv_Notas = objOperCalificacion.ConsultarCalificacion(objCalificacion).DefaultView;

        foreach (GridViewRow dr in tbl_Calificacion.Rows)
        {
            Label id_asignacion = (Label)dr.Cells[0].Controls[0];
            for (int j = 2; j < tbl_Calificacion.Columns.Count - 1; j++)
            {
                var vlr = dr.Cells[j].Controls[0];
                if (dr.Cells[j].Controls[0] is TextBox)
                {
                    TextBox txt = (TextBox)dr.Cells[j].Controls[0];
                    if (txt.Text != "")
                    {
                        /*El css tiene información del control para determinar el porcentaje
                         * que tiene ese control y el id la configuración de la nota*/
                        string[] css = txt.CssClass.ToString().Split();

                        /*Filtramos el dataview dependicendo del tipo de calificacion
                         * para validar que no se encuentre almacenada*/
                        dtv_Notas.RowFilter = "id_asignacion = " + int.Parse(id_asignacion.Text) + " AND id_calificacion_configuracion = " + int.Parse(css[2].Trim());
                        string id = "";

                        /*Cargo la notas que se han filtrado dependiendo del tipo y el estudiante*/
                        GridView tbl_Notas = new GridView();
                        tbl_Notas.DataSource = dtv_Notas;
                        tbl_Notas.DataBind();

                        /*Validamos que la nota no se haya cambiado el valor para
                         * realizar una validación */
                        int cambio = 0;
                        if (tbl_Notas.Rows.Count > 0)
                        {
                            id = tbl_Notas.Rows[0].Cells[0].Text;
                            if (tbl_Notas.Rows[0].Cells[5].Text != txt.Text.Replace(".", ","))
                            {
                                cambio             = 1;
                                objCalificacion.id = int.Parse(id);
                            }
                            else
                            {
                                cambio = 0;
                            }
                        }

                        objCalificacion.valor         = Decimal.Parse(txt.Text.Replace(".", ","));
                        objCalificacion.id_usuario    = int.Parse(Session["id_usuario"].ToString());
                        objCalificacion.id_estudiante = cedula;
                        objCalificacion.id_calificacion_configuracion = int.Parse(css[2].Trim());
                        objCalificacion.id_asignacion = int.Parse(id_asignacion.Text);

                        /*Por medio del css del elemento validamos si ya estaba
                         * en la base de datos ese registro y dependiendo de esto
                         * lo editamos*/

                        if (css[3].Trim().Equals("false"))
                        {
                            objOperCalificacion.InsertarCalificacion(objCalificacion);
                        }
                        else
                        {
                            if (cambio == 1)
                            {
                                objOperCalificacion.ActualizarCalificacion(objCalificacion);
                            }
                        }
                    }
                }
            }
            txtEstudiante.Text          = "";
            txtNombres.Text             = "";
            txtApellidos.Text           = "";
            ddlPeriodo.SelectedValue    = "0";
            tbl_Calificacion.DataSource = null;
            tbl_Calificacion.DataBind();
        }
    }