예제 #1
0
        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));
        }
예제 #4
0
        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());
        }