/*
         * EFE: Crea todas las tablas necesarias para el procedimiento de almacenamiento de plan de mejora
         * REQ: plan: plan de mejora con lo que se quiere crear
         * MOD: la base de datos si el procedimiento almacenado tiene exito
         */
        public void savePlan(PlanDeMejora plan)
        {
            // Creacion de la tabla de planDeMejora y Asociacion de plan de mejora con formulario
            List <DataTable> planYAsocPlanFormulario = this.getPlanTableYAsocPlanFormularios(plan);
            DataTable        planTable         = planYAsocPlanFormulario[0];
            DataTable        asocPlanFormTable = planYAsocPlanFormulario[1];

            // Creacion de la tabla de objetivos y Asociacion de objetivos con secciones de un formulario
            List <DataTable> objetivosYAsocObjetivosSecciones = this.getObjetivosTableYAsocObjetivosSecciones(plan);
            DataTable        objetivosTable = objetivosYAsocObjetivosSecciones[0];
            DataTable        asocObjetivosSeccionesTable = objetivosYAsocObjetivosSecciones[1];

            // Creacion de la tabla de planDeMejora y Asociacion de plan de mejora con formulario
            List <DataTable> accionesYAsocAccionesPreguntas = this.getAccionesDeMejoraTableYAsocAccionesPreguntas(plan);
            DataTable        accionesDeMejoraTable          = accionesYAsocAccionesPreguntas[0];
            DataTable        asocAccionesPreguntasTable     = accionesYAsocAccionesPreguntas[1];

            // Creacion de la tabla de planDeMejora y Asociacion de plan de mejora con formulario
            DataTable accionablesTable = this.getAccionablesTable(plan);

            // Creacion de la tabla de asociacion de plan de mejora con profesores
            DataTable asocProfesPlanTable = this.getTablaProfesPlan(plan);

            this.enviarTablasAlmacenamiento(
                planTable, "tablaPlan",
                objetivosTable, "tablaObjetivos",
                accionesDeMejoraTable, "tablaAcciones",
                accionablesTable, "tablaAccionables",
                asocPlanFormTable, "tablaAsocPlanFormularios",
                asocObjetivosSeccionesTable, "tablaAsocObjetivosSecciones",
                asocAccionesPreguntasTable, "tablaAsocAccionesPreguntas",
                asocProfesPlanTable, "tablaAsocPlanProfesores"
                );
        }
        public ViewResult Detalles(int id)
        {
            ViewBag.IdPlan = id;
            PlanDeMejora planDeMejora = db.PlanDeMejora.Find(id);

            List <AppIntegrador.Models.Persona> profesoresNombreLista = new List <Persona>();

            List <string> profesoresLista = db.ObtenerCorreosDeProfesoresDelPlan(id).ToList();

            foreach (var profe in profesoresLista)
            {
                profesoresNombreLista.Add(db.Persona.Find(profe));
            }

            ViewBag.ProfesoresNombreLista = profesoresNombreLista;

            List <AppIntegrador.Models.Formulario> formulariosNombreLista = new List <Formulario>();
            List <string> formulariosLista = db.ObtenerFormulariosAsociados(id).ToList();

            foreach (var form in formulariosLista)
            {
                formulariosNombreLista.Add(db.Formulario.Find(form));
            }

            ViewBag.Profesores  = profesoresNombreLista;
            ViewBag.Formularios = formulariosNombreLista;
            return(View("DetallesPlanDeMejora", planDeMejora));
        }
        public void TestSetCodigoEmptyDB()
        {
            // Se crea una base de datos vacia
            DataIntegradorEntities test = new DataIntegradorEntities();
            var db = new Mock <DataIntegradorEntities>();

            // Datos del plan de mejora temporal
            String   planNombre = "Plan de prueba";
            DateTime inicio     = new DateTime(2019, 12, 01);
            DateTime Fin        = new DateTime(2020, 12, 01);

            // Crando un plan de mejora temporal
            PlanDeMejora plan = new PlanDeMejora()
            {
                nombre      = planNombre,
                fechaInicio = inicio,
                fechaFin    = Fin
            };

            // controlador planes de mejora BI
            var controller = new PlanDeMejoraBI();

            // Metodo que agrega el codigo al plan de mejora
            controller.setCodigoAPlanDeMejora(test, plan);

            // Vemos que se le asigne un codigo con sentido al plan de mejora
            controller.setCodigoAPlanDeMejora(test, plan);
            Assert.IsNotNull(plan.codigo);
        }
        /**
         * EFE:
         *      Metodo que se encarga de crear una tabla con los datos de los accionables del plan de mejora
         *      Tambien crea la tabla de aociación de acciones de mejora con preguntas.
         * REQ:
         *      plan: plan de mejora que se coloca dentro de la lista
         * MOD:
         *      ----
         */
        public DataTable getAccionablesTable(PlanDeMejora plan)
        {
            DataTable dt = new DataTable();

            // Creando las columnas
            dt.Columns.Add("codigoPlan");
            dt.Columns.Add("nombreObj");
            dt.Columns.Add("descripcionAccion");
            dt.Columns.Add("descripcion");
            dt.Columns.Add("fechaInicio");
            dt.Columns.Add("fechaFin");
            dt.Columns.Add("tipo");
            dt.Columns.Add("peso");
            dt.Columns.Add("pesoPorcentaje");

            // Lista de los objetivos del plan
            ICollection <Objetivo> objetivos = plan.Objetivo;

            if (objetivos != null)
            {
                //Ahora se agregan las tuplas a la tabla correspondiente
                foreach (var obj in objetivos)
                {
                    ICollection <AccionDeMejora> acciones = obj.AccionDeMejora;
                    if (acciones != null)
                    {
                        foreach (var acc in acciones)
                        {
                            ICollection <Accionable> accionables = acc.Accionable;
                            if (accionables != null)
                            {
                                foreach (var accio in accionables)
                                {
                                    char tipoTemp = accio.tipo[0];
                                    int? pesoTemp = accio.peso;
                                    int? porTemp  = accio.pesoPorcentaje;

                                    dt.Rows.Add(
                                        plan.codigo,
                                        obj.nombre,
                                        acc.descripcion,
                                        accio.descripcion,
                                        accio.fechaInicio,
                                        accio.fechaFin,
                                        tipoTemp,
                                        pesoTemp,
                                        porTemp);
                                }
                            }
                        }
                    }
                }
            }
            return(dt);
        }
        /**
         * EFE:
         *      Metodo que se encarga de crear una tabla con los datos de las acciones de mejora del plan
         *      Tambien crea una tabla de las asociaciones de los objetivos con secciones de un formulario
         * REQ:
         *      plan: plan de mejora que se coloca dentro de la lista
         * MOD:
         *      ----
         */
        public List <DataTable> getAccionesDeMejoraTableYAsocAccionesPreguntas(PlanDeMejora plan)
        {
            DataTable dt  = new DataTable();
            DataTable dt2 = new DataTable();

            // Creando las columnas
            dt2.Columns.Add("codigoPlan");
            dt2.Columns.Add("nombreObjetivo");
            dt2.Columns.Add("descripcionAccion");
            dt2.Columns.Add("codigoPregunta");

            // Creando las columnas
            dt.Columns.Add("codigoPlan");
            dt.Columns.Add("nombreObj");
            dt.Columns.Add("descripcion");
            dt.Columns.Add("fechaInicio");
            dt.Columns.Add("fechaFin");
            dt.Columns.Add("codPlantilla");
            dt.Columns.Add("borrado");

            // Lista de los objetivos del plan
            ICollection <Objetivo> objetivos = plan.Objetivo;

            if (objetivos != null)
            {
                //Ahora se agregan las tuplas a la tabla correspondiente
                foreach (var obj in objetivos)
                {
                    ICollection <AccionDeMejora> acciones = obj.AccionDeMejora;
                    if (acciones != null)
                    {
                        foreach (var acc in acciones)
                        {
                            dt.Rows.Add(plan.codigo, acc.nombreObj, acc.descripcion, acc.fechaInicio, acc.fechaFin, null, 0);

                            // Realizando la tupla de la asociacion
                            ICollection <Pregunta> preguntas = acc.Pregunta;
                            if (preguntas != null)
                            {
                                foreach (var preg in preguntas)
                                {
                                    dt2.Rows.Add(plan.codigo, obj.nombre, acc.descripcion, preg.Codigo);
                                }
                            }
                        }
                    }
                }
            }

            List <DataTable> lista = new List <DataTable>();

            lista.Add(dt);
            lista.Add(dt2);
            return(lista);
        }
        public void DetallesTest()
        {
            var          controller = new PlanDeMejoraController();
            var          result     = controller.Detalles(1);
            PlanDeMejora retornado  = (PlanDeMejora)result.ViewData.Model;

            Assert.AreEqual("DetallesPlanDeMejora", result.ViewName);
            Assert.IsInstanceOfType(result.ViewData.Model, typeof(PlanDeMejora));
            Assert.AreEqual(1, retornado.codigo);
            Assert.AreEqual("Plan prueba para la profesora Alexandra", retornado.nombre);
            controller.Dispose();
        }
示例#7
0
        //Agregado por: Johan Córdoba
        //Historia a la que pertenece: MOS-25 "como usuario quiero tener una interfaz que muestre de forma clara las jerarquías entre las distintas partes del subsistema de creación de planes de mejora"
        //permite editar los datos de un plan de mejora
        //retorna la vista de editar para que puedan ser añadidos los objetivos, acciones y acionables al mismo
        public ActionResult EditarPlanDeMejora(int id)
        {
            if (!permissionManager.IsAuthorized(Permission.EDITAR_PLANES_MEJORA))
            {
                TempData["alertmessage"] = "No tiene permisos para acceder a esta página.";
                return(RedirectToAction("../Home/Index"));
            }
            ViewBag.IdPlan = id;
            PlanDeMejora planDeMejora = db.PlanDeMejora.Find(id);

            ViewBag.Editar = true;
            return(View("EditarPlanDeMejora2", planDeMejora));
        }
        /*
         * EFE: hace la busqueda de los profesores y los agrega al plan
         * REQ:
         *      plan: al que se le asignan los formularios
         *      listaProfesores: lista de los codigos de los formularios
         * MOD:
         *      plan
         */
        public void insertProfesores(PlanDeMejora plan, List <string> correoProfesores, DataIntegradorEntities db)
        {
            List <Profesor> result = new List <Profesor>();

            if (correoProfesores != null)
            {
                foreach (var correo in correoProfesores)
                {
                    Profesor profe = db.Profesor.Find(correo);
                    result.Add(profe);
                }
            }
            plan.Profesor = result;
        }
        /*
         * EFE: hace la busqueda de los formularios
         * REQ:
         *      plan: al que se le asignan los formularios
         *      listaFormularios: lista de los codigos de los formularios
         * MOD:
         *      plan
         */
        public void insertFormularios(PlanDeMejora plan, List <string> codFormularios, DataIntegradorEntities db)
        {
            List <Formulario> result = new List <Formulario>();

            if (codFormularios != null)
            {
                foreach (var codigo in codFormularios)
                {
                    Formulario formulario = db.Formulario.Find(codigo);
                    result.Add(formulario);
                }
            }
            plan.Formulario = result;
        }
        // Method that deletes one "PlanDeMejora"
        public ActionResult BorrarPlan(int codigoPlan)
        {
            if (!permissionManager.IsAuthorized(Permission.BORRAR_PLANES_MEJORA))
            {
                TempData["alertmessage"] = "No tiene permisos para acceder a esta página.";
                return(RedirectToAction("../Home/Index"));
            }
            PlanDeMejora planDeMejora = db.PlanDeMejora.Find(codigoPlan);

            //db.PlanDeMejora.Remove(planDeMejora);
            db.BorrarPlan(codigoPlan);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        //Modificado por: Christian Asch
        //Historia a la que pertenece: MOS-1.4.2 "Como usuario administrativo quiero que se notifique a los involucrados sobre el inicio de un plan, objetivo o acción de mejora para que los involucrados puedan estar informados"
        //Envía un correo cada profesor que está asignado al plan avisándole que ha sido asignado.
        private void EnviarCorreoSobreCreacionPlan(PlanDeMejora plan, List <string> correos)
        {
            Utilities.EmailNotification emailNotification = new Utilities.EmailNotification();

            string asunto = "Creación de un nuevo plan de mejora";

            string texto = "Usted ha sido involucrado en el plan de mejora llamado: " + plan.nombre + "<br>Con código: " + plan.codigo;

            texto += "<br>Este plan iniciará el " + plan.fechaInicio.ToString();
            texto += "<br>Favor no responder directamente a este correo";
            string textoAlt = "<body><p>" + texto + "</p></body>";


            _ = emailNotification.SendNotification(correos, asunto, texto, textoAlt);
        }
        /**
         * EFE:
         *      Metodo que se encarga de crear una tabla con los datos del objetivo que ingresamos
         *      Tambien crea una tabla de las asociaciones entre el plan y los formularios
         * REQ:
         *      plan: plan de mejora que se coloca dentro de la lista
         * MOD:
         *      ----
         */
        public List <DataTable> getObjetivosTableYAsocObjetivosSecciones(PlanDeMejora plan)
        {
            DataTable dt  = new DataTable();
            DataTable dt2 = new DataTable();

            //Crando las columnas
            dt2.Columns.Add("codigoPlan");
            dt2.Columns.Add("nombreObjetivo");
            dt2.Columns.Add("codigoSeccion");

            // Creando las columnas
            dt.Columns.Add("codigoPlan");
            dt.Columns.Add("nombre");
            dt.Columns.Add("descripcion");
            dt.Columns.Add("fechaInicio");
            dt.Columns.Add("fechaFin");
            dt.Columns.Add("nombreTipoObj");
            dt.Columns.Add("codPlantilla");
            dt.Columns.Add("borrado");

            // Lista de los objetivos del plan
            ICollection <Objetivo> objetivos = plan.Objetivo;

            if (objetivos != null)
            {
                //Ahora se agregan las tuplas a la tabla correspondiente
                foreach (var obj in objetivos)
                {
                    dt.Rows.Add(plan.codigo, obj.nombre, obj.descripcion, obj.fechaInicio, obj.fechaFin, obj.nombTipoObj, null, 0);

                    // Realizando la tupla de la asociacion
                    ICollection <Seccion> secciones = obj.Seccion;
                    if (secciones != null)
                    {
                        foreach (var sec in secciones)
                        {
                            dt2.Rows.Add(plan.codigo, obj.nombre, sec.Codigo);
                        }
                    }
                }
            }

            List <DataTable> lista = new List <DataTable>();

            lista.Add(dt);
            lista.Add(dt2);
            return(lista);
        }
示例#13
0
        public void CrearPlanDeMejoraIntegrationTest()
        {
            String   planNombre = "Plan de prueba de integración";
            DateTime inicio     = new DateTime(2019, 12, 01);
            DateTime Fin        = new DateTime(2020, 12, 01);

            PlanDeMejora plan = new PlanDeMejora()
            {
                nombre = planNombre, fechaInicio = inicio, fechaFin = Fin
            };

            var controller = new PlanDeMejoraController();
            var result     = controller.Crear(plan);

            Assert.IsNotNull(result);
        }
示例#14
0
 public ActionResult EditarPlanDeMejora2([Bind(Include = "codigo,nombre,fechaInicio,fechaFin")] PlanDeMejora planDeMejora)
 {
     if (!permissionManager.IsAuthorized(Permission.EDITAR_PLANES_MEJORA))
     {
         TempData["alertmessage"] = "No tiene permisos para acceder a esta página.";
         return(RedirectToAction("../Home/Index"));
     }
     if (ModelState.IsValid)
     {
         db.Entry(planDeMejora).State = EntityState.Modified;
         db.SaveChanges();
     }
     ViewBag.profesores = new SelectList(db.Profesor, "correo", "correo");
     ViewBag.IdPlan     = planDeMejora.codigo;
     return(View("EditarPlanDeMejora2", planDeMejora));
 }
        public void insertFormulariosTestSinForms()
        {
            PlanDeMejora           plan           = new PlanDeMejora();
            List <string>          codFormularios = new List <string>();
            DataIntegradorEntities db             = new DataIntegradorEntities();

            //Seteo de valor nulo
            plan.Formulario = null;

            var controller = new PlanDeMejoraBI();

            controller.insertFormularios(plan, codFormularios, db);

            Boolean result = plan.Formulario.Count > 0 ? true : false;

            Assert.IsFalse(result);
        }
        /*
         *  EFE:
         *      Le asigna al plan de mejora un código diferente, siento este 1000 para el primer plan
         *      y en caso contrario va asignando con un aumento de 1 al código del plan anterior
         *  REQ:
         *      db: instancia de la conexión de la base de datos
         *      plan: instancia del nuevo plan de mejora que se quiere realizar
         *  MOD:
         *      El plan que se le envía como parametro
         */
        public void setCodigoAPlanDeMejora(DataIntegradorEntities db, PlanDeMejora plan)
        {
            // Primero analizamos tomamos la totalidad de los planes de mejora
            var totalPlanes  = db.PlanDeMejora.ToList();
            var ultimoCodigo = -1;

            if (totalPlanes != null)
            {
                foreach (var item in totalPlanes)
                {
                    ultimoCodigo = item.codigo;
                }
            }
            plan.codigo = ultimoCodigo + 1;

            // Este metodo tambien deja el borrado en 0 ya que es un plan que se esta creando
            plan.borrado = false;
        }
        public ActionResult Crear([Bind(Include = "nombre,fechaInicio,fechaFin")] PlanDeMejora plan, List <String> ProfeSeleccionado = null, List <String> FormularioSeleccionado = null, List <Objetivo> Objetivo = null, Dictionary <String, String> SeccionConObjetivo = null, Dictionary <String, String> PreguntaConAccion = null)
        {
            if (!permissionManager.IsAuthorized(Permission.CREAR_PLANES_MEJORA))
            {
                TempData["alertmessage"] = "No tiene permisos para acceder a esta página.";
                return(RedirectToAction("../Home/Index"));
            }
            // Objeto de ayuda business intelligence planes de mejora
            PlanDeMejoraBI planesHelper = new PlanDeMejoraBI();

            // Asignacion del codigo al nuevo plan de mejora
            planesHelper.setCodigoAPlanDeMejora(this.db, plan);

            //Agregando los objetivos al plan
            plan.Objetivo = Objetivo;

            //Agregando las secciones a los objetivos
            planesHelper.insertSeccionesEnObjetivos(plan.Objetivo, SeccionConObjetivo, db);

            //Agregando las preguntas a las acciones
            planesHelper.insertPreguntasEnAcciones(plan.Objetivo, PreguntaConAccion, db);

            //Agrgando los formularios al plan de mejora
            planesHelper.insertFormularios(plan, FormularioSeleccionado, db);

            //Agregando los profesores seleccionados al plan de mejora
            planesHelper.insertProfesores(plan, ProfeSeleccionado, db);

            // Almacenamiento del plan por medio de un procedimiento almacenado
            planesHelper.savePlan(plan);
            db.SaveChanges();

            PlanDeMejora planTemporal = db.PlanDeMejora.Find(plan.codigo);

            if (planTemporal != null && ProfeSeleccionado != null)
            {
                if (ProfeSeleccionado.Count > 0)
                {
                    this.EnviarCorreoSobreCreacionPlan(planTemporal, ProfeSeleccionado);
                }
            }

            return(Json(new { success = true, responseText = "Your message successfuly sent!" }, JsonRequestBehavior.AllowGet));
        }
示例#18
0
        public void TestDetallesIntegracion()
        {
            //Arrange
            var mockDb = new Mock <DataIntegradorEntities>();
            int codigo = 1;

            PlanDeMejora plan = new PlanDeMejora()
            {
                codigo = 1, nombre = "planUno"
            };

            mockDb.Setup(m => m.PlanDeMejora.Find(codigo)).Returns(plan);

            PlanDeMejoraController controller = new PlanDeMejoraController(mockDb.Object);
            // Act
            ViewResult result = controller.Detalles(codigo) as ViewResult;

            // Assert
            Assert.AreEqual(result.Model, plan);
        }
        /*
         *  EFE: Se encarga de crear la tabla de asociacion de profesores con el plan de mejora
         *  REQ: plan, instancia de plan de mejora con los profesores asignados dentro del mismo
         *  MOD: ---
         */
        public DataTable getTablaProfesPlan(PlanDeMejora plan)
        {
            DataTable dt = new DataTable();

            // Creando las columnas
            dt.Columns.Add("codigoPlan");
            dt.Columns.Add("correoProfe");

            var listaProfes = plan.Profesor;

            if (listaProfes != null)
            {
                foreach (var prof in listaProfes)
                {
                    dt.Rows.Add(plan.codigo, prof.Correo);
                }
            }

            return(dt);
        }
示例#20
0
        public void CrearPlanDeMejoraDataMockTest()
        {
            DataIntegradorEntities test = new DataIntegradorEntities();
            var      db         = new Mock <DataIntegradorEntities>();
            String   planNombre = "Plan de prueba";
            DateTime inicio     = new DateTime(2019, 12, 01);
            DateTime Fin        = new DateTime(2020, 12, 01);

            PlanDeMejora plan = new PlanDeMejora()
            {
                nombre = planNombre, fechaInicio = inicio, fechaFin = Fin
            };

            db.Setup(m => m.PlanDeMejora.Add(plan));
            db.Setup(m => m.SaveChanges());
            var controller = new PlanDeMejoraController(db.Object);
            var result     = controller.Crear(plan);

            Assert.IsNotNull(result);
            controller.Dispose();
        }
        /*
         *  Modificado por: Johan Córdoba, Christian Asch
         *  Historia a la que pertenece: MOS-1.2 "agregar, modificar, borrar y consultar los objetivos de un plan de mejora"
         *  Para no tener que crear la vista parcial dento de la carpeta de planes de mejora cambié el controlador.
         *  Ahora este redirige a la vista de objetivos y la que está en planes de mejora "_objetivosPlan" ya no es necesaria
         */
        public ActionResult Crear(PlanDeMejora plan = null)
        {
            if (!permissionManager.IsAuthorized(Permission.CREAR_PLANES_MEJORA))
            {
                TempData["alertmessage"] = "No tiene permisos para acceder a esta página.";
                return(RedirectToAction("../Home/Index"));
            }
            if (plan == null)
            {
                plan = new PlanDeMejora();
            }
            List <String> ProfesoresNombreLista = new List <String>();
            List <String> tiposDeObjetivo       = new List <String>();

            foreach (var tipo in db.TipoObjetivo)
            {
                tiposDeObjetivo.Add(tipo.nombre);
            }

            ViewBag.ProfesoresLista = db.Profesor.ToList();
            String          name = "NombreCompleto";
            ObjectParameter name_op;

            foreach (var profe in ViewBag.ProfesoresLista)
            {
                name_op = new ObjectParameter(name, "");
                db.GetTeacherName(profe.Correo, name_op);
                ProfesoresNombreLista.Add(name_op.Value.ToString());
            }
            ViewBag.ProfesoresNombreLista = ProfesoresNombreLista;
            ViewBag.FormulariosLista      = db.Formulario.ToList();
            ViewBag.tiposDeObjetivo       = tiposDeObjetivo.Select(x =>
                                                                   new SelectListItem()
            {
                Text = x
            });
            ;
            return(View("Crear", plan));
        }
        public void insertFormulariosTestConForms()
        {
            PlanDeMejora           plan           = new PlanDeMejora();
            List <string>          codFormularios = new List <string>();
            DataIntegradorEntities db             = new DataIntegradorEntities();

            //Agregnado elementos
            for (int var = 0; var < 5; var++)
            {
                codFormularios.Add(var + "");
            }

            //Seteo de valor nulo
            plan.Formulario = null;

            var controller = new PlanDeMejoraBI();

            controller.insertFormularios(plan, codFormularios, db);

            Boolean result = plan.Formulario.Count > 0 ? true : false;

            Assert.IsTrue(result);
        }
        /**
         * EFE:
         *      Metodo que se encarga de crear una tabla con los datos del plan de mejora que ingresamos
         *      Tambien crea la tabla de relacion de plan de mejora con formulario
         * REQ:
         *      plan: plan de mejora que se coloca dentro de la lista
         * MOD:
         *      ----
         */
        public List <DataTable> getPlanTableYAsocPlanFormularios(PlanDeMejora plan)
        {
            DataTable dt  = new DataTable();
            DataTable dt2 = new DataTable();

            // Creando las columnas
            dt2.Columns.Add("codigoPlan");
            dt2.Columns.Add("codigoForm");

            // Agregando las filas
            IEnumerable <Formulario> formularios = plan.Formulario;

            if (formularios != null)
            {
                foreach (var form in formularios)
                {
                    dt2.Rows.Add(plan.codigo, form.Codigo);
                }
            }

            // Creando las columnas
            dt.Columns.Add("codigo");
            dt.Columns.Add("nombre");
            dt.Columns.Add("fechaInicio");
            dt.Columns.Add("fechaFin");
            dt.Columns.Add("borrado");

            //Agregando las filas
            dt.Rows.Add(plan.codigo, plan.nombre, plan.fechaInicio, plan.fechaFin, plan.borrado);

            List <DataTable> lista = new List <DataTable>();

            lista.Add(dt);
            lista.Add(dt2);
            return(lista);
        }