public static GraficoBean ReporteGraficoExcesoTiempo(OportunidadBean item) { var dt = ReporteModel.ReporteGraficoExcesoTiempo(item); var result = new GraficoItemBean(); var lst = new List <OportunidadBean>(); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { var reporte = new OportunidadBean() { Estado = row["Estado"].ToString(), Etapa = row["Etapa"].ToString(), Cantidad = row["cantidad"].ToString(), }; lst.Add(reporte); } } // var data = lst //.GroupBy(p => p.Etapa) //.Select(g => g.FirstOrDefault()) //.ToArray(); String[] categorias = lst.Select(s => s.Etapa).Distinct().ToArray(); String[] estados = lst.Select(s => s.Estado).Distinct().ToArray(); List <GraficoItem2Bean> lGrafic = new List <GraficoItem2Bean>(); foreach (var es in estados) { GraficoItem2Bean eGraf = new GraficoItem2Bean(); eGraf.name = es; int j = 0; Decimal[] dataEt = new Decimal[categorias.Length]; foreach (var cat in categorias) { var cant = lst.Find(x => x.Estado == es && x.Etapa == cat); if (cant != null) { dataEt[j] = Decimal.Parse(cant.Cantidad); } else { dataEt[j] = 0; } j++; } eGraf.data = dataEt; lGrafic.Add(eGraf); } GraficoBean lPadreGrafic = new GraficoBean { categorias = categorias, itemsArr = lGrafic }; return(lPadreGrafic); }
public static dynamic reporteGrafico(String fechaini, String fechafin, String coordinador, String responsable, String estado, String etapa, String tipoTotal) { try { String usuaSession = HttpContext.Current.Session["lgn_id"].ToString(); fechaini = Utils.getStringFechaYYMMDDHHMM(fechaini); fechafin = Utils.getStringFechaYYMMDDHHMM(fechafin); OportunidadBean eOport = new OportunidadBean { FechaInicio = fechaini, FechaFin = fechafin, Coordinador = coordinador, Responsable = responsable, Estado = estado, Etapa = etapa, UsuSession = usuaSession, tipoTotal = tipoTotal }; String tituloPye = "Exceso Tiempo en Etapas"; if (tipoTotal == "2") { tituloPye = "Total TM Estimado"; } var data = ReporteController.ReporteGraficoExcesoTiempo(eOport); var dashEtapasPorEstado = new GraficoBean { Titulo = tituloPye, itemsArr = data.itemsArr, categorias = data.categorias, SubTitulo = "Oportunidades", }; return(new { dashEtapasPorEstado = dashEtapasPorEstado }); } catch (Exception ex) { LogHelper.LogException(ex, "Error :ExcesoTiempo_grafico : "); return(new List <ListItem>()); } }