Exemplo n.º 1
0
    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);

        int periodo = 4;

        MemoryStream ms       = new MemoryStream();
        Document     document = new Document(PageSize.EXECUTIVE, 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 FINAL 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);

                    float[]   porce    = { 15f, 45f, 15f, 15f, 15f };
                    PdfPTable tbheader = new PdfPTable(porce);
                    tbheader.WidthPercentage = 100f;
                    String[] celdasEncabezado = { "CURSO", "ESTUDIANTE", "DOCUMENTO", "PROMEDIO GENERAL", "ESCALA NACIONAL" };

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

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

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

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

                    /*PROMEDIO GENERAL*/
                    Calificacion objPromedioGeneral = new Calificacion();
                    objPromedioGeneral.id_asignacion = int.Parse(dts_Matricula.Rows[0].ItemArray[2].ToString());
                    objPromedioGeneral.id_calificacion_configuracion = periodo;
                    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;
                    //promedio periodo
                    Calificacion objCalificacion_Promedio = new Calificacion();
                    objCalificacion_Promedio.id_estudiante = Int64.Parse(row.Cells[1].Text);
                    objCalificacion_Promedio.id_asignacion = periodo;
                    DataView dtvPromedio_Acumulado = objOperCalificacion.ConsultarPromedio_PeriodoAcumulado(objCalificacion_Promedio).DefaultView;
                    String   cal = "";
                    cal = getpromedioGeneral(Int64.Parse(dts_Matricula.Rows[0].ItemArray[1].ToString()));
                    if (cal.Length > 0)
                    {
                        agregarCelda(String.Format("{0:f2}", cal), tbheader);
                    }
                    else
                    {
                        agregarCelda("0,00", tbheader);
                    }

                    //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), tbheader);
                    //}
                    //else {
                    //    agregarCelda("0,00", tbheader);
                    //}

                    /*ESCALA NACIONAL*/
                    agregarCelda(getDesempeño(Convert.ToDecimal(cal)), tbheader);


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


                    tbheader.Rows.Clear();
                    tabla.Rows.Clear();

                    tbheader.SetWidths(new float[] { 10, 10, 10, 10, 10 });
                    agregarCeldaCol("", tbheader, 5);

                    document.Add(tbheader);

                    //Tabla del body
                    tbheader = new PdfPTable(8);
                    float[] medidas = { 25f, 5f, 5f, 5f, 5f, 10f, 10f, 10f };
                    tbheader.SetWidths(medidas);
                    tbheader.WidthPercentage = 100f;


                    String[] celdasTabla = { "ÁREA",       "VALORACIÓN POR PERIODO",
                                             "DEFINITIVA", "DESEMPEÑO", "FALLAS ACOMULADAS" };

                    agregarCeldaRow(celdasTabla[0], tbheader, 2);
                    agregarCeldaCol(celdasTabla[1], tbheader, 4);
                    agregarCeldaRow(celdasTabla[2], tbheader, 2);
                    agregarCeldaRow(celdasTabla[3], tbheader, 2);
                    agregarCeldaRow(celdasTabla[4], tbheader, 2);
                    agregarCelda("1", tbheader, 14083004);
                    agregarCelda("2", tbheader, 14083004);
                    agregarCelda("3", tbheader, 14083004);
                    agregarCelda("4", tbheader, 14083004);

                    document.Add(tbheader);
                    tbheader.Rows.Clear();

                    //Agregamos los campos de datos de la tabla
                    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 = "areadescripcion ASC";

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

                    //Datos

                    GridView   tbl_Promedio_Acumulado = new GridView();
                    double     promedio_acumulado     = 0;
                    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;
                    List <decimal> calificacionArea     = new List <decimal>();
                    int            cont = 0;
                    foreach (GridViewRow dr in tbl_Asignacion.Rows)
                    {
                        Calificacion objCalificacion_Promedios = new Calificacion();
                        objCalificacion_Promedio.id_estudiante = Int64.Parse(row.Cells[1].Text);
                        String Spromedio_acumulado = "";
                        dtvAsistencia_Total.RowFilter   = "id_asignacion = " + int.Parse(dr.Cells[0].Text);
                        tbl_Asistencia_Total.DataSource = dtvAsistencia_Total;
                        tbl_Asistencia_Total.DataBind();

                        if (int.Parse(dr.Cells[16].Text) == 11 || int.Parse(dr.Cells[16].Text) == 12)
                        {
                            cont++;
                            if (cont <= 1)
                            {
                                agregarCeldaCol(HttpUtility.HtmlDecode(dr.Cells[15].Text) + "\n\n\n", tbheader, 5);

                                DataView promedioarea = dtvPromedio_Acumulado;
                                GridView proma        = new GridView();
                                //promedioarea.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text);
                                promedioarea.RowFilter = "idarea = " + dr.Cells[16].Text;
                                proma.DataSource       = promedioarea;
                                proma.DataBind();
                                double promca = 0;
                                for (int h = 0; h < proma.Rows.Count; h++)
                                {
                                    promca += double.Parse(proma.Rows[h].Cells[2].Text);
                                }
                                double totalprom = (promca / proma.Rows.Count);
                                agregarCelda(String.Format("{0:f2}", totalprom), tbheader);
                                agregarCelda(getDesempeño(Convert.ToDecimal(totalprom)), tbheader);
                                agregarCelda("", tbheader);

                                calificacionArea.Add(Convert.ToDecimal(totalprom));
                            }

                            agregarCelda(HttpUtility.HtmlDecode(dr.Cells[7].Text) + "\n\n\n", tbheader, 14085004);
                        }
                        else
                        {
                            if (cont > 0)
                            {
                                agregarCeldaCol("\n", tbheader, 8);
                            }
                            cont = 0;
                            agregarCelda(HttpUtility.HtmlDecode(dr.Cells[7].Text) + "\n\n\n", tbheader, 14083004);
                        }



                        for (int i = 1; i <= 4; i++)
                        {
                            objCalificacion_Promedio.id_asignacion = i;
                            DataView dtvPromedio = objOperCalificacion.ConsultarPromedio_Periodo(objCalificacion_Promedio).DefaultView;

                            dtvPromedio.RowFilter = "id_asignacion = " + int.Parse(dr.Cells[0].Text);
                            GridView tbl_Promedio = new GridView();

                            tbl_Promedio.DataSource = dtvPromedio;
                            tbl_Promedio.DataBind();
                            if (tbl_Promedio.Rows.Count > 0)
                            {
                                agregarCelda(tbl_Promedio.Rows[0].Cells[2].Text, tbheader);
                            }
                            else
                            {
                                agregarCelda("0,0", tbheader);
                            }
                        }

                        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 (int.Parse(dr.Cells[16].Text) == 11 || int.Parse(dr.Cells[16].Text) == 12)
                        {
                        }
                        else
                        {
                            calificacionArea.Add(Convert.ToDecimal(valor));
                        }
                        if (valor > 0)
                        {
                            Spromedio_acumulado = String.Format("{0:f2}", valor);
                        }
                        else
                        {
                            Spromedio_acumulado = "0,00";
                            valor = 0;
                        }
                        promedio_acumulado = 0;

                        agregarCelda(valor + "", tbheader, 14083004);
                        agregarCelda(getDesempeño(Convert.ToDecimal(valor)) + "", tbheader);

                        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, tbheader);
                    }



                    document.Add(tbheader);
                    tbheader.Rows.Clear();
                    document.Add(new Paragraph(new Phrase(promovido(calificacionArea.ToArray()), fontTinyItalic))
                    {
                        Alignment = Element.ALIGN_CENTER
                    });
                    calificacionArea.Clear();
                    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=BoletinFinal.pdf");
        Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
    }
Exemplo n.º 2
0
    protected void btnGenerar_Click(object sender, EventArgs e)
    {
        clsFunciones.consolidado = "";
        Calificacion          objCalificacion_Promedio = new Calificacion();
        OperacionCalificacion objOperCalificacion      = new OperacionCalificacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objCalificacion_Promedio.id_calificacion_configuracion = int.Parse(ddlSalon.SelectedValue.ToString());
        objCalificacion_Promedio.id_asignacion = int.Parse(ddlPeriodo.SelectedValue.ToString());
        DataView dtvPromedio = null;

        if (!chkAcumulado.Checked)
        {
            dtvPromedio = objOperCalificacion.ConsultarPromedio_Periodo(objCalificacion_Promedio).DefaultView;
        }
        else
        {
            dtvPromedio = objOperCalificacion.ConsultarPromedio_PeriodoAcumulado(objCalificacion_Promedio).DefaultView;
        }
        Asignacion          objAsignacion     = new Asignacion();
        OperacionAsignacion objOperAsignacion = new OperacionAsignacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objAsignacion.id_salon = int.Parse(ddlSalon.SelectedValue.ToString());
        DataTable          dtEstudiante          = objOperAsignacion.ConsultarEstudiante(objAsignacion);
        DataTable          dtAsignacion          = objOperAsignacion.ConsultarAsignacion(objAsignacion);
        Matricula          objMatricula          = new Matricula();
        OperacionMatricula objOperMatricula      = new OperacionMatricula(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);
        DataTable          dta_Matricula         = new DataTable();
        Asignacion         objAsignacion_Tecnica = new Asignacion();
        DataTable          dtAsignacion_Tecnica  = new DataTable();
        Salon          objSalon     = new Salon();
        OperacionSalon objOperSalon = new OperacionSalon(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objSalon.id = int.Parse(ddlSalon.SelectedValue.ToString());
        DataTable        dtvDirector    = objOperSalon.ConsultarSalon(objSalon);
        Docente          objDocente     = new Docente();
        OperacionDocente objOperDocente = new OperacionDocente(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objDocente.id = int.Parse(dtvDirector.Rows[0].ItemArray[4].ToString());
        DataTable        dtaDocente      = objOperDocente.ConsultarDocente(objDocente);
        Anio_Escolar     objAnio_Escolar = (Anio_Escolar)Session["anioEscolar"];
        Colegio          objColegio      = new Colegio();
        OperacionColegio objOperColegio  = new OperacionColegio(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);
        DataTable        dt             = objOperColegio.ConsultarColegio(objColegio);
        string           estilo         = "style = 'text-align:center; border: 1px solid #000'";
        string           htmlencabezado = "<table width='100%' height='100%' style='font-size:10px; font-family:Calibri ;border-collapse:collapse;'>";

        htmlencabezado += " <tr>";
        htmlencabezado += "<td style = 'text-align:center'><img alt='logo' src = 'http://academico.itipuentenacional.edu.co/img/logo.png'  width='80' height='80' ></td>";
        htmlencabezado += "<td colspan='3' style = 'text-align:center'><strong><h3>" + dt.Rows[0].ItemArray[1] + "</h3></strong><h4 style='font-weight:bold'>CONSOLIDADO DE CALIFICACIONES</h4></td>";
        htmlencabezado += "</tr>";
        htmlencabezado += "<tr>";
        htmlencabezado += "<td " + estilo + "><strong>DIRECTOR</strong></td>";
        htmlencabezado += " <td " + estilo + "><strong>SALÓN</strong></td>";
        htmlencabezado += " <td " + estilo + "><strong>PERIODO</strong></td>";
        htmlencabezado += " <td " + estilo + "><strong>AÑO</strong></td>";
        htmlencabezado += "</tr>";
        htmlencabezado += " <tr>";
        htmlencabezado += "<td " + estilo + ">" + dtaDocente.Rows[0].ItemArray[3].ToString() + " " + dtaDocente.Rows[0].ItemArray[4].ToString() + "</td>";
        htmlencabezado += " <td " + estilo + ">" + ddlSalon.SelectedItem.Text.ToString() + "</td>";
        htmlencabezado += " <td " + estilo + ">" + ddlPeriodo.SelectedItem.Text.ToString() + "</td>";
        htmlencabezado += "  <td " + estilo + ">" + objAnio_Escolar.descripcion + "</td>";
        htmlencabezado += "  </tr>";

        htmlencabezado += "</table>";
        string htmlmateria = "<table width='100%' height='100%' style='font-size:10px; font-family:Calibri ;border-collapse:collapse; border: 1px solid #000'>";

        htmlmateria += "<tr><td colspan = '4' style= 'text-align:center'><strong>ASIGNATURAS</strong></td></tr>";
        string html       = "<table width='100%' height='100%' style='font-size:10px; font-family:Calibri ;border-collapse:collapse; border: 1px solid #000'>";
        string encabezado = "<tr><td bgcolor='#d6e3bc' " + estilo + ">#</td><td bgcolor='#d6e3bc' " + estilo + ">DOCUMENTO</td><td bgcolor='#d6e3bc' " + estilo + ">ESTUDIANTE</td>";

        string   cuerpo              = "";
        GridView tbl_Promedio        = new GridView();
        DataView dtvPromedio_Tecnica = new DataView();

        for (int i = 0; i < dtEstudiante.Rows.Count; i++)
        {
            objMatricula.id_estudiante = Convert.ToInt64(dtEstudiante.Rows[i].ItemArray[1].ToString());
            dta_Matricula = objOperMatricula.ConsultarMatricula(objMatricula);
            if (int.Parse(dta_Matricula.Rows[0].ItemArray[8].ToString()) != 39)
            {
                objAsignacion_Tecnica.id_salon = int.Parse(dta_Matricula.Rows[0].ItemArray[8].ToString());
                dtAsignacion_Tecnica           = objOperAsignacion.ConsultarAsignacion(objAsignacion_Tecnica);
                objCalificacion_Promedio.id_calificacion_configuracion = int.Parse(dta_Matricula.Rows[0].ItemArray[8].ToString());
                objCalificacion_Promedio.id_asignacion = int.Parse(ddlPeriodo.SelectedValue.ToString());
                if (!chkAcumulado.Checked)
                {
                    dtvPromedio_Tecnica = objOperCalificacion.ConsultarPromedio_Periodo(objCalificacion_Promedio).DefaultView;
                }
                else
                {
                    dtvPromedio_Tecnica = objOperCalificacion.ConsultarPromedio_PeriodoAcumulado(objCalificacion_Promedio).DefaultView;
                }
            }

            int    materias_perdidas = getMateriasPerdidas(dtvPromedio, dtEstudiante.Rows[i].ItemArray[0].ToString(), objAnio_Escolar.rendimiento_bajo);
            int    tecnica_perdida   = getMateriasPerdidas(dtvPromedio_Tecnica, dtEstudiante.Rows[i].ItemArray[0].ToString(), objAnio_Escolar.rendimiento_bajo);
            String color             = "";
            if (chkAcumulado.Checked)
            {
                color = "red";
            }
            else
            {
                color = "red";
            }
            if (materias_perdidas > 0 || tecnica_perdida > 0)
            {
                cuerpo += "<tr><td style = 'text-align:center; border: 1px solid #000;color:" + color + "'>" + (i + 1) + "</td>";
                cuerpo += "<td style = 'text-align:center; border: 1px solid #000;color:" + color + "'>" + dtEstudiante.Rows[i].ItemArray[1] + "</td>";
                cuerpo += "<td style = 'text-align:center; border: 1px solid #000;color:" + color + "'>" + dtEstudiante.Rows[i].ItemArray[4] + " " + dtEstudiante.Rows[i].ItemArray[5] +
                          " " + dtEstudiante.Rows[i].ItemArray[2] + " " + dtEstudiante.Rows[i].ItemArray[3] + "</td>";
            }
            else
            {
                cuerpo += "<tr><td " + estilo + ">" + (i + 1) + "</td>";
                cuerpo += "<td " + estilo + ">" + dtEstudiante.Rows[i].ItemArray[1] + "</td>";
                cuerpo += "<td " + estilo + ">" + dtEstudiante.Rows[i].ItemArray[4] + " " + dtEstudiante.Rows[i].ItemArray[5] +
                          " " + dtEstudiante.Rows[i].ItemArray[2] + " " + dtEstudiante.Rows[i].ItemArray[3] + "</td>";
            }
            int cont = 0;
            for (int j = 0; j < dtAsignacion.Rows.Count; j++)
            {
                cont++;
                if (i == 0)
                {
                    encabezado += "<td bgcolor='#d6e3bc' " + estilo + ">" + dtAsignacion.Rows[j].ItemArray[7].ToString().Substring(0, 3) + "</td>";
                    if (cont == 1)
                    {
                        htmlmateria += "<tr>";
                    }
                    htmlmateria += "<td style = 'text-align:center'>" + dtAsignacion.Rows[j].ItemArray[7].ToString().Substring(0, 3) + " : " + dtAsignacion.Rows[j].ItemArray[7].ToString() + "</td>";
                    if (cont == 4)
                    {
                        htmlmateria += "</tr>";
                        cont         = 0;
                    }
                }

                dtvPromedio.RowFilter   = "id_estudiante = " + Convert.ToInt64(dtEstudiante.Rows[i].ItemArray[0].ToString()) + " AND id_asignacion = " + int.Parse(dtAsignacion.Rows[j].ItemArray[0].ToString());
                tbl_Promedio.DataSource = dtvPromedio;
                tbl_Promedio.DataBind();
                if (tbl_Promedio.Rows.Count == 1)
                {
                    if (decimal.Parse(tbl_Promedio.Rows[0].Cells[2].Text) <= objAnio_Escolar.rendimiento_bajo)
                    {
                        cuerpo += "<td style = 'text-align:center; border: 1px solid #000;color:" + color + "'>" + tbl_Promedio.Rows[0].Cells[2].Text + "</td>";
                    }
                    else
                    {
                        cuerpo += "<td " + estilo + ">" + tbl_Promedio.Rows[0].Cells[2].Text + "</td>";
                    }
                }
                else
                {
                    cuerpo += "<td " + estilo + ">0,00</td>";
                }
            }



            for (int j = 0; j < dtAsignacion_Tecnica.Rows.Count; j++)
            {
                if (i == 0)
                {
                    encabezado += "<td bgcolor='#d6e3bc' " + estilo + ">TE" + (j + 1) + "</td>";


                    if (cont != 0)
                    {
                        htmlmateria += "<td style = 'text-align:center'>TE" + (j + 1) + ": " + dtAsignacion_Tecnica.Rows[j].ItemArray[7].ToString() + " </td>";
                        if (cont == 4)
                        {
                            htmlmateria += "</tr>";
                            cont         = 0;
                        }
                    }
                    else
                    {
                        if (cont == 1)
                        {
                            htmlmateria = "<tr>";
                        }
                        htmlmateria += "<td style = 'text-align:center'>TE" + (j + 1) + ": " + dtAsignacion_Tecnica.Rows[j].ItemArray[7].ToString() + " </td>";
                        if (cont == 4)
                        {
                            htmlmateria += "</tr>";
                            cont         = 0;
                        }
                    }
                    cont++;
                }


                dtvPromedio_Tecnica.RowFilter = "id_estudiante = " + Convert.ToInt64(dtEstudiante.Rows[i].ItemArray[0].ToString()) + " AND id_asignacion = " + int.Parse(dtAsignacion_Tecnica.Rows[j].ItemArray[0].ToString());
                tbl_Promedio.DataSource       = dtvPromedio_Tecnica;
                tbl_Promedio.DataBind();
                if (tbl_Promedio.Rows.Count == 1)
                {
                    if (decimal.Parse(tbl_Promedio.Rows[0].Cells[2].Text) <= objAnio_Escolar.rendimiento_bajo)
                    {
                        cuerpo += "<td style = 'text-align:center; border: 1px solid #000;color:" + color + "'>" + tbl_Promedio.Rows[0].Cells[2].Text + "</td>";
                    }
                    else
                    {
                        cuerpo += "<td " + estilo + ">" + tbl_Promedio.Rows[0].Cells[2].Text + "</td>";
                    }
                }
                else
                {
                    cuerpo += "<td " + estilo + ">0,00</td>";
                }
            }

            if (cont != 0)
            {
                int falta = 4 - cont;
                for (int k = 0; k < falta; k++)
                {
                    htmlmateria += "<td></td>";
                }
                htmlmateria += "</tr>";
            }

            cuerpo += "</tr>";
            if (i == 0)
            {
                encabezado += "</tr>";
            }
        }
        htmlmateria += "</table>";
        html        += encabezado + cuerpo;
        html        += "</table>";
        clsFunciones.consolidado = htmlencabezado + "<br>" + htmlmateria + html;
        Response.RedirectToRoute("General", new { Modulo = "Reporte", Entidad = "Consolidado", Pagina = "Gestion" });
    }
Exemplo n.º 3
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>");
    }
Exemplo n.º 4
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();
        }
    }
Exemplo n.º 5
0
    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);
    }
Exemplo n.º 6
0
    public string generarPlanilla(int asignacion)
    {
        string              html              = "";
        Asignacion          objAsignacion     = new Asignacion();
        OperacionAsignacion objOperAsignacion = new OperacionAsignacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objAsignacion.id = asignacion;
        DataTable        dtsEstudiante   = objOperAsignacion.ConsultarEstudiante(objAsignacion);
        Colegio          objColegio      = new Colegio();
        OperacionColegio objOperColegio  = new OperacionColegio(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);
        DataTable        dt              = objOperColegio.ConsultarColegio(objColegio);
        Anio_Escolar     objAnio_Escolar = (Anio_Escolar)Session["anioEscolar"];
        DataTable        dts_Asignacion  = objOperAsignacion.ConsultarAsignacion(objAsignacion);
        Salon            objSalon        = new Salon();
        OperacionSalon   objOperSalon    = new OperacionSalon(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objSalon.id = int.Parse(dts_Asignacion.Rows[0].ItemArray[1].ToString());
        DataTable        dts_Salon      = objOperSalon.ConsultarSalon(objSalon);
        Docente          objDocente     = new Docente();
        OperacionDocente objOperDocente = new OperacionDocente(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        if (int.Parse(Session["id_usuario_tipo"].ToString()) == 2)
        {
            objDocente.id = int.Parse(this.obtenerId_Docente());
        }
        else
        {
            objDocente.id = int.Parse(ddlDocente.SelectedValue.ToString());
        }
        //objDocente.id = int.Parse(dts_Salon.Rows[0].ItemArray[4].ToString());
        DataTable        dts_Docente    = objOperDocente.ConsultarDocente(objDocente);
        Materia          objMateria     = new Materia();
        OperacionMateria objOperMateria = new OperacionMateria(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objMateria.id = int.Parse(dts_Asignacion.Rows[0].ItemArray[2].ToString());
        DataTable dts_Materia = objOperMateria.ConsultarMateria(objMateria);

        Anio_Escolar_Periodo          objAnio_Escolar_Periodo     = new Anio_Escolar_Periodo();
        OperacionAnio_Escolar_Periodo objOperAnio_Escolar_Periodo = new OperacionAnio_Escolar_Periodo(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);

        objAnio_Escolar_Periodo.id_anio_escolar = objAnio_Escolar.id;
        DataTable dts_Periodo          = objOperAnio_Escolar_Periodo.ConsultarPeriodo_Actual(objAnio_Escolar_Periodo);
        DataTable dts_Periodo_Anterior = objOperAnio_Escolar_Periodo.ConsultarPeriodo_Anterior(objAnio_Escolar_Periodo);
        GridView  tbl_Promedio         = new GridView();
        DataView  promedio             = new DataView();

        if (objOperAnio_Escolar_Periodo.ConsultarAnio_Escolar_Periodo(objAnio_Escolar_Periodo).Rows.Count > 1)
        {
            Calificacion          objCalificacion     = new Calificacion();
            OperacionCalificacion objOperCalificacion = new OperacionCalificacion(ConfigurationManager.ConnectionStrings["estigioacademicoConnectionString"].ConnectionString);
            objCalificacion.id_usuario    = int.Parse(dts_Asignacion.Rows[0].ItemArray[0].ToString());
            objCalificacion.id_asignacion = int.Parse(dts_Periodo_Anterior.Rows[0].ItemArray[0].ToString());
            promedio = objOperCalificacion.ConsultarPromedio_PeriodoAcumulado(objCalificacion).DefaultView;
        }
        string estilo         = " style = 'border:1px solid #000; text-align: center'";
        string htmlencabezado = "";

        htmlencabezado += " <table width='100%' height='100%' style='font-size:10px; font-family:Calibri ;border-collapse:collapse;' width='100%'><tr><td width='20%' style = 'text-align:center'><img alt='logo' src = 'http://academico.itipuentenacional.edu.co/img/logo.png'  width='60' height='60' ></td><td width='80%' >";
        htmlencabezado += " <table width='100%' width='100%' height='100%' style='font-size:10px; font-family:Calibri ;border-collapse:collapse;border: 1px solid #000'>";
        htmlencabezado += "<tr>";
        htmlencabezado += "<td colspan='3' style = 'text-align: center ; font-weight:bold' ><h4>" + dt.Rows[0].ItemArray[1].ToString() + "</h4></td>";
        htmlencabezado += " </tr>";
        htmlencabezado += " <tr>";
        htmlencabezado += "  <td style = 'border:1px solid #000;'><strong>MATERIA:</strong> " + dts_Materia.Rows[0].ItemArray[1].ToString() + "</td>";
        htmlencabezado += "  <td style = 'border:1px solid #000;'><strong>SALÓN:</strong> " + dts_Salon.Rows[0].ItemArray[1].ToString() + "</td>";
        htmlencabezado += "   <td style = 'border:1px solid #000;'><strong>AÑO:</strong> " + objAnio_Escolar.descripcion + "</td>";
        htmlencabezado += "  </tr>";
        htmlencabezado += "  <tr>";
        htmlencabezado += "  <td style = 'border:1px solid #000;'><strong>DOCENTE:</strong> " + dts_Docente.Rows[0].ItemArray[3].ToString() + " " + dts_Docente.Rows[0].ItemArray[4].ToString() + "</td>";
        if (dts_Periodo.Rows.Count > 0)
        {
            htmlencabezado += "  <td  style = 'border:1px solid #000;'><strong>PERIODO:</strong> " + dts_Periodo.Rows[0].ItemArray[1].ToString() + "</td>";
        }
        else
        {
            htmlencabezado += "  <td  style = 'border:1px solid #000;'><strong>PERIODO:</strong> </td>";
        }
        DateTime date = DateTime.Now;

        htmlencabezado += "<td><strong>Fecha Impresión:</strong>  " + date.ToString("yyyy/MM/dd HH:mm") + "</td>";
        htmlencabezado += "</tr>";
        htmlencabezado += "</table>";
        htmlencabezado += "</td></tr></table>";

        string htmlcuerpo = "<table width='100%' height='100%' style='font-size:12px; font-family:Calibri ;border-collapse:collapse; border: 0.5px solid #000'>";

        htmlcuerpo += "<tr>";
        htmlcuerpo += "<td bgcolor='#d6e3bc' " + estilo + " width = '5%'>#</td>";
        htmlcuerpo += "<td bgcolor='#d6e3bc' " + estilo + " width = '30%'> <strong>ESTUDIANTE</strong></td>";
        htmlcuerpo += "</tr>";
        for (int i = 0; i < dtsEstudiante.Rows.Count; i++)
        {
            htmlcuerpo += "<tr>";
            htmlcuerpo += "<td " + estilo + "><strong>" + (i + 1) + "</strong></td>";
            htmlcuerpo += "<td style = 'border:1px solid #000; font-size:12px'> " + dtsEstudiante.Rows[i].ItemArray[4] + " " + dtsEstudiante.Rows[i].ItemArray[5]
                          + " " + dtsEstudiante.Rows[i].ItemArray[2] + " " + dtsEstudiante.Rows[i].ItemArray[3] + "</td>";
            htmlcuerpo += "</tr>";
        }
        htmlcuerpo += "</table>";
        html       += htmlencabezado + "<br>" + htmlcuerpo;
        return(html);
    }