public ActionResult Resumen() { var query = db.kpisinventariosexactitud.ToList().OrderBy(x => x.id).GroupBy(x => new { x.mes }) .Select(y => new kpisinventariosexactitud() { mes = y.Key.mes, absoluto = y.Sum(x => x.absoluto), valorinventario = y.Sum(x => x.valorinventario) }); List <kpisinventariosexactitud> lista2 = new List <kpisinventariosexactitud>(); foreach (var item in query) { kpisinventariosexactitud kpis = new kpisinventariosexactitud(); kpis.mes = item.mes; kpis.absoluto = item.absoluto; kpis.valorinventario = item.valorinventario; decimal?value = kpis.absoluto; kpis.absolutoString = String.Format("{0:C}", value); decimal?value2 = kpis.valorinventario; kpis.valorString = String.Format("{0:C}", value2); if (item.valorinventario > 0) { var resultado = ((decimal)item.valorinventario - (decimal)(int)item.absoluto) / (decimal)(int)item.valorinventario; var porcentajeRounded = resultado * 100; double p = Convert.ToDouble(porcentajeRounded); kpis.Porcentaje = String.Format("{0:0.0000}", p); } else { kpis.Porcentaje = "0"; } Totales(); lista2.Add(kpis); } return(PartialView(lista2.ToList())); }
public ActionResult ListaKpis() { var Draw = Request.Form.GetValues("draw").FirstOrDefault(); var Start = Request.Form.GetValues("start").FirstOrDefault(); var Length = Request.Form.GetValues("length").FirstOrDefault(); var SortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][data]").FirstOrDefault(); var SortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault(); var Mes = Request.Form.GetValues("columns[1][search][value]").FirstOrDefault(); var Area = Request.Form.GetValues("columns[2][search][value]").FirstOrDefault(); int PageSize = Length != null?Convert.ToInt32(Length) : 0; int Skip = Start != null?Convert.ToInt32(Start) : 0; int TotalRecords = 0; try { List <kpisinventariosexactitud> listaKPIS = new List <kpisinventariosexactitud>(); using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString())) { con.Open(); string sql = "exec [dbo].[SP_KPISINVENTARIOSEXACTITUD_PARAMETROSOPCIONALES] @mes, @area"; var query = new SqlCommand(sql, con); if (Mes != "") { query.Parameters.AddWithValue("@mes", Mes); } else { query.Parameters.AddWithValue("@mes", DBNull.Value); } if (Area != "") { query.Parameters.AddWithValue("@area", Area); } else { query.Parameters.AddWithValue("@area", DBNull.Value); } using (var dr = query.ExecuteReader()) { while (dr.Read()) { // facturas var kpis = new kpisinventariosexactitud(); kpis.id = Convert.ToInt32(dr["id"]); kpis.mes = dr["mes"].ToString(); kpis.subinventario = dr["subinventario"].ToString(); kpis.absoluto = Convert.ToDecimal(dr["absoluto"]); kpis.valorinventario = Convert.ToDecimal(dr["valorinventario"]); listaKPIS.Add(kpis); } } } if (!(string.IsNullOrEmpty(SortColumn) && string.IsNullOrEmpty(SortColumnDir))) { listaKPIS = listaKPIS.OrderBy(SortColumn + " " + SortColumnDir).ToList(); } TotalRecords = listaKPIS.ToList().Count(); var NewItems = listaKPIS.Skip(Skip).Take(PageSize == -1 ? TotalRecords : PageSize).ToList(); return(Json(new { draw = Draw, recordsFiltered = TotalRecords, recordsTotal = TotalRecords, data = NewItems }, JsonRequestBehavior.AllowGet)); } catch (Exception _ex) { Console.WriteLine(_ex.Message.ToString()); ViewBag.Error = "Ha ocurrido un error. Contacte al administrador del sistema"; return(RedirectToAction("Error500", "Errores")); } }