Exemple #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();
        }
    }
Exemple #2
0
    public void ver_tbl()
    {
        if (txtEstudiante.Text != "" && txtNombres.Text != "" && txtApellidos.Text != "")
        {
            tbl_Calificacion.Columns.Clear();
            Matricula          objMatricula     = new Matricula();
            OperacionMatricula objOperMatricula = new OperacionMatricula(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);
            objMatricula.id_estudiante = Convert.ToInt64(txtEstudiante.Text);
            DataTable dts_Matricula = objOperMatricula.ConsultarMatricula(objMatricula);

            Asignacion          objAsignacion     = new Asignacion();
            OperacionAsignacion objOperAsignacion = new OperacionAsignacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

            objAsignacion.id_salon = int.Parse(dts_Matricula.Rows[0].ItemArray[2].ToString());
            DataTable asignacion_Normal = objOperAsignacion.ConsultarAsignacion(objAsignacion);

            objAsignacion.id_salon = int.Parse(dts_Matricula.Rows[0].ItemArray[8].ToString());
            DataTable asignacion_Tecnica = objOperAsignacion.ConsultarAsignacion(objAsignacion);

            asignacion_Normal.Merge(asignacion_Tecnica);

            DataView dv_Materia = asignacion_Normal.DefaultView;
            dv_Materia.Sort = "orden_impresion ASC";

            GridView tbl_Materia = new GridView();
            tbl_Materia.DataSource = dv_Materia;
            tbl_Materia.DataBind();

            Calificacion_Configuracion          objConfiguracionCalificacion      = new Calificacion_Configuracion();
            OperacionCalificacion_Configuracion objOperCalificacion_Configuracion = new OperacionCalificacion_Configuracion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);
            objConfiguracionCalificacion.id_periodo = int.Parse(ddlPeriodo.SelectedValue);
            GridView tbl_configuracion = new GridView();
            objConfiguracionCalificacion.id_periodo = int.Parse(ddlPeriodo.SelectedValue.ToString());
            tbl_configuracion.DataSource            = objOperCalificacion_Configuracion.ConsultarCalificacion_Configuracion(objConfiguracionCalificacion);
            tbl_configuracion.DataBind();


            DataTable tbl_Calificaciones = new DataTable();
            tbl_Calificaciones.Clear();
            tbl_Calificaciones.Columns.Add("ID");
            tbl_Calificaciones.Columns.Add("MATERIA");
            agregarItemTemplate("ID", "ID", "Label", "0", "span2");
            agregarItemTemplate("MATERIA", "MATERIA", "Label", "0", "span2");

            for (int i = 0; i < tbl_configuracion.Rows.Count; i++)
            {
                string header = HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(tbl_configuracion.Rows[i].Cells[1].Text) + " <br> (" + tbl_configuracion.Rows[i].Cells[3].Text + ")%");
                string eval   = HttpUtility.HtmlDecode(tbl_configuracion.Rows[i].Cells[1].Text);
                agregarItemTemplate(header, eval, "Textbox", tbl_configuracion.Rows[i].Cells[3].Text + " " + tbl_configuracion.Rows[i].Cells[0].Text, "span1");
                tbl_Calificaciones.Columns.Add(HttpUtility.HtmlDecode(tbl_configuracion.Rows[i].Cells[1].Text));
            }

            tbl_Calificaciones.Columns.Add("PROMEDIO PERIODO");
            agregarItemTemplate("PROMEDIO PERIODO", "PROMEDIO PERIODO", "Label", "Periodo", "span1");

            double promedio_periodo = 0;

            Calificacion          objCalificacion     = new Calificacion();
            OperacionCalificacion objOperCalificacion = new OperacionCalificacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);
            objCalificacion.id_estudiante = Convert.ToInt64(txtEstudiante.Text);
            DataView dtv_Notas = objOperCalificacion.ConsultarCalificacion(objCalificacion).DefaultView;

            foreach (GridViewRow dr in tbl_Materia.Rows)
            {
                DataRow dtw = tbl_Calificaciones.NewRow();
                dtw["ID"]      = dr.Cells[0].Text;
                dtw["MATERIA"] = dr.Cells[7].Text;

                for (int i = 0; i < tbl_configuracion.Rows.Count; i++)
                {
                    /*Filtramos las notas por el tipo de calificación*/
                    dtv_Notas.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text) + " AND id_calificacion_configuracion = " + int.Parse(tbl_configuracion.Rows[i].Cells[0].Text);

                    /*Llenado del datarow con las notas del estudiante
                     * observacion: el indice del dataview es el nombre de la nota
                     * y calculamos el promedio apartir de las notas almacenadas*/
                    GridView tbl_Notas_Filtradas = new GridView();
                    tbl_Notas_Filtradas.DataSource = dtv_Notas;
                    tbl_Notas_Filtradas.DataBind();
                    if (tbl_Notas_Filtradas.Rows.Count > 0)
                    {
                        dtw[HttpUtility.HtmlDecode(tbl_configuracion.Rows[i].Cells[1].Text)] = Decimal.Parse(tbl_Notas_Filtradas.Rows[0].Cells[5].Text);
                        promedio_periodo += double.Parse(tbl_Notas_Filtradas.Rows[0].Cells[5].Text) * (double.Parse(tbl_configuracion.Rows[i].Cells[3].Text) / 100);
                    }
                    else
                    {
                        dtw[HttpUtility.HtmlDecode(tbl_configuracion.Rows[i].Cells[1].Text)] = "";
                    }
                }

                dtw["PROMEDIO PERIODO"] = String.Format("{0:f2}", promedio_periodo);
                promedio_periodo        = 0;
                tbl_Calificaciones.Rows.Add(dtw);
            }
            tbl_Calificacion.DataSource = tbl_Calificaciones.DefaultView;
            tbl_Calificacion.DataBind();
            tbl_Calificaciones.Clear();
        }
        btnCambiar.Visible = true;
        //  ClientScript.RegisterStartupScript(this.GetType(), "forzar", "<script>javascript:Forzar();</script>");
    }
    public void generarBoletin()
    {
        /*Consultamos la matricula*/
        Matricula          objMatricula     = new Matricula();
        OperacionMatricula objOperMatricula = new OperacionMatricula(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        Asignacion          objAsignacion     = new Asignacion();
        OperacionAsignacion objOperAsignacion = new OperacionAsignacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        Asistencia          objAsistencia     = new Asistencia();
        OperacionAsistencia objOperAsistencia = new OperacionAsistencia(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        Indicador          objIndicador     = new Indicador();
        OperacionIndicador objOperIndicador = new OperacionIndicador(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        Calificacion          objCalificacion     = new Calificacion();
        OperacionCalificacion objOperCalificacion = new OperacionCalificacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        Calificacion_Configuracion          objConfiguracion_Calificacion     = new Calificacion_Configuracion();
        OperacionCalificacion_Configuracion objOperConfiguracion_Calificacion = new OperacionCalificacion_Configuracion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        Salon          objSalon     = new Salon();
        OperacionSalon objOperSalon = new OperacionSalon(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);



        MemoryStream ms       = new MemoryStream();
        Document     document = new Document(PageSize.LEGAL, 10f, 10f, 10f, 10f);
        PdfWriter    writer   = PdfWriter.GetInstance(document, ms);

        document.Open();


        Font fontTinyItalic = FontFactory.GetFont("Arial", 7);
        Font fontEncabezado = FontFactory.GetFont("Arial", 12);


        float[] porcentajes = { 15f, 45f, 10f, 10f, 10f, 10f };



        foreach (GridViewRow row in tbl_Estudiante.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                CheckBox chkRow = (row.Cells[0].FindControl("chkEstudiante") as CheckBox);
                if (chkRow.Checked)
                {
                    objMatricula.id_estudiante = Int64.Parse(row.Cells[1].Text);
                    DataTable dts_Matricula = objOperMatricula.ConsultarMatricula(objMatricula);

                    PdfPTable tabla = new PdfPTable(porcentajes);
                    tabla.WidthPercentage = 100f;
                    PdfPCell celda;
                    Phrase   texto;

                    celda = new PdfPCell();
                    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(new Uri("http://academico.itipuentenacional.edu.co/img/logo.png"));
                    image.ScaleAbsolute(40f, 40f);
                    image.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
                    celda.Image     = image;
                    celda.Border    = Rectangle.NO_BORDER;
                    tabla.AddCell(celda);

                    celda         = new PdfPCell();
                    celda.Colspan = 4;
                    texto         = new Phrase();
                    texto.Font    = fontEncabezado;
                    texto.Add("INSTITUTO TÉCNICO INDUSTRIAL FRANCISCO DE PAULA SANTANDER \n\nwww.itipuentenacional.edu.co \n\nINFORME ACADÉMICO 2014");
                    celda.Phrase = texto;
                    celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    celda.VerticalAlignment   = PdfPCell.ALIGN_MIDDLE;
                    celda.Border = Rectangle.NO_BORDER;
                    tabla.AddCell(celda);

                    celda = new PdfPCell();
                    iTextSharp.text.Image image_estudiante = iTextSharp.text.Image.GetInstance(new Uri("http://academico.itipuentenacional.edu.co/" + dts_Matricula.Rows[0].ItemArray[10].ToString().Replace("~/", "")));
                    image.ScaleAbsolute(10f, 10f);
                    //image.ScalePercent(10f);
                    celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    celda.VerticalAlignment   = PdfPCell.ALIGN_MIDDLE;
                    celda.Image = image_estudiante;
                    celda.AddElement(texto);
                    celda.Border = Rectangle.NO_BORDER;
                    tabla.AddCell(celda);

                    String[] celdasEncabezado = { "CURSO", "ESTUDIANTE", "DOCUMENTO", "PROMEDIO GENERAL", "ESCALA NACIONAL", "PERIODO" };

                    for (int i = 0; i < celdasEncabezado.Length; i++)
                    {
                        agregarCelda(celdasEncabezado[i], tabla);
                    }

                    /*CURSO*/
                    agregarCelda(ddlSalon.SelectedItem.Text, tabla);

                    /*ESTUDIANTE*/
                    var nombre_completo = dts_Matricula.Rows[0].ItemArray[7].ToString() + " "
                                          + dts_Matricula.Rows[0].ItemArray[6].ToString();
                    agregarCelda(nombre_completo, tabla);

                    /*DOCUMENTO*/
                    agregarCelda(Int64.Parse(row.Cells[1].Text).ToString(), tabla);

                    /*PROMEDIO GENERAL*/
                    Calificacion objPromedioGeneral = new Calificacion();
                    objPromedioGeneral.id_asignacion = int.Parse(dts_Matricula.Rows[0].ItemArray[2].ToString());
                    objPromedioGeneral.id_calificacion_configuracion = int.Parse(ddlPeriodo.SelectedValue.ToString());
                    DataView promedio_general = objOperCalificacion.ConsultarPromedio_General(objPromedioGeneral).DefaultView;
                    promedio_general.RowFilter = "id_estudiante=" + row.Cells[1].Text;
                    GridView tbl_promedio_general = new GridView();
                    tbl_promedio_general.DataSource = promedio_general;
                    tbl_promedio_general.DataBind();
                    decimal promedio_g = 0;
                    if (tbl_promedio_general.Rows.Count > 0)
                    {
                        promedio_g = decimal.Parse(tbl_promedio_general.Rows[0].Cells[2].Text);
                        agregarCelda(String.Format("{0:f2}", promedio_g), tabla);
                    }
                    else
                    {
                        agregarCelda("0,00", tabla);
                    }



                    /*ESCALA NACIONAL*/
                    agregarCelda(getDesempeño(promedio_g), tabla);

                    /*PERIODO*/
                    agregarCelda(ddlPeriodo.SelectedItem.Text, tabla);

                    tabla.SpacingBefore = 10;
                    document.Add(tabla);

                    tabla.Rows.Clear();


                    objAsignacion.id_salon = int.Parse(ddlSalon.SelectedValue.ToString());
                    DataTable dts = objOperAsignacion.ConsultarAsignacion(objAsignacion);

                    objAsignacion.id_salon = int.Parse(dts_Matricula.Rows[0].ItemArray[8].ToString());
                    DataTable tecnica = objOperAsignacion.ConsultarAsignacion(objAsignacion);
                    dts.Merge(tecnica);

                    DataView dtv_Asignacion = dts.DefaultView;
                    dtv_Asignacion.Sort = "orden_impresion ASC";

                    GridView tbl_Asignacion = new GridView();
                    tbl_Asignacion.DataSource = dtv_Asignacion;
                    tbl_Asignacion.DataBind();


                    objAsistencia.id_estudiante = Int64.Parse(row.Cells[1].Text);
                    objAsistencia.id_periodo    = int.Parse(ddlPeriodo.SelectedValue.ToString());
                    DataView dtvAsistencia = objOperAsistencia.ConsultarAsistencia(objAsistencia).DefaultView;

                    objConfiguracion_Calificacion.id_periodo = int.Parse(ddlPeriodo.SelectedValue.ToString());
                    DataTable dta_Configuracion_Calificacion = objOperConfiguracion_Calificacion.ConsultarCalificacion_Configuracion(objConfiguracion_Calificacion);

                    objIndicador.id_grado = int.Parse(dts.Rows[0].ItemArray[11].ToString());
                    objIndicador.id_anio_escolar_periodo = int.Parse(ddlPeriodo.SelectedValue.ToString());
                    DataView dtvIndicador  = objOperIndicador.ConsultarIndicador(objIndicador).DefaultView;
                    GridView tbl_Indicador = new GridView();

                    objCalificacion.id_estudiante = Int64.Parse(row.Cells[1].Text);
                    DataView     dtvCalificacion          = objOperCalificacion.ConsultarCalificacion(objCalificacion).DefaultView;
                    GridView     tbl_Calificacion         = new GridView();
                    Calificacion objCalificacion_Promedio = new Calificacion();
                    objCalificacion_Promedio.id_estudiante = Int64.Parse(row.Cells[1].Text);
                    objCalificacion_Promedio.id_asignacion = int.Parse(ddlPeriodo.SelectedValue.ToString());
                    DataView   dtvPromedio            = objOperCalificacion.ConsultarPromedio_Periodo(objCalificacion_Promedio).DefaultView;
                    DataView   dtvPromedio_Acumulado  = objOperCalificacion.ConsultarPromedio_PeriodoAcumulado(objCalificacion_Promedio).DefaultView;
                    double     promedio_acumulado     = 0;
                    GridView   tbl_Promedio           = new GridView();
                    GridView   tbl_Promedio_Acumulado = new GridView();
                    Asistencia objAsistencia_2        = new Asistencia();
                    objAsistencia_2.id_estudiante = Int64.Parse(row.Cells[1].Text);
                    DataView dtvAsistencia_Total  = objOperAsistencia.ConsultarAsistencia(objAsistencia_2).DefaultView;
                    GridView tbl_Asistencia_Total = new GridView();
                    int      asistencia_total     = 0;
                    /*Tenemos que recorrer las notas solo esta el sabeer*/
                    foreach (GridViewRow dr in tbl_Asignacion.Rows)
                    {
                        dtvAsistencia.RowFilter         = "id_asignacion = " + int.Parse(dr.Cells[0].Text);
                        dtvAsistencia_Total.RowFilter   = "id_asignacion = " + int.Parse(dr.Cells[0].Text);
                        tbl_Asistencia_Total.DataSource = dtvAsistencia_Total;
                        tbl_Asistencia_Total.DataBind();

                        GridView tbl_Asistencia = new GridView();
                        tbl_Asistencia.DataSource = dtvAsistencia;
                        tbl_Asistencia.DataBind();
                        agregarCelda(HttpUtility.HtmlDecode(dr.Cells[7].Text), tabla, 14083004);
                        agregarCelda("DOCENTE: " + HttpUtility.HtmlDecode(dr.Cells[10].Text), tabla, 14083004);
                        agregarCelda("VALORIZACIÓN", tabla, 14083004);
                        agregarCelda("DEFINITIVA PERIODO", tabla, 14083004);
                        agregarCelda("DEFINITIVA ACUMULADO", tabla, 14083004);
                        agregarCelda("FALLAS PERIODO", tabla, 14083004);

                        String saber               = "";
                        String indicador           = "";
                        String calificacion        = "";
                        String promedio            = "";
                        String Spromedio_acumulado = "";
                        String asistencia          = "";
                        for (int i = 0; i < dta_Configuracion_Calificacion.Rows.Count; i++)
                        {
                            dtvIndicador.RowFilter = "id_materia =" + dr.Cells[2].Text
                                                     + " AND id_saber = " + int.Parse(dta_Configuracion_Calificacion.Rows[i].ItemArray[0].ToString());
                            tbl_Indicador.DataSource = dtvIndicador;
                            tbl_Indicador.DataBind();

                            dtvCalificacion.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text) +
                                                        " AND id_calificacion_configuracion = " + dta_Configuracion_Calificacion.Rows[i].ItemArray[0].ToString();
                            saber = dta_Configuracion_Calificacion.Rows[i].ItemArray[1].ToString();

                            /*Agregamos indicadores*/
                            if (tbl_Indicador.Rows.Count == 1)
                            {
                                indicador = HttpUtility.HtmlDecode(tbl_Indicador.Rows[0].Cells[1].Text);
                            }
                            else
                            {
                                indicador = "";
                            }

                            /*Agregamos calificaciones*/
                            tbl_Calificacion.DataSource = dtvCalificacion;
                            tbl_Calificacion.DataBind();
                            if (tbl_Calificacion.Rows.Count == 1)
                            {
                                calificacion = tbl_Calificacion.Rows[0].Cells[5].Text;
                            }
                            else
                            {
                                calificacion = "0,00";
                            }

                            dtvPromedio.RowFilter   = "id_asignacion = " + int.Parse(dr.Cells[0].Text);
                            tbl_Promedio.DataSource = dtvPromedio;
                            tbl_Promedio.DataBind();
                            if (tbl_Promedio.Rows.Count == 1)
                            {
                                promedio = tbl_Promedio.Rows[0].Cells[2].Text;
                            }
                            else
                            {
                                promedio = "0,00";
                            }

                            dtvPromedio_Acumulado.RowFilter   = "id_asignacion = " + int.Parse(dr.Cells[0].Text);
                            tbl_Promedio_Acumulado.DataSource = dtvPromedio_Acumulado;
                            tbl_Promedio_Acumulado.DataBind();

                            for (int j = 0; j < tbl_Promedio_Acumulado.Rows.Count; j++)
                            {
                                promedio_acumulado += double.Parse(tbl_Promedio_Acumulado.Rows[j].Cells[2].Text);
                            }
                            double valor = promedio_acumulado;
                            if (valor > 0)
                            {
                                Spromedio_acumulado = String.Format("{0:f2}", valor);
                            }
                            else
                            {
                                Spromedio_acumulado = "0,00";
                                valor = 0;
                            }
                            promedio_acumulado = 0;
                            if (tbl_Asistencia.Rows.Count > 0)
                            {
                                asistencia = tbl_Asistencia.Rows[0].Cells[4].Text;
                            }
                            else
                            {
                                asistencia = "0";
                            }

                            if (i != (dta_Configuracion_Calificacion.Rows.Count - 1))
                            {
                                agregarCelda(saber, tabla);
                                agregarCeldaJustificado(indicador, tabla);
                                agregarCelda(calificacion, tabla);
                            }
                            else
                            {
                                agregarCeldaRow(saber, tabla, 2);
                                agregarCeldaRowJustificado(indicador, tabla, 2);
                                agregarCeldaRow(calificacion, tabla, 2);
                                for (int k = 0; k < 2; k++)
                                {
                                    if (k == 0)
                                    {
                                        agregarCelda("DESEMPEÑO PERIODO", tabla, 14083004);
                                        agregarCelda("DESEMPEÑO ACUMULADO", tabla, 14083004);
                                        agregarCelda("FALLAS ACUMULADAS", tabla, 14083004);
                                    }
                                    else
                                    {
                                        agregarCelda(getDesempeño(Convert.ToDecimal(promedio)), tabla);
                                        agregarCelda(getDesempeño(Convert.ToDecimal(valor)), tabla);
                                        if (tbl_Asistencia_Total.Rows.Count > 0)
                                        {
                                            for (int j = 0; j < tbl_Asistencia_Total.Rows.Count; j++)
                                            {
                                                asistencia_total += int.Parse(tbl_Asistencia_Total.Rows[j].Cells[4].Text);
                                            }
                                        }
                                        else
                                        {
                                            asistencia_total = 0;
                                        }
                                        agregarCelda("" + asistencia_total, tabla);
                                    }
                                }
                            }

                            if (i == 0)
                            {
                                agregarCeldaRow(promedio, tabla, 2);
                                agregarCeldaRow(Spromedio_acumulado, tabla, 2);
                                agregarCeldaRow(asistencia, tabla, 2);
                            }
                        }
                    }

                    document.Add(tabla);
                    if (tbl_promedio_general.Rows.Count > 0)
                    {
                        document.Add(new Paragraph(new Phrase("EL ESTUDIANTE HA OCUPADO EL PUESTO " + tbl_promedio_general.Rows[0].Cells[0].Text, fontTinyItalic))
                        {
                            Alignment = Element.ALIGN_CENTER
                        });
                    }
                    tabla = new PdfPTable(1);
                    tabla.SpacingBefore = 40f;
                    objSalon.id         = int.Parse(ddlSalon.SelectedValue.ToString());
                    Phrase director = new Phrase(objOperSalon.ConsultarSalon(objSalon).Rows[0].ItemArray[8].ToString(), fontTinyItalic);
                    celda.Phrase = director;
                    celda.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    celda.VerticalAlignment   = PdfPCell.ALIGN_MIDDLE;
                    celda.Border = PdfPCell.TOP_BORDER;
                    tabla.AddCell(celda);
                    document.Add(tabla);
                    document.NewPage();
                }
            }
        }
        document.Close();
        writer.Close();
        ms.Close();
        Response.ContentType = "pdf/application";
        Response.AddHeader("content-disposition", "attachment;filename=Boletin.pdf");
        Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
    }