[Authorize(Roles = "Soporte, JefeDesarrollo, Lider")]//parte de seguridad, indica que solo esos roles pueden crear requerimientos
        public ActionResult Create()
        {
            var estados = GetAllStates();       //se llama la función que obtiene el listado de todos los estados que puede tener un requerimiento y el resultado se guarda en la var estados
            var req     = new requerimientos(); //se crea un nuevo requerimiento

            // Establece estos estados en el modelo.
            // Se debe hacer esto ya que solo el valor seleccionado de DropDownList se visualiza de nuevo, no toda lista de estados.
            req.estados = GetSelectListItems(estados);

            TempData.Keep();                                                                                                                   //se pide mantener los datos temporales, por títulos que dependen de ellos en las vistas
            if (TempData["proyecto"] != null && TempData["modulos"] != null)                                                                   //si no son nulos
            {
                int codigo = int.Parse(TempData["proyecto"].ToString());                                                                       //se obtiene el código de proyecto
                int idMod  = int.Parse(TempData["modulos"].ToString());                                                                        //se botiene el código de módulo

                ViewBag.cedulaEmpleadoFK = new SelectList(new empleadosController().GetEmployeeByProyectWithNA(codigo), "cedulaPK", "nombre"); //se comunica con el controlador de empleados para que solo se muestren los empleados disponibles
                ViewBag.codigoProyectoFK = new SelectList(new proyectosController().PassByCode(codigo), "codigoPK", "nombre");                 //se comunica con el controlador de proyectos, para que solo se mueste el proyecto en el que se está
                ViewBag.idModuloFK       = new SelectList(new modulosController().PassByCode(idMod), "idPK", "nombre");                        //se comunica con el controlador de módulos para que solo muestre el módulo  en el que se está
                return(View(req));                                                                                                             //se manda todo eso a la vista
            }
            else //si son nulos
            {
                return(RedirectToAction("Lista")); //se redirige a la vista del listado de requerimeintos
            }
        }
        public ActionResult Create([Bind(Include = "codigoProyectoFK,idModuloFK,idPK,descripcion,complejidad,estado,cedulaEmpleadoFK,fechaInicio,fechaFin,duracionEstimada,duracionDias,nombre")] requerimientos requerimientos)
        {
            //El bind hace que se prepare todo para mandarse a la base de datos
            // De nuevo se obtienen todos los estados
            var estados = GetAllStates();

            // Establece estos estados en el modelo.
            // Se debe hacer esto ya que solo el valor seleccionado de DropDownList se visualiza de nuevo, no toda lista de estados.
            requerimientos.estados = GetSelectListItems(estados);


            if (ModelState.IsValid)                                                                                                                                             //si todo está bien y no se viola ninguna regla
            {
                db.requerimientos.Add(requerimientos);                                                                                                                          //se "inserta" en la base de datos
                db.SaveChanges();                                                                                                                                               //se guardan los cambios
                return(RedirectToAction("Lista"));                                                                                                                              //se redirige ala vista del listado de requerimientos
            }
            TempData.Keep();                                                                                                                                                    //se solicita mantener los datos por títulos en las vistas que dependen de estos
            if (TempData["proyecto"] != null && TempData["modulos"] != null)                                                                                                    //si no son nulos
            {
                int codigo = int.Parse(TempData["proyecto"].ToString());                                                                                                        //se obtiene el código del proyecto
                int idMod  = int.Parse(TempData["modulos"].ToString());                                                                                                         //se obtiene el código del módulo

                ViewBag.cedulaEmpleadoFK = new SelectList(new empleadosController().GetEmployeeByProyectWithNA(codigo), "cedulaPK", "nombre", requerimientos.cedulaEmpleadoFK); //se seleccionan solo los empleados disponibles
                ViewBag.codigoProyectoFK = new SelectList(new proyectosController().PassByCode(codigo), "codigoPK", "nombre", requerimientos.codigoProyectoFK);                 //se selecciona solo el proyecto actual
                ViewBag.idModuloFK       = new SelectList(new modulosController().PassByCode(idMod), "idPK", "nombre", requerimientos.idModuloFK);                              //se selecciona solo el módulo actual
                return(View(requerimientos));                                                                                                                                   //se envía eso a la vista
            }
            else
            {                                      //si son nulos
                return(RedirectToAction("Lista")); //se redirige a lavista del listado de requerimientos
            }
        }
Beispiel #3
0
        public ActionResult DeleteConfirmed(int?idProyecto, int?idModulo, int?id)
        {
            requerimientos requerimientos = db.requerimientos.Find(idProyecto, idModulo, id);

            db.requerimientos.Remove(requerimientos);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #4
0
 public ActionResult Edit([Bind(Include = "codigoProyectoFK,idModuloFK,idPK,descripcion,complejidad,estado,cedulaEmpleadoFK,fechaInicio,fechaFin,duraciónEstimada,duraciónReal")] requerimientos requerimientos)
 {
     if (ModelState.IsValid)
     {
         db.Entry(requerimientos).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.codigoProyectoFK = new SelectList(db.proyectos, "codigoPK", "nombre", requerimientos.codigoProyectoFK);
     return(View(requerimientos));
 }
        public ActionResult DeleteConfirmed(int?idProyecto, int?idModulo, int?id)
        {
            requerimientos requerimientos = db.requerimientos.Find(idProyecto, idModulo, id); //se manda a buscar el requerimiento específico

            if (requerimientos.estado == "Cancelado")                                         //solo si su estado es cancelado se procede a eliminar
            {
                db.requerimientos.Remove(requerimientos);                                     //se remueve de la base de datos
                db.SaveChanges();                                                             //se guerdan los cambios
            }

            return(RedirectToAction("Lista"));//se redirige al listado de requerimientos.
        }
Beispiel #6
0
        // GET: requerimientos/Details/5
        public ActionResult Details(int?idProyecto, int?idModulo, int?id)
        {
            if (idProyecto == null || idModulo == null || id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            requerimientos requerimientos = db.requerimientos.Find(idProyecto, idModulo, id);

            if (requerimientos == null)
            {
                return(HttpNotFound());
            }
            return(View(requerimientos));
        }
        public ActionResult Delete(int?idProyecto, int?idModulo, int?id)
        {
            TempData.Keep();                                                                  //se mantienen los datos por títulos en las vistas que dependen de ellos
            if (idProyecto == null || idModulo == null || id == null)                         //si los parámetros recibidos son nulos
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));                  //página de error
            }
            requerimientos requerimientos = db.requerimientos.Find(idProyecto, idModulo, id); //se manda a buscar el requerimiento específico

            if (requerimientos == null)                                                       //si lo que devulve es nulo
            {
                return(HttpNotFound());                                                       //página de error
            }
            return(View(requerimientos));                                                     //se devulve a la vista
        }
        [Authorize(Roles = "Soporte, JefeDesarrollo, Lider, Desarrollador")] //parte de seguridad, indica que solo esos roles pueden ver detallles de un requerimiento
        public ActionResult Details(int?idProyecto, int?idModulo, int?id)
        {
            TempData.Keep();                                                                  //se solicita mantener esos datos, por ótivos de títulos que dependen de los mismos (ej: titulo de proyecto y módulo sobre el cual se está trabajando)
            if (idProyecto == null || idModulo == null || id == null)                         //si los parámetros son nulos
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));                  //se devuelve a página de error
            }
            requerimientos requerimientos = db.requerimientos.Find(idProyecto, idModulo, id); //se manda a buscar el requerimiento especificado

            if (requerimientos == null)                                                       //si lo que delvolvió es nulo
            {
                return(HttpNotFound());                                                       //página de error
            }
            return(View(requerimientos));                                                     //se manda a la vista el requerimiento
        }
Beispiel #9
0
        // GET: requerimientos/Edit/5
        public ActionResult Edit(int?idProyecto, int?idModulo, int?id)
        {
            if (idProyecto == null || idModulo == null || id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            requerimientos requerimientos = db.requerimientos.Find(idProyecto, idModulo, id);

            if (requerimientos == null)
            {
                return(HttpNotFound());
            }
            ViewBag.codigoProyectoFK = new SelectList(db.proyectos, "codigoPK", "nombre", requerimientos.codigoProyectoFK);
            ViewBag.idModuloFK       = new SelectList(db.modulos, "idPK", "nombre", requerimientos.idModuloFK);
            return(View(requerimientos));
        }
        public ActionResult Edit([Bind(Include = "codigoProyectoFK,idModuloFK,idPK,descripcion,complejidad,estado,cedulaEmpleadoFK,fechaInicio,fechaFin,duracionEstimada,duracionDias,nombre")] requerimientos requerimientos)
        {
            //El bind hace que todo se prepare para ser mandado a la base de datos
            TempData.Keep();        //se solicita mantener datos por los títulos de las vistas que dependen de ellos (ej: nombre de proyecto y módulo actual sobre los que se trabajan)
            if (ModelState.IsValid) //si todo está bien y no se viola ninguna restricción
            {
                db.Entry(requerimientos).State = EntityState.Modified;
                db.SaveChanges();                  //se guardan los cambios en la base de datos
                return(RedirectToAction("Lista")); //se redirige a la vista del listado de requerimientos
            }
            // Se obtienen de nuevo todos los estados de un requerimiento (esto se hace para el el dropdown sea editable)
            var estados = GetAllStates();

            requerimientos.estados   = GetSelectListItems(estados);                                                                                                                                  //se setean los estados en el modelo
            ViewBag.cedulaEmpleadoFK = new SelectList(new empleadosController().GetEmployeeByProyectWithNA(requerimientos.codigoProyectoFK), "cedulaPK", "nombre", requerimientos.cedulaEmpleadoFK); //solo permite que se muestren los empelados disponibles
            return(View(requerimientos));                                                                                                                                                            //se devuelve a la vista
        }
        public ActionResult Edit(int?idProyecto, int?idModulo, int?id)
        {
            //se reciben por parámetro el código de proyecto, módulo y requerimiento
            TempData.Keep();                                                                  //se solicita mantener  estos datos por los títlos de las vistas que dependen de ellos
            if (idProyecto == null || idModulo == null || id == null)                         //si alguno de los parámetros es nulo
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));                  //página de error
            }
            requerimientos requerimientos = db.requerimientos.Find(idProyecto, idModulo, id); //se manda a buscar el requerimiento específico

            if (requerimientos == null)                                                       //si es nulo
            {
                return(HttpNotFound());                                                       //página de error
            }
            var estados = GetAllStates();                                                     //se obtienen de nuevo todos los estados de un requerimiento (esto se hace para el el dropdown sea editable)
            var codigo  = idProyecto ?? default(int);

            requerimientos.estados   = GetSelectListItems(estados);                                                                        //se vuelven a setear en el módelo
            ViewBag.cedulaEmpleadoFK = new SelectList(new empleadosController().GetEmployeeByProyectWithNA(codigo), "cedulaPK", "nombre"); //hace que sólo se muestren los empelados que están disponibles
            return(View(requerimientos));                                                                                                  //se manda a la vista
        }
        public ActionResult Crear(RequerimientoViewModel model, FormCollection collection)
        {
            var Url  = "";
            var db   = new EntitiesDap();
            var obra = _obrasManager.Find(Convert.ToInt32(TempData["obra"]));

            var obranombre = _obrasManager.FindObrasPorNombre(model.Obra);

            ViewBag.Obras =
                new SelectList(_requerimientosManager.FindObras(), "nombre", "nombre");

            ViewBag.StatusRequerimiento =
                new SelectList(_requerimientosManager.FindStatus(), "descripcion", "descripcion");


            ViewBag.GerenciaResponsable = new SelectList(db.gerenciaresponsable.ToList(), "descripcion", "descripcion");
            // if (!ModelState.IsValid) return View(model);

            requerimientos re = new requerimientos();
            DateTime?      fechacumplimientoSolicitud = null;

            if (model.FechaCumplimientoSolicitud != null)
            {
                if (TempData["obra"] != null)
                {
                    re = _requerimientosManager.Crear(DateTime.Parse(model.FechaSolicitud),
                                                      DateTime.Parse(model.FechaCumplimientoSolicitud),
                                                      Convert.ToInt32(TempData["obra"]),
                                                      obra.Nombre,
                                                      model.Tipo,


                                                      model.GerenciaResponsable,
                                                      model.Tecnicos,
                                                      model.StatusRequerimientos,


                                                      model.Descripcion,
                                                      model.AccionesEjecutadas
                                                      );
                }
                else
                {
                    re = _requerimientosManager.Crear(DateTime.Parse(model.FechaSolicitud),
                                                      DateTime.Parse(model.FechaCumplimientoSolicitud),
                                                      obranombre.Id,
                                                      model.Obra,
                                                      model.Tipo,

                                                      model.GerenciaResponsable,
                                                      model.Tecnicos,
                                                      model.StatusRequerimientos,

                                                      model.Descripcion,
                                                      model.AccionesEjecutadas
                                                      );
                }
            }
            else
            {
                if (TempData["obra"] != null)
                {
                    re = _requerimientosManager.Crear(DateTime.Parse(model.FechaSolicitud),
                                                      fechacumplimientoSolicitud,
                                                      Convert.ToInt32(TempData["obra"]),
                                                      obra.Nombre,
                                                      model.Tipo,


                                                      model.GerenciaResponsable,
                                                      model.Tecnicos,
                                                      model.StatusRequerimientos,


                                                      model.Descripcion,
                                                      model.AccionesEjecutadas
                                                      );
                }
                else
                {
                    re = _requerimientosManager.Crear(DateTime.Parse(model.FechaSolicitud),
                                                      fechacumplimientoSolicitud,
                                                      obranombre.Id,
                                                      model.Obra,
                                                      model.Tipo,

                                                      model.GerenciaResponsable,
                                                      model.Tecnicos,
                                                      model.StatusRequerimientos,

                                                      model.Descripcion,
                                                      model.AccionesEjecutadas
                                                      );
                }
            }
            try
            {
                HttpPostedFileBase file;

                for (int i = 0; i < Request.Files.Count; i++)
                {
                    file = Request.Files[i];
                    var d = Request.Files.AllKeys[i].ToString();

                    if (d == "Correo" && file.FileName != "")
                    {
                        Url = CargarPdf(file);
                        _obrasManager.AgregarArchivos(re.Id, Url, "requerimientos", "correo");
                    }
                }

                TempData["FlashSuccess"] = MensajesResource.INFO_Requerimientos_CreadoCorrectamente;
                if (TempData["obra"] != null)
                {
                    return(RedirectToAction("Requerimientos", "AdministrarRequerimientos", new { @id = TempData["obra"] }));
                }
                else
                {
                    return(RedirectToAction("Index", "AdministrarRequerimientos"));
                }
            }
            catch (BusinessException businessEx)
            {
                ModelState.AddModelError(string.Empty, businessEx.Message);

                return(View(model));
            }
            catch (Exception e)
            {
                var log = CommonManager.BuildMessageLog(
                    TipoMensaje.Error,
                    ControllerContext.Controller.ValueProvider.GetValue("controller").RawValue.ToString(),
                    ControllerContext.Controller.ValueProvider.GetValue("action").RawValue.ToString(),
                    e.ToString(), Request);

                CommonManager.WriteAppLog(log, TipoMensaje.Error);

                ModelState.AddModelError(string.Empty, e.Message);
                return(View(model));
            }
        }
Beispiel #13
0
        public requerimientos Crear(DateTime fechasolicitud, DateTime?fechacumplimientosolicitud, int?obraid, string obra = null, string tipo = null,
                                    string gerenciaresponsable  = null, string tecnicos = null, string statusrequerimiento = null, string descripcion = null
                                    , string accionesejecutadas = null)
        {
            //if(obra == null)
            //   {
            //       obra = "null";
            //   }if(tipo == null)
            //   {
            //       tipo = "null";
            //   }if(fechasolicitud == null)
            //   {
            //       fechasolicitud = DateTime.Now.ToString();
            //   }
            //   if (gerenciaresponsable == null)
            //   {
            //       gerenciaresponsable = "null";
            //   }
            //   if (tecnicos == null){
            //       tecnicos = "null";
            //   }
            //   if (statusrequerimiento == null)
            //   {
            //       statusrequerimiento = "null";
            //   }
            //   if (fechacumplimientosolicitud == null) {
            //       fechacumplimientosolicitud = DateTime.Now.ToString();
            //   }
            //   if (descripcion == null)
            //   {
            //       descripcion = "null";
            //   }
            //   if (accionesejecutadas == null)
            //   {
            //       accionesejecutadas = "null";
            //   }
            try
            {
                var requerimiento = new requerimientos()
                {
                    Obra                       = obra,
                    Tipo                       = tipo,
                    FechaSolicitud             = fechasolicitud,
                    GerenciaResponsable        = gerenciaresponsable,
                    Tecnicos                   = tecnicos,
                    StatusRequerimiento        = statusrequerimiento,
                    FechaCumplimientoSolicitud = fechacumplimientosolicitud,
                    Descripcion                = descripcion,
                    AccionesEjecutadas         = accionesejecutadas,
                    obra_id                    = obraid
                };

                _db.requerimientos.Add(requerimiento);
                _db.SaveChanges();
                return(requerimiento);
            }
            catch (Exception e)
            {
                throw e;
            }
        }