Пример #1
0
        public ActionResult Create(Fases fases)
        {
            var aud = db.Auditorias.Where(a => a.IdAuditoria == fases.IdAuditoria).Include(a => a.Fases).SingleOrDefault();

            fases.Auditoria = aud;
            ValidatorDate    val = new ValidatorDate();
            ValidationResult mod = val.Validate(fases);

            if (ModelState.IsValid && mod.IsValid)
            {
                fases.FechaCrea     = DateTime.Now;
                fases.FechaModifica = fases.FechaCrea;
                fases.UsuarioCrea   = GetUserId(User);
                fases.IdEstado      = 1;
                fases.Eliminado     = false;
                fases.Porcentaje    = fases.Porcentaje / 100;
                var porcent = 0.0;
                foreach (var item in aud.Fases.Where(f => f.Eliminado != true))
                {
                    porcent += item.Porcentaje;
                }
                porcent += fases.Porcentaje;
                if (porcent <= 1.0)
                {
                    db.Fases.Add(fases);
                    db.SaveChanges();
                    if (porcent != 1.00)
                    {
                        Session["MyAlert"] = "<script type='text/javascript'>alertify.warning('El Porcentaje acumulado no alcanza el 100%, sumatoria actual: " + (porcent * 100) + "%.');</script>";
                    }
                    return(RedirectToAction("Index", new { idAuditoria = aud.IdAuditoria, nombreAuditoria = aud.Auditoria }));
                }
                else
                {
                    Session["MyAlert"] = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + "%, porcentaje faltante: " + Math.Round((100 - ((porcent - fases.Porcentaje) * 100)), 2) + "%.');</script>";
                    //ModelState.AddModelError("", "La sumatoria de porcentajes sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + " % ");
                    ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
                    ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
                    ViewBag.idAuditoriaRet  = aud.IdAuditoria;
                    ViewBag.nombreAuditoria = aud.Auditoria;
                    ViewBag.navegabilidad   = aud.Auditoria + "/ " + aud.UsuarioRealiza.UserName;
                    fases.Porcentaje        = fases.Porcentaje * 100;
                    return(View(fases));
                }
            }
            foreach (ValidationFailure _error in mod.Errors)
            {
                ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage);
            }
            ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
            ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
            ViewBag.idAuditoriaRet  = aud.IdAuditoria;
            ViewBag.nombreAuditoria = aud.Auditoria;
            ViewBag.navegabilidad   = aud.Auditoria + "/ " + aud.UsuarioRealiza.UserName;
            //fases.Porcentaje = fases.Porcentaje * 100;
            return(View(fases));
        }
Пример #2
0
        public ActionResult Edit(Fases fases)
        {
            var audaux = db.Auditorias.Where(a => a.IdAuditoria == fases.IdAuditoria).SingleOrDefault();

            fases.Auditoria = audaux;
            ValidatorDate    val = new ValidatorDate();
            ValidationResult mod = val.Validate(fases);

            if (ModelState.IsValid && mod.IsValid)
            {
                fases.Porcentaje = fases.Porcentaje / 100;
                var porcent  = 0.0;
                var fasesAux = db.Fases.Where(f => f.Eliminado != true && f.IdAuditoria == fases.IdAuditoria && f.IdFase != fases.IdFase).ToList().AsReadOnly();
                foreach (var item in fasesAux)
                {
                    if (item.IdFase != fases.IdFase)
                    {
                        porcent += item.Porcentaje;
                    }
                }
                porcent += fases.Porcentaje;
                if (porcent <= 1.0)
                {
                    db.Entry(fases).State = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index", new { idAuditoria = fases.IdAuditoria, nombreAuditoria = audaux.Auditoria }));
                }
                //ModelState.AddModelError("", "La sumatoria de porcentajes sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + "%");
                Session["MyAlert"]      = "<script type='text/javascript'>alertify.error('El Porcentaje acumulado sobrepasa el 100%, sumatoria actual: " + (porcent * 100) + "%.');</script>";
                fases.Porcentaje        = fases.Porcentaje * 100;
                ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
                ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
                ViewBag.idAuditoriaRet  = fases.IdAuditoria;
                ViewBag.nombreAuditoria = audaux.Auditoria;
                ViewBag.navegabilidad   = audaux.Auditoria + "/ " + audaux.UsuarioRealiza.UserName;
                return(View(fases));
            }
            foreach (ValidationFailure _error in mod.Errors)
            {
                ModelState.AddModelError(_error.PropertyName, _error.ErrorMessage);
            }
            ViewBag.IdAuditoria     = new SelectList(db.Auditorias, "IdAuditoria", "Auditoria", fases.IdAuditoria);
            ViewBag.IdEstado        = new SelectList(db.Estados, "IdEstado", "Estado", fases.IdEstado);
            ViewBag.idAuditoriaRet  = fases.IdAuditoria;
            ViewBag.nombreAuditoria = audaux.Auditoria;
            ViewBag.navegabilidad   = audaux.Auditoria + "/ " + audaux.UsuarioRealiza.UserName;
            return(View(fases));
        }