public async Task <ActionResult> Resumen(int ID) { EjecucionCategoriaController controladorEjecuciones = new EjecucionCategoriaController(db, userManager); NotasController controlnotas = new NotasController(db, userManager); ConfiguracionsController controlconfigutacion = new ConfiguracionsController(db, userManager); Configuracion config = await controlconfigutacion.Get(); EvaluacionsController controlEvaluacion = new EvaluacionsController(db); List <Object> respuesta = new List <object>(); List <EjecucionCategoria> listaEjecuciones = new List <EjecucionCategoria>(); var categoria = await getFromId(ID); //retoma la categoria por id desde la base de datos //if (categoria == null) { return new HttpStatusCodeResult(404, "no se encuentran categoria"); } //error generado si no se encuentra la categoria if (config.PonderacionTipo == "PonderacionAbsoluta") { PonderacionAbsoluta pond = new PonderacionAbsoluta(db, userManager); categoria.Ponderador = await pond.CategoriaPonderador(ID); } int notasAbiertas = await controlnotas.NumeroNotasEstadoCategoriaId(ID, "Abierta"); int notasCerradas = await controlnotas.NumeroNotasEstadoCategoriaId(ID, "Cerrada"); ViewBag.notasAbiertas = notasAbiertas; ViewBag.notasCerradas = notasCerradas; listaEjecuciones = await controladorEjecuciones.GetFromCategoria(categoria.id); //======================================== obtiene los semanoforos=============================== List <Evaluacion> evaluaciones = await controlEvaluacion.Get(categoria.id, "Categotia"); var semaforos = controlEvaluacion.SetEvaluacionCategoria(listaEjecuciones, evaluaciones); //======================================== obtiene los semanoforos=============================== object[] CategoriaConejecuciones = { categoria, listaEjecuciones, semaforos }; respuesta.Add(CategoriaConejecuciones); ViewBag.categorias = respuesta; //-----------------------------Campos adicionales Inicio List <CampoValor> campos = new List <CampoValor>(); var Campos = db.Campo.Where(m => m.NivelPadre.id == categoria.Nivel.id || m.TodaCategoria == true).ToList(); foreach (Campo campon in Campos) { CampoValor cp = new CampoValor(); cp.Campo = campon; cp.Valor = db.ValorCampo.Where(m => m.CampoPadre.Id == campon.Id && m.CategoriaPadre.id == categoria.id).FirstOrDefault(); campos.Add(cp); } ViewBag.campos = campos; //-----------------------------Campos adicionales Fin return(View(respuesta)); }
public async Task <ActionResult> CategoriaInfo(String numero, String id, String periodo, string alto, string ancho, string titulo, string tipo) { ConfiguracionsController controlConfiguración = new ConfiguracionsController(db, userManager); CategoriasController controlCategoria = new CategoriasController(db, userManager); IndicadorsController controlIndicador = new IndicadorsController(db, userManager); PeriodosController controlPeriodo = new PeriodosController(db, userManager); Configuracion config = await controlConfiguración.Get(); var Numero = Int32.Parse(numero); var IdCategoria = Int32.Parse(id); var IdPeriodo = Int32.Parse(periodo); Categoria categoria = await controlCategoria.getFromId(IdCategoria); //hijos var hijos = await controlCategoria.getFromCategoria(categoria.id); if (hijos.Count > 0) { ViewBag.nombreHijos = hijos[0].Nivel.nombre; ViewBag.numeroHijos = hijos.Count; } //ponderador if (config.PonderacionTipo == "PonderacionAbsoluta") { PonderacionAbsoluta pond = new PonderacionAbsoluta(db, userManager); categoria.Ponderador = await pond.CategoriaPonderador(categoria.id); //80 } //indicadores var indi = await controlIndicador.getFromCategoria(categoria.id); var indicadores = indi.Where(n => n.ponderador > 0); if (indicadores.Count() > 0) { ViewBag.numeroIndicadores = indicadores.Count(); } else { ViewBag.numeroIndicadores = await controlCategoria.NumeroIndicadores(categoria.id); //81 } //numero de indicadores en cada evaluacion del último periodo reportado if (IdPeriodo != 0) { // var LastPeriodoReport = COntrolPeriodos.UltimoPeriodoRepFromSubtotal(IdPeriodo); ViewBag.periodo = await controlPeriodo.GetFromId(IdPeriodo); var periodoSubtotal = await controlPeriodo.GetSubtotalFromPeriodo(IdPeriodo); if (periodoSubtotal > 0) { ViewBag.periodoSubtotal = await db.Periodo.FindAsync(periodoSubtotal); } } ViewBag.Numero = Numero; ViewBag.alto = alto; ViewBag.ancho = ancho; ViewBag.titulo = titulo; //ViewBag.periodo = periodo; ViewBag.tipo = tipo; return(View(categoria)); }