public JsonResult Grafico_Donut(Busqueda_Model modelo) { try { var db = new mmsEntities(); var lista = db.ingresos.Where(x => x.Id_Entidad == ID_Entidad && x.Fecha >= modelo.Fecha_Desde.Date && x.Fecha <= modelo.Fecha_Hasta.Date && x.Activo).ToList() .Where(x => (modelo.Cate == null || x.Id_Categoria == modelo.Cate.Id) && (modelo.Tipo == null || x.Id_Tipo == modelo.Tipo.id) && (modelo.SubCate == null || x.Id_SubCategoria == modelo.SubCate.Id)).OrderByDescending(p => p.id).ToList(); var GraficoCate = lista.Where(p => (modelo.Cate == null || p.Id_Categoria == modelo.Cate.Id) && (modelo.SubCate == null || p.Id_SubCategoria == modelo.SubCate.Id)).GroupBy(x => x.combo_sub_categoria.Nombre).ToList(); var resultado = new List <Morris_Donut>(); var dato = new Morris_Donut { element = "morris-donut-chart", data = GraficoCate.Select(p => new Datos_Donut { label = p.Key, value = p.Sum(q => Math.Round(q.Precio.Value)) }).ToList(), resize = true }; resultado.Add(dato); return(Json(ResultadoJson <Morris_Donut> .ResultadoCorrecto(resultado))); } catch (Exception ex) { return(Json(ResultadoJson <Morris_Donut> .ResultadoInCorrecto(ex.Message))); throw; } }
public JsonResult BusquedaGeneral(Busqueda_Model modelo) { try { var db = new mmsEntities(); var lista = new List <ingresos>(); var Reporte_Bar = new List <ingresos>(); if (modelo.detallado) { lista = db.ingresos.Where(x => x.Id_Entidad == ID_Entidad && x.Fecha >= modelo.Fecha_Desde.Date && x.Fecha <= modelo.Fecha_Hasta.Date && x.Activo).ToList() .Where(x => (modelo.Cate == null || x.Id_Categoria == modelo.Cate.Id) && (modelo.Tipo == null || x.Id_Tipo == modelo.Tipo.id) && (modelo.SubCate == null || x.Id_SubCategoria == modelo.SubCate.Id)).OrderByDescending(p => p.id).ToList(); //lista = lista.Where(x => ); // lista = db.ingresos.Where(x => x.Id_Entidad == ID_Entidad && x.combo_categoria.Nombre.ToString() == modelo.Cate.Nombre.ToString() && x.combo_tipo.Nombre.ToString() == modelo.Tipo.Nombre.ToString() && x.combo_sub_categoria.Nombre.ToString() == modelo.SubCate.Nombre.ToString() // && x.Fecha >= modelo.Fecha_Desde.Date && x.Fecha <= modelo.Fecha_Hasta.Date && x.Activo).OrderByDescending(p => p.id).ToList(); } else { lista = db.ingresos.Where(x => x.Id_Entidad == ID_Entidad && x.Fecha >= modelo.Fecha_Desde.Date && x.Fecha <= modelo.Fecha_Hasta.Date && x.Activo).OrderByDescending(p => p.id).ToList(); } var resultado = new List <Home_Model>(); foreach (var item in lista) { var grafico = lista.GroupBy(x => x.combo_categoria.Nombre).ToList(); resultado.Add(new Home_Model { Id = item.id, Cate = new Combo_Categorias() { Id = item.combo_categoria.id != null ? item.combo_categoria.id : 0, Nombre = item.combo_categoria.Nombre != null ? item.combo_categoria.Nombre : null }, SubCate = new Combo_Sub_Categorias() { Id = item.combo_sub_categoria.id != null ? item.combo_sub_categoria.id : 0, Nombre = item.combo_sub_categoria.Nombre != null ? item.combo_sub_categoria.Nombre : null }, Observacion = item.Observación, Tipo = new Combo_Tipo() { id = item.combo_tipo.id, Nombre = item.combo_tipo.Nombre }, Forma_Pago = new Combo_FormaPago() { Id = item.combo_forma_pago.id, Nombre = item.combo_forma_pago.Nombre }, Precio = item.Precio.Value, Fecha = item.Fecha, Grafico = new Reportes_Model() { MBar = new Morris_Bar() { element = "morris-bar-chart", data = grafico.Select(p => new Datos { Nombre = p.Key, Total = p.Sum(q => Math.Round(q.Precio.Value)) }).ToList(), xkey = "Nombre", ykeys = { { "Total" } }, hideHover = "auto", resize = true, labels = { "Total" } } } }); } var res = Json(ResultadoJson <Home_Model> .ResultadoCorrecto(resultado)); res.MaxJsonLength = int.MaxValue; return(res); } catch (Exception ex) { return(Json(ResultadoJson <Home_Model> .ResultadoInCorrecto(ex.Message))); throw; } }