Esempio n. 1
0
        public ActionResult Create2(Actividades actividades)
        {
            var fa = db.Fases.Where(f => f.IdFase == actividades.IdFase).Include(f => f.Auditoria).SingleOrDefault();

            actividades.Fase = fa;
            ValidadorActividades val = new ValidadorActividades();
            ValidationResult     mod = val.Validate(actividades);

            if (ModelState.IsValid && mod.IsValid)
            {
                actividades.UsuarioCrea = GetUserId(User);
                actividades.FechaCrea   = DateTime.Now;
                actividades.IdEstado    = 1;
                actividades.Eliminado   = false;
                var lis     = db.Actividades.Where(a => a.IdFase == actividades.IdFase && a.Eliminado != true).ToList().AsReadOnly();
                var porcent = 0.0;
                foreach (var item in lis)
                {
                    porcent += item.Porcentaje;
                }
                if ((porcent + actividades.Porcentaje) > 100)
                {
                    ViewBag.fase        = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName;
                    Session["MyAlert"]  = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent + actividades.Porcentaje) + "%, porcentaje faltante: " + (100 - porcent) + "%.');</script>";
                    ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador").OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado);
                    return(View(actividades));
                }
                if ((porcent + actividades.Porcentaje) < 100)
                {
                    Session["MyAlert"] = "<script type='text/javascript'>alertify.warning('El Porcentaje acumulado no alcanza el 100%, sumatoria actual: " + (porcent + actividades.Porcentaje) + "%.');</script>";
                }
                db.Actividades.Add(actividades);
                db.SaveChanges();
                return(RedirectToAction("Index2", new { IdFase = actividades.IdFase }));
            }
            foreach (ValidationFailure _error in mod.Errors)
            {
                ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage);
            }
            ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador").OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado);
            ViewBag.IdEstado    = new SelectList(db.Estados, "IdEstado", "Estado", actividades.IdEstado);
            ViewBag.IdFase      = new SelectList(db.Fases, "IdFase", "Fase", actividades.IdFase);
            ViewBag.fase        = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName;
            return(View(actividades));
        }
Esempio n. 2
0
        public ActionResult Edit2(Actividades actividades)
        {
            var fa = db.Fases.Where(f => f.IdFase == actividades.IdFase).Include(f => f.Auditoria).SingleOrDefault();

            actividades.Fase = fa;
            ValidadorActividades val = new ValidadorActividades();
            ValidationResult     mod = val.Validate(actividades);

            if (ModelState.IsValid && mod.IsValid)
            {
                var lis     = db.Actividades.Where(a => a.IdFase == actividades.IdFase && a.Eliminado != true && a.IdActividad != actividades.IdActividad).ToList().AsReadOnly();
                var porcent = 0.0;
                foreach (var item in lis)
                {
                    if (item.IdActividad != actividades.IdActividad)
                    {
                        porcent += item.Porcentaje;
                    }
                }
                if ((porcent + actividades.Porcentaje) > 100)
                {
                    Session["MyAlert"]  = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent + actividades.Porcentaje) + "%.');</script>";
                    ViewBag.fase        = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName;
                    ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador" && u.Roles.Any(r => r.RoleId == "b41a5a37-b052-4099-a63c-8107fe061b78")).OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado);
                    return(View(actividades));
                }
                else
                {
                    actividades.UsuarioModifica = GetUserId(User);
                    actividades.FechaModifica   = DateTime.Now;
                    db.Entry(actividades).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index2", new { idFase = actividades.IdFase }));
                }
            }
            foreach (ValidationFailure _error in mod.Errors)
            {
                ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage);
            }
            ViewBag.fase        = fa.Auditoria.Auditoria + "/" + fa.Fase + "/" + fa.Auditoria.UsuarioRealiza.UserName;
            ViewBag.IdEncargado = new SelectList(db.Users.Where(u => u.Eliminado != true && u.Nombres != "Administrador" && u.Apellidos != "Administrador" && u.Roles.Any(r => r.RoleId == "b41a5a37-b052-4099-a63c-8107fe061b78")).OrderBy(u => u.Nombres).ThenBy(u => u.Apellidos), "Id", "NombreCompleto", actividades.IdEncargado);
            return(View(actividades));
        }