public ActionResult Eliminar(int?id)
        {
            if (!LoginController.validaUsuario(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (!LoginController.validaRol(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }

            int tabla = (int)Session["Currentabla"];

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            switch (tabla)
            {
            case 1:
                CategoriaMat cat = new CategoriaMat();
                cat         = db.CategoriaMat.Find(id);
                cat.Usuario = Session["UsuarioActual"].ToString();
                if (cat == null)
                {
                    return(HttpNotFound());
                }
                db.Entry(cat).Entity.Estado = 0;
                db.SaveChanges();
                break;

            case 2:
                ColorMat color = new ColorMat();
                color         = db.ColorMat.Find(id);
                color.Usuario = Session["UsuarioActual"].ToString();
                if (color == null)
                {
                    return(HttpNotFound());
                }
                db.Entry(color).Entity.Estado = 0;
                db.SaveChanges();
                break;

            case 3:
                TipoProducto tipo = new TipoProducto();
                tipo         = db.TipoProducto.Find(id);
                tipo.Usuario = Session["UsuarioActual"].ToString();
                if (tipo == null)
                {
                    return(HttpNotFound());
                }
                db.Entry(tipo).Entity.Estado = 0;
                db.SaveChanges();
                break;

            case 4:
                Rol rolp = new Rol();
                rolp         = db.Rol.Find(id);
                rolp.Usuario = Session["UsuarioActual"].ToString();
                if (rolp == null)
                {
                    return(HttpNotFound());
                }
                db.Entry(rolp).Entity.Estado = 0;
                db.SaveChanges();
                break;

            case 5:
                SubCategoria sub = new SubCategoria();
                sub         = db.SubCategoria.Find(id);
                sub.Usuario = Session["UsuarioActual"].ToString();
                if (sub == null)
                {
                    return(HttpNotFound());
                }
                db.Entry(sub).Entity.Estado = 0;
                db.SaveChanges();
                break;

            case 6:
                Valor val = new Valor();
                val         = db.Valor.Find(id);
                val.Usuario = Session["UsuarioActual"].ToString();
                if (val == null)
                {
                    return(HttpNotFound());
                }
                db.Entry(val).Entity.Estado = 0;
                db.SaveChanges();
                break;
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult Editar(int?id)
        {
            if (!LoginController.validaUsuario(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (!LoginController.validaRol(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (id == null || Session["Currentabla"] == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            int tabla = (int)Session["Currentabla"];

            ViewBag.CatMaterial = new SelectList((from s in db.CategoriaMat
                                                  where s.Estado == 1
                                                  select new
            {
                s.IdCategoria,
                s.Nombre
            }
                                                  ), "IdCategoria", "Nombre");
            Parametro para = new Parametro();

            switch (tabla)
            {
            case 1:
                CategoriaMat cat = new CategoriaMat();
                cat = db.CategoriaMat.Find(id);
                if (cat == null)
                {
                    return(HttpNotFound());
                }
                para.parametro = 1;
                para.Id        = cat.IdCategoria;
                para.Nombre    = cat.Nombre.Trim();
                para.Usuario   = cat.Usuario.Trim();
                para.Estado    = cat.Estado.ToString();

                break;

            case 2:
                ColorMat color = new ColorMat();
                color = db.ColorMat.Find(id);
                if (color == null)
                {
                    return(HttpNotFound());
                }
                para.parametro   = 2;
                para.Id          = color.IdColor;
                para.Nombre      = color.Nombre.Trim();
                para.CategoriaId = color.IdCatMaterial;
                para.Usuario     = color.Usuario.Trim();
                para.Estado      = color.Estado.ToString();
                break;

            case 3:
                TipoProducto tipo = new TipoProducto();
                tipo = db.TipoProducto.Find(id);
                if (tipo == null)
                {
                    return(HttpNotFound());
                }
                para.parametro = 3;
                para.Id        = tipo.IdTipoProducto;
                para.Nombre    = tipo.Nombre.Trim();
                para.Usuario   = tipo.Usuario.Trim();
                para.Estado    = tipo.Estado.ToString();
                break;

            case 4:
                Rol rolp = new Rol();
                rolp = db.Rol.Find(id);
                if (rolp == null)
                {
                    return(HttpNotFound());
                }
                para.parametro = 4;
                para.Id        = rolp.IdRol;
                para.Nombre    = rolp.Nombre.Trim();
                para.Usuario   = rolp.Usuario.Trim();
                para.Estado    = rolp.Estado.ToString();
                break;

            case 5:
                SubCategoria sub = new SubCategoria();
                sub = db.SubCategoria.Find(id);
                if (sub == null)
                {
                    return(HttpNotFound());
                }
                para.parametro   = 5;
                para.Id          = sub.IdSubCatMat;
                para.CategoriaId = sub.IdCatMat;
                para.Nombre      = sub.Nombre.Trim();
                para.Usuario     = sub.Usuario.Trim();
                para.Estado      = sub.Estado.ToString();
                break;

            case 6:
                Valor val = new Valor();
                val = db.Valor.Find(id);
                if (val == null)
                {
                    return(HttpNotFound());
                }
                para.parametro  = 6;
                para.Id         = val.IdValor;
                para.Porcentaje = (val.Porcentaje * 100);
                para.Nombre     = val.Nombre.Trim();
                para.Tipo       = val.Tipo;
                para.Usuario    = val.Usuario.Trim();
                para.Estado     = val.Estado.ToString();
                break;
            }
            return(PartialView(para));
        }
        public ActionResult Editar(int id, Parametro parametrop)
        {
            if (!LoginController.validaUsuario(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (!LoginController.validaRol(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }

            try
            {
                parametrop.parametro = (int)Session["Currentabla"];
                ViewBag.CatMaterial  = new SelectList((from s in db.CategoriaMat
                                                       where s.Estado == 1
                                                       select new
                {
                    s.IdCategoria,
                    s.Nombre
                }
                                                       ), "IdCategoria", "Nombre");

                ModelState.Remove("Usuario");
                parametrop.Usuario = Session["UsuarioActual"].ToString();

                if (!ModelState.IsValidField("CategoriaId") && parametrop.parametro != 5 || !ModelState.IsValidField("Porcentaje") && parametrop.parametro != 6 || ModelState.IsValid)
                {
                    switch (parametrop.parametro)
                    {
                    case 1:
                        CategoriaMat cat = new CategoriaMat();
                        cat.IdCategoria     = id;
                        cat.Nombre          = parametrop.Nombre.Trim();
                        cat.Usuario         = parametrop.Usuario.Trim();
                        cat.Estado          = Convert.ToInt32(parametrop.Estado);
                        db.Entry(cat).State = EntityState.Modified;
                        db.SaveChanges();
                        break;

                    case 2:
                        ColorMat color = new ColorMat();
                        color.IdColor         = id;
                        color.Nombre          = parametrop.Nombre.Trim();
                        color.IdCatMaterial   = parametrop.CategoriaId;
                        color.Usuario         = parametrop.Usuario.Trim();
                        color.Estado          = Convert.ToInt32(parametrop.Estado);
                        db.Entry(color).State = EntityState.Modified;
                        db.SaveChanges();
                        break;

                    case 3:
                        TipoProducto tipo = new TipoProducto();
                        tipo.IdTipoProducto  = id;
                        tipo.Nombre          = parametrop.Nombre.Trim();
                        tipo.Usuario         = parametrop.Usuario.Trim();
                        tipo.Estado          = Convert.ToInt32(parametrop.Estado);
                        db.Entry(tipo).State = EntityState.Modified;
                        db.SaveChanges();
                        break;

                    case 4:
                        Rol rolp = new Rol();
                        rolp.IdRol           = id;
                        rolp.Nombre          = parametrop.Nombre.Trim();
                        rolp.Usuario         = parametrop.Usuario.Trim();
                        rolp.Estado          = Convert.ToInt32(parametrop.Estado);
                        db.Entry(rolp).State = EntityState.Modified;
                        db.SaveChanges();
                        break;

                    case 5:
                        SubCategoria sub = new SubCategoria();
                        sub.IdSubCatMat     = id;
                        sub.Nombre          = parametrop.Nombre.Trim();
                        sub.IdCatMat        = parametrop.CategoriaId;
                        sub.Usuario         = parametrop.Usuario.Trim();
                        sub.Estado          = Convert.ToInt32(parametrop.Estado);
                        db.Entry(sub).State = EntityState.Modified;
                        db.SaveChanges();
                        break;

                    case 6:
                        Valor val = new Valor();
                        val.IdValor         = id;
                        val.Nombre          = parametrop.Nombre.Trim();
                        val.Tipo            = parametrop.Tipo;
                        val.Porcentaje      = (parametrop.Porcentaje) / 100;
                        val.Usuario         = parametrop.Usuario.Trim();
                        val.Estado          = Convert.ToInt32(parametrop.Estado);
                        db.Entry(val).State = EntityState.Modified;
                        db.SaveChanges();
                        break;
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Registrar(Parametro parametrop)
        {
            if (!LoginController.validaUsuario(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (!LoginController.validaRol(Session))
            {
                return(RedirectToAction("Index", "Home"));
            }

            try
            {
                ViewBag.CatMaterial = new SelectList((from s in db.CategoriaMat
                                                      where s.Estado == 1
                                                      select new
                {
                    s.IdCategoria,
                    s.Nombre
                }
                                                      ), "IdCategoria", "Nombre");
                if (parametrop.parametro == 5 || parametrop.parametro == 2)
                {
                    ModelState.Remove("Porcentaje");
                    ModelState.Remove("Tipo");
                }
                if (parametrop.parametro == 6)
                {
                    ModelState.Remove("CategoriaId");
                }
                if (parametrop.parametro != 6 && parametrop.parametro != 5 && parametrop.parametro != 2)
                {
                    ModelState.Remove("CategoriaId");
                    ModelState.Remove("Porcentaje");
                    ModelState.Remove("Tipo");
                }

                ModelState.Remove("Usuario");
                parametrop.Usuario = Session["UsuarioActual"].ToString();

                if (ModelState.IsValid)
                {
                    switch (parametrop.parametro)
                    {
                    case 1:
                        CategoriaMat cat = new CategoriaMat();
                        cat.Nombre  = parametrop.Nombre.Trim();
                        cat.Usuario = parametrop.Usuario.Trim();
                        cat.Estado  = Convert.ToInt32(parametrop.Estado);
                        db.CategoriaMat.Add(cat);
                        db.SaveChanges();
                        break;

                    case 2:
                        ColorMat color = new ColorMat();
                        color.Nombre        = parametrop.Nombre.Trim();
                        color.IdCatMaterial = parametrop.CategoriaId;
                        color.Usuario       = parametrop.Usuario.Trim();
                        color.Estado        = Convert.ToInt32(parametrop.Estado);
                        db.ColorMat.Add(color);
                        db.SaveChanges();
                        break;

                    case 3:
                        TipoProducto tipo = new TipoProducto();
                        tipo.Nombre  = parametrop.Nombre.Trim();
                        tipo.Usuario = parametrop.Usuario.Trim();
                        tipo.Estado  = Convert.ToInt32(parametrop.Estado);
                        db.TipoProducto.Add(tipo);
                        db.SaveChanges();
                        break;

                    case 4:
                        Rol rolp = new Rol();
                        rolp.Nombre  = parametrop.Nombre.Trim();
                        rolp.Usuario = parametrop.Usuario.Trim();
                        rolp.Estado  = Convert.ToInt32(parametrop.Estado);
                        db.Rol.Add(rolp);
                        db.SaveChanges();
                        break;

                    case 5:
                        SubCategoria sub = new SubCategoria();
                        sub.Nombre   = parametrop.Nombre.Trim();
                        sub.IdCatMat = parametrop.CategoriaId;
                        sub.Usuario  = parametrop.Usuario.Trim();
                        sub.Estado   = Convert.ToInt32(parametrop.Estado);
                        db.SubCategoria.Add(sub);
                        db.SaveChanges();
                        break;

                    case 6:
                        Valor val = new Valor();
                        val.Nombre     = parametrop.Nombre.Trim();
                        val.Tipo       = parametrop.Tipo;
                        val.Porcentaje = (parametrop.Porcentaje) / 100;
                        val.Usuario    = parametrop.Usuario.Trim();
                        val.Estado     = Convert.ToInt32(parametrop.Estado);
                        db.Valor.Add(val);
                        db.SaveChanges();
                        break;
                    }
                }
                return(RedirectToAction("Registrar"));
            }
            catch
            {
                return(View());
            }
        }