protected void btnGraph_Click(object sender, EventArgs e)
        {
            if (Session["Usuario"] == null)
            {
                Response.Redirect("~/Security/frmCerrar.aspx");
            }
            try
            {
                if (grdDocumentos01.SelectedIndexes.Count > 0)
                {
                    var rowIndex = Convert.ToInt32(grdDocumentos01.SelectedIndexes[0]);
                    var rows     = (List <DataRow>)HttpContext.Current.Session["rows"];
                    var list     = new List <string>();
                    foreach (var column in rows[rowIndex].Table.Columns)
                    //GrdMarkBook is Data Grid name
                    {
                        string HeaderName = column.ToString();

                        //  This line Used for find any Column Have Name With Exam
                        if (HeaderName.Contains("201") && !HeaderName.Contains("Variaci"))
                        {
                            list.Add(HeaderName);
                        }
                    }

                    var source = new List <MesCosto>();

                    foreach (string name in list)
                    {
                        var objCast = string.IsNullOrEmpty(rows[rowIndex][name].ToString())
                            ? "0"
                            : rows[rowIndex][name].ToString();
                        var elemento = new MesCosto
                        {
                            mes           = name.ToString(),
                            costoUnitario = Convert.ToDecimal(objCast)
                        };

                        source.Add(elemento);
                    }

                    RadHtmlChart1.Visible    = true;
                    grdDocumentos01.Visible  = false;
                    PanelGraph.Visible       = true;
                    PanelGrid.Visible        = false;
                    btnBack.Visible          = true;
                    btnGraph.Visible         = false;
                    RadHtmlChart1.DataSource = source;
                    RadHtmlChart1.DataBind();
                }

                else
                {
                    rwmReporte.RadAlert("Ud. Debe seleccionar una fila", 500, 100, "Error al mostrar imagen", "");
                }
            }
            catch (Exception ex)
            {
                rwmReporte.RadAlert(ex.Message, 500, 100, "Error al mostrar imagen", "");
            }
        }
Esempio n. 2
0
        protected void btnGraph_Click(object sender, EventArgs e)
        {
            if (Session["Usuario"] == null)
            {
                Response.Redirect("~/Security/frmCerrar.aspx");
            }

            try
            {
                if (grdDocumentos01.SelectedIndexes.Count > 0)
                {
                    var rowIndex = Convert.ToInt32(grdDocumentos01.SelectedIndexes[0]);
                    //var rows = (List<DataRow>)HttpContext.Current.Session["rows"];
                    List <Reporte_CostoVentaResult> listaSource = (List <Reporte_CostoVentaResult>)HttpContext.Current.Session["rows"];
                    int?kardex = listaSource[rowIndex].Kardex;

                    int mesInicio = dpFecInicio.SelectedDate.Value.Month;
                    int mesFin    = dpFecFinal.SelectedDate.Value.Month;

                    var listaFiltro = (from tbl in listaSource
                                       where tbl.Kardex == kardex
                                       group tbl by new { tbl.Kardex, tbl.Descripcion } into KardexAgrupado
                                       select new
                    {
                        nroKardex = KardexAgrupado.Key.Kardex,
                        Descripcion = KardexAgrupado.Key.Descripcion,
                        Enero = KardexAgrupado.Sum(x => x.MG_Enero),
                        Febrero = KardexAgrupado.Sum(x => x.MG_Febrero),
                        Marzo = KardexAgrupado.Sum(x => x.MG_Marzo),
                        Abril = KardexAgrupado.Sum(x => x.MG_Abril),
                        Mayo = KardexAgrupado.Sum(x => x.MG_Mayo),
                        Junio = KardexAgrupado.Sum(x => x.MG_Junio),
                        Julio = KardexAgrupado.Sum(x => x.MG_Julio),
                        Agosto = KardexAgrupado.Sum(x => x.MG_Agosto),
                        Setiembre = KardexAgrupado.Sum(x => x.MG_Setiembre),
                        Octubre = KardexAgrupado.Sum(x => x.MG_Octubre),
                        Noviembre = KardexAgrupado.Sum(x => x.MG_Noviembre),
                        Diciembre = KardexAgrupado.Sum(x => x.MG_Diciembre)
                    }).ToList();

                    if (listaFiltro.Count == 1)
                    {
                        List <MesCosto> source = new List <MesCosto>();

                        Dictionary <int, string> MesesAnio = new Dictionary <int, string>();
                        MesesAnio.Add(1, "Enero");
                        MesesAnio.Add(2, "Febrero");
                        MesesAnio.Add(3, "Marzo");
                        MesesAnio.Add(4, "Abril");
                        MesesAnio.Add(5, "Mayo");
                        MesesAnio.Add(6, "Junio");
                        MesesAnio.Add(7, "Julio");
                        MesesAnio.Add(8, "Agosto");
                        MesesAnio.Add(9, "Setiembre");
                        MesesAnio.Add(10, "Octubre");
                        MesesAnio.Add(11, "Noviembre");
                        MesesAnio.Add(12, "Diciembre");


                        if (mesInicio > mesFin)
                        {
                            mesFin = mesFin + 12;
                        }

                        int difMeses = (mesFin - mesInicio) + 1;

                        for (int i = 0; i <= difMeses - 1; i++)
                        {
                            string cadena_mes = "";
                            //string cadena_anio = "";

                            if ((mesInicio + i) > 12)
                            {
                                cadena_mes = MesesAnio[(mesInicio + i) - 12];
                                //cadena_anio = fechaFinal.Year.ToString();
                            }
                            else
                            {
                                cadena_mes = MesesAnio[mesInicio + i];
                                //cadena_anio = fechaInicio.Year.ToString();
                            }

                            MesCosto itemMes = new MesCosto();
                            itemMes.mes = cadena_mes;

                            switch (cadena_mes)
                            {
                            case "Enero":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Enero);
                                break;

                            case "Febrero":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Febrero);
                                break;

                            case "Marzo":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Marzo);
                                break;

                            case "Abril":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Abril);
                                break;

                            case "Mayo":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Mayo);
                                break;

                            case "Junio":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Junio);
                                break;

                            case "Julio":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Julio);
                                break;

                            case "Agosto":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Agosto);
                                break;

                            case "Setiembre":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Setiembre);
                                break;

                            case "Octubre":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Octubre);
                                break;

                            case "Noviembre":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Noviembre);
                                break;

                            case "Diciembre":
                                itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Diciembre);
                                break;

                            default:
                                itemMes.costoUnitario = 0;
                                break;
                            }

                            //itemMes.costoUnitario = listaFiltro[0].


                            source.Add(itemMes);
                        }

                        lblTitulo.Text = "Costo de ventas por producto " + dpFecInicio.SelectedDate.Value.Month.ToString("00") + "-" + dpFecInicio.SelectedDate.Value.Year.ToString() +
                                         " hasta " + dpFecFinal.SelectedDate.Value.Month.ToString("00") + "-" + dpFecFinal.SelectedDate.Value.Year.ToString();

                        RadHtmlChart1.ChartTitle.Text = "Fluctuación del % Margen Unitario por Kardex " + kardex.ToString().Trim()
                                                        + " : " + listaFiltro[0].Descripcion;

                        RadHtmlChart1.Visible    = true;
                        grdDocumentos01.Visible  = false;
                        PanelGraph.Visible       = true;
                        PanelGrid.Visible        = false;
                        btnBack.Visible          = true;
                        btnGraph.Visible         = false;
                        RadHtmlChart1.DataSource = source;
                        RadHtmlChart1.DataBind();
                    }
                }
                else
                {
                    throw new System.ArgumentException("Por favor seleccione un registro de la lista de Costos de Ventas");
                }
            }
            catch (ArgumentException ex1) {
                rwmReporte.RadAlert(ex1.Message, 300, 120, "Mensaje", "");
            }
            catch (Exception ex)
            {
                rwmReporte.RadAlert(ex.Message, 500, 100, "Error al mostrar imagen", "");
            }
        }