Beispiel #1
0
    protected void GridView_RESULTADOS_BUSQUEDA_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int indexSeleccionado = Convert.ToInt32(e.CommandArgument);

        if (e.CommandName == "imprimir")
        {
            Boolean  correcto     = true;
            DateTime fechaInicial = new DateTime();
            DateTime fechaFinal   = new DateTime();

            GridViewRow filaGrilla = GridView_RESULTADOS_BUSQUEDA.Rows[indexSeleccionado];

            TextBox textoFechaInicial = filaGrilla.FindControl("TextBox_FechaInicial") as TextBox;
            try
            {
                fechaInicial = Convert.ToDateTime(textoFechaInicial.Text);
            }
            catch
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La fecha inicial esta vacio o no tiene el formato correcto (dd/mm/yyyy).", Proceso.Advertencia);
                fechaInicial = new DateTime();
                correcto     = false;
            }

            TextBox textoFechaFinal = filaGrilla.FindControl("TextBox_FechaFinal") as TextBox;
            try
            {
                fechaFinal = Convert.ToDateTime(textoFechaFinal.Text);
            }
            catch
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La fecha final esta vacio o no tiene el formato correcto (dd/mm/yyyy).", Proceso.Advertencia);
                fechaFinal = new DateTime();
                correcto   = false;
            }

            TextBox textoConclusiones = filaGrilla.FindControl("TextBox_Conclusiones") as TextBox;
            if (String.IsNullOrEmpty(textoConclusiones.Text.Trim()) == true)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "para poder continuar debe digitar las conclusiones.", Proceso.Advertencia);
                correcto = false;
            }

            if (correcto == true)
            {
                Programa _prog = new Programa(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

                Decimal ID_PROGRAMA = Convert.ToDecimal(GridView_RESULTADOS_BUSQUEDA.DataKeys[indexSeleccionado].Values["ID_PROGRAMA"]);

                Decimal ID_CORTE = _prog.AdicionarCorteInformeCliente(ID_PROGRAMA, fechaInicial, fechaFinal, textoConclusiones.Text.Trim());
                if (ID_CORTE <= 0)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _prog.MensajeError, Proceso.Error);
                }
                else
                {
                    DataTable tablaPrograma = _prog.ObtenerListaActividadesParaPDFInformeClientes(ID_PROGRAMA, ID_CORTE, fechaInicial, fechaFinal);
                    if (tablaPrograma.Rows.Count <= 0)
                    {
                        if (_prog.MensajeError != null)
                        {
                            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _prog.MensajeError, Proceso.Error);
                        }
                        else
                        {
                            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "En este momento no se encontraron actividades ejecutadas para el año, cliente Y periodo seleccionado.", Proceso.Advertencia);
                        }
                    }
                    else
                    {
                        byte[] archivo = ImprimirPdfInforme(tablaPrograma);

                        Response.AddHeader("Content-Disposition", "attachment;FileName=informe_programa_clinete_" + ID_PROGRAMA.ToString() + ".pdf");
                        Response.Clear();
                        Response.Buffer      = true;
                        Response.ContentType = "application/pdf";
                        Response.BinaryWrite(archivo);
                        Response.End();
                    }
                }
            }
        }
    }