public async Task <bool> CrearFaltantes() { PeriodosController PeriodoControl = new PeriodosController(db, userManager); IndicadorsController IndicadorControl = new IndicadorsController(db, userManager); var periodos = await PeriodoControl.getAll(); var indicadores = await IndicadorControl.GetAll(); bool respuesta = false; foreach (Periodo periodo in periodos) { foreach (Indicador indicador in indicadores) { Ejecucion ejecucionxy = await GetFromIndicadorPeriodo(indicador.id, periodo.id); if (ejecucionxy == null) { Ejecucion ejecucionnew = new Ejecucion(); ejecucionnew.idindicador = indicador.id; ejecucionnew.idperiodo = periodo.id; await db.Ejecucion.AddAsync(ejecucionnew); await db.SaveChangesAsync(); respuesta = true; } } } return(respuesta); }
public async Task <List <EjecucionCategoria> > GetFromCategoriaYTotal(int id, int idPeriodo) { PeriodosController controlPeriodo = new PeriodosController(db, userManager); Periodo total = await controlPeriodo.GetFromId(idPeriodo); List <Periodo> periodos = await controlPeriodo.PeriodosFromTotal(total); List <int> ids = new List <int>(); int n = 0; foreach (Periodo perx in periodos) { ids.Add(perx.id); n++; } // obtiene las categorias string texto = String.Join(", ", ids.ToArray());; List <EjecucionCategoria> ejecuciones = new List <EjecucionCategoria>(); if (texto != null && texto != "") { ejecuciones = await db.EjecucionCategoria.Where(n => n.IdCategoria == id && ids.Contains(n.idperiodo)).ToListAsync(); } return(ejecuciones); }
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)); }
public async Task <ActionResult> Basic(string tperiodo = "", int id = 0) { var hijos = "Cumplimiento desagregado"; PeriodosController controlPeriodo = new PeriodosController(db, userManager); CategoriasController controlCategoria = new CategoriasController(db, userManager); NivelsController controlNivel = new NivelsController(db, userManager); List <Widget> Widgets = new List <Widget>(); int Periodo = 0; //obtiene el periopdo por defecto si no se define 1 if (tperiodo == "" || tperiodo == null) { var pertemp = await controlPeriodo.GetLastSubtotalEnabled(); if (pertemp == null) { return(RedirectToAction("Index", "Main")); } Periodo = pertemp.id; } else { Periodo = Int32.Parse(tperiodo); } // obtener la categoria principal si no se define 1 if (id == 0) { Categoria categoria = await controlCategoria.getMain(); if (categoria != null) { id = categoria.id; var nivel = categoria.Nivel.numero + 1; var nivelH = await controlNivel.getFromNumero(nivel); if (nivelH != null) { hijos = "Cumplimiento acumulado por " + nivelH.nombre; } } } else { Categoria categoria = await controlCategoria.getFromId(id); if (categoria != null) { var nivel = categoria.Nivel.numero + 1; var nivelH = await controlNivel.getFromNumero(nivel); if (nivelH != null) { hijos = "Cumplimiento acumulado por " + nivelH.nombre; } } } Widget widget0 = new Widget(); widget0.Ancho = "12"; widget0.Alto = "fit-content"; widget0.Name = "CategoriaRuta"; Widgets.Add(widget0); Widget widget = new Widget(); widget.Ancho = "4"; widget.Alto = "calc(45% - 37px)"; widget.Name = "CategoriaGaugaje"; widget.Titulo = "Cumplimiento anual acumulado"; Widgets.Add(widget); Widget widget2 = new Widget(); widget2.Ancho = "8"; widget2.Alto = "calc(45% - 37px)"; widget2.Name = "CategoriaTrimestral"; // widget2.Titulo = "Histórico Anual"; widget2.Tipo = "default"; Widgets.Add(widget2); Widget widget3 = new Widget(); widget3.Ancho = "4"; widget3.Alto = "55%"; widget3.Name = "CategoriaInfo"; widget3.Titulo = "Información"; Widgets.Add(widget3); Widget widget4 = new Widget(); widget4.Ancho = "8"; widget4.Alto = "55%"; //widget4.Name = "IndicadoresCategoria"; widget4.Name = "CategoriaHijosEstadoBarras"; widget4.Titulo = hijos; Widgets.Add(widget4); ViewBag.IdCategoria = id; ViewBag.Periodo = Periodo; ViewBag.Widgets = Widgets; return(View()); }