public ActionResult Resumen() { var kpi = from k in db.kpisinventariosaplontime select new { k.id, dia = k.DiasOracle, mes = k.Mes }; var listakpis = new List <kpisinventariosaplontime>(); foreach (var item in kpi) { kpisinventariosaplontime kpis = new kpisinventariosaplontime(); kpis.id = item.id; kpis.Mes = item.mes; kpis.DiasOracle = item.dia; listakpis.Add(kpis); } var kpisAgrupados = from k in listakpis group k by k.Mes into g select new GourpMeses <string, kpisinventariosaplontime> { Key = g.Key, Values = g, TotalRecords = g.Count(x => x.DiasOracle > 0), TotalOks = g.Count(x => x.DiasOracle <= 7 && x.DiasOracle > 0), TotalDesv = g.Count(x => x.DiasOracle > 7) }; List <kpisinventariosaplontime> lista = new List <kpisinventariosaplontime>(); foreach (var item in kpisAgrupados) { kpisinventariosaplontime kpisplaneacion = new kpisinventariosaplontime(); kpisplaneacion.Mes = item.Key; kpisplaneacion.Total = (int)item.TotalRecords; kpisplaneacion.TotalOks = (int)item.TotalOks; kpisplaneacion.TotalDesv = (int)item.TotalDesv; if (item.TotalOks > 0) { var porcentajeOk = ((int)item.TotalOks / (decimal)(int)item.TotalRecords) * 100; var porcentajeDesvRounded = Math.Round(porcentajeOk, 2); kpisplaneacion.procentaje = porcentajeDesvRounded; } else { kpisplaneacion.procentaje = 0; } lista.Add(kpisplaneacion); } Totales(); return(PartialView(lista.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(); int PageSize = Length != null?Convert.ToInt32(Length) : 0; int Skip = Start != null?Convert.ToInt32(Start) : 0; int TotalRecords = 0; try { List <kpisinventariosaplontime> listaKPIS = new List <kpisinventariosaplontime>(); using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString())) { con.Open(); string sql = "exec [dbo].[SP_KPISINVENTARIOSAPLONTIME_PARAMETROSOPCIONALES] @mes"; var query = new SqlCommand(sql, con); if (Mes != "") { query.Parameters.AddWithValue("@mes", Mes); } else { query.Parameters.AddWithValue("@mes", DBNull.Value); } using (var dr = query.ExecuteReader()) { while (dr.Read()) { // facturas var kpis = new kpisinventariosaplontime(); kpis.id = Convert.ToInt32(dr["id"]); kpis.Mes = dr["Mes"].ToString(); kpis.FechaReciboFisico = Convert.ToDateTime(dr["FechaReciboFisico"]); kpis.FechaTerminoValidacion = Convert.ToDateTime(dr["FechaTerminoValidacion"]); kpis.DiasValidacion = Convert.ToInt32(dr["DiasValidacion"]); kpis.FechaCreacionOracle = Convert.ToDateTime(dr["FechaCreacionOracle"]); kpis.FechaReciboOracle = Convert.ToDateTime(dr["FechaReciboOracle"]); kpis.DiasOracle = Convert.ToInt32(dr["DiasOracle"]); kpis.FolioFacturacion = dr["FolioFacturacion"].ToString(); kpis.Observaciones = dr["Observaciones"].ToString(); kpis.CV = dr["CV"].ToString(); kpis.Number = dr["Number"].ToString(); kpis.ordernumber = dr["ordernumber"].ToString(); kpis.piezassistema = Convert.ToInt32(dr["piezassistema"]); kpis.piezasfisico = Convert.ToInt32(dr["piezasfisico"]); kpis.palletsrecibidos = Convert.ToInt32(dr["palletsrecibidos"]); kpis.montofacturado = Convert.ToInt32(dr["montofacturado"]); kpis.ingresado = dr["ingresado"].ToString(); 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")); } }