Пример #1
0
        public ActionResult Edit(ObjetivoEspecifico objetivoEspecifico)
        {
            try{
                if (SesionUsuario.IdEjercicioActivoSesion == new Guid())
                {
                    Utilidades.ColocarMensaje("No se ha seleccionado un plan.");
                    return(RedirectToAction("Index", "Home"));
                }
                var planAnual =
                    _db.PlanesAnuales.Single(
                        p =>
                        p.IdEjercicio == SesionUsuario.IdEjercicioActivoSesion &&
                        p.IdEstructuraOrganizativa == SesionUsuario.Usuario.PerfilUsuario.IdEstructuraOrganizativa);
                if ((planAnual.EstadoPlanEtapa != (int)EstadoPlanEtapa.Iniciado && planAnual.EstadoPlanEtapa != (int)EstadoPlanEtapa.Correccion))
                {
                    Utilidades.ColocarMensaje("No se pueden editar objetivos mientras el plan esta " + ((EstadoPlanEtapa)planAnual.EstadoPlanEtapa) + ".");
                    return(RedirectToAction("Index"));
                }
                var poseePendientes = _observacionRepository.PoseeObservacionesPendientes(objetivoEspecifico.Id, "Objetivo", "ObjetivoEspecifico");
                if (!poseePendientes && planAnual.EstadoPlanEtapa == (int)EstadoPlanEtapa.Correccion)
                {
                    Utilidades.ColocarMensaje("No se puede editar el objetivo porque esta aprobado.");
                    return(RedirectToAction("Index"));
                }
                if (ModelState.IsValid)
                {
                    _db.ObjetivosEspecificos.Attach(objetivoEspecifico);
                    _db.ObjectStateManager.ChangeObjectState(objetivoEspecifico, EntityState.Modified);
                    _db.SaveChanges();
                    _auditorRepository.GuardarRegistroEdicion(TempData["objetivoespecificoEdit" + objetivoEspecifico.Id], objetivoEspecifico);
                    return(RedirectToAction("Index"));
                }

                ViewBag.IdPlanAnual = objetivoEspecifico.IdPlanAnual;
                return(View(objetivoEspecifico));
            }
            catch (Exception ex)
            {
                Utilidades.ColocarMensaje(ex, Request);
                return(RedirectToAction("Index"));
            }
        }
Пример #2
0
        public ActionResult Create(ObjetivoEspecifico objetivoespecifico)
        {
            try{
                if (SesionUsuario.IdEjercicioActivoSesion == new Guid())
                {
                    Utilidades.ColocarMensaje("No se ha seleccionado un plan.");
                    return(RedirectToAction("Index", "Home"));
                }
                var planAnual =
                    _db.PlanesAnuales.Single(
                        p =>
                        p.IdEjercicio == SesionUsuario.IdEjercicioActivoSesion &&
                        p.IdEstructuraOrganizativa == SesionUsuario.Usuario.PerfilUsuario.IdEstructuraOrganizativa);
                if ((planAnual.EstadoPlanEtapa != (int)EstadoPlanEtapa.Iniciado && planAnual.EstadoPlanEtapa != (int)EstadoPlanEtapa.Correccion))
                {
                    Utilidades.ColocarMensaje("No se pueden crear objetivos mientras el plan esta " + ((EstadoPlanEtapa)planAnual.EstadoPlanEtapa) + ".");
                    return(RedirectToAction("Index"));
                }
                if (ModelState.IsValid)
                {
                    objetivoespecifico.Id = Guid.NewGuid();
                    _db.ObjetivosEspecificos.AddObject(objetivoespecifico);
                    _db.SaveChanges();
                    _auditorRepository.GuardarRegistroCreacion(objetivoespecifico);
                    return(RedirectToAction("Index"));
                }

                ViewBag.IdPlanAnual = planAnual.Id;
                return(View(objetivoespecifico));
            }
            catch (Exception ex)
            {
                Utilidades.ColocarMensaje(ex, Request);
                return(RedirectToAction("Index"));
            }
        }