public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Averias averias = db.Averias.Find(id);

            if (averias == null)
            {
                return(HttpNotFound());
            }
            ViewBag.NombreEsquema = db.EsquemasProteccion.Find(averias.IdEsquema).Nombre;
            var sub    = db.Subestacion.Find(averias.CodSubestacion);
            var subtra = db.SubestacionTransmision.Find(averias.CodSubestacion);

            if (sub != null && subtra == null)
            {
                ViewBag.NombreSubestacion = sub.NombreSubestacion;
            }
            else if (sub == null && subtra != null)
            {
                ViewBag.NombreSubestacion = subtra.NombreSubestacion;
            }

            return(View(averias));
        }
        // GET: Averias/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Averias averias = db.Averias.Find(id);

            if (averias == null)
            {
                return(HttpNotFound());
            }
            var subestaciones = db.Subestacion
                                .Select(c => new SelectListItem {
                Value = c.Codigo, Text = c.Codigo + " - " + c.NombreSubestacion
            })
                                .Union(db.SubestacionTransmision
                                       .Select(c => new SelectListItem {
                Value = c.Codigo, Text = c.Codigo + " - " + c.NombreSubestacion
            }));

            ViewBag.CodSubestacion = new SelectList(subestaciones, "Value", "Text", averias.CodSubestacion);

            var e = db.EsquemasProteccion.Where(c => c.Subestacion == averias.CodSubestacion);

            ViewBag.IdEsquema = new SelectList(e, "id_Esquema", "Nombre", averias.IdEsquema);

            ViewBag.PersonaQueAtendio = new SelectList(db.Personal, "Nombre", "Nombre", averias.PersonaQueAtendio);
            ViewBag.ElaboradoPor      = new SelectList(db.Personal, "Nombre", "Nombre", averias.ElaboradoPor);
            ViewBag.RevisadoPor       = new SelectList(db.Personal, "Nombre", "Nombre", averias.RevisadoPor);
            ViewBag.AprobadoPor       = new SelectList(db.Personal, "Nombre", "Nombre", averias.AprobadoPor);

            return(View(averias));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Averias averias = db.Averias.Find(id);
            int     accion  = GetNumAccion("B", "ESA", averias.Id_NumAccion ?? 0);

            db.Averias.Remove(averias);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Edit([Bind(Include = "IdAveria,FechaReporte,CodSubestacion,IdEsquema,FechaAtencion,PersonaQueAtendio,DatosReportados,Analisis,Conclusiones,Recomendaciones,ElaboradoPor,RevisadoPor,AprobadoPor")] Averias averias,
                                 string CodSubestacion, int?IdEsquema, string PersonaQueAtendio, string ElaboradoPor, string RevisadoPor, string AprobadoPor)
        {
            var    usuario          = System.Web.HttpContext.Current.User?.Identity?.Name ?? null;
            string nombre_usuario   = System.Web.HttpContext.Current.User.Identity.Name;
            var    usuario_logueado = db.Personal.FirstOrDefault(c => c.Nombre == nombre_usuario);
            short  EAdmin           = usuario_logueado.id_EAdministrativa;

            int idesq = IdEsquema ?? -1;

            if (ModelState.IsValid && idesq != -1 && CodSubestacion != "")
            {
                averias.CodSubestacion     = CodSubestacion;
                averias.IdEsquema          = idesq;
                averias.PersonaQueAtendio  = PersonaQueAtendio;
                averias.ElaboradoPor       = ElaboradoPor;
                averias.RevisadoPor        = RevisadoPor;
                averias.AprobadoPor        = AprobadoPor;
                averias.Id_EAdministrativa = EAdmin;
                averias.Id_NumAccion       = GetNumAccion("M", "ESA", averias.Id_NumAccion ?? 0);
                db.Entry(averias).State    = EntityState.Modified;

                db.SaveChanges();
                return(RedirectToAction("Details", new { id = averias.IdAveria }));
            }
            var subestaciones = db.Subestacion
                                .Select(c => new SelectListItem {
                Value = c.Codigo, Text = c.Codigo + " - " + c.NombreSubestacion
            })
                                .Union(db.SubestacionTransmision
                                       .Select(c => new SelectListItem {
                Value = c.Codigo, Text = c.Codigo + " - " + c.NombreSubestacion
            }));

            ViewBag.CodSubestacion = new SelectList(subestaciones, "Value", "Text", CodSubestacion);

            var e = db.EsquemasProteccion.Where(c => c.Subestacion == CodSubestacion);

            ViewBag.IdEsquema = new SelectList(e, "id_Esquema", "Nombre", averias.IdEsquema);

            ViewBag.PersonaQueAtendio = new SelectList(db.Personal, "Nombre", "Nombre", averias.PersonaQueAtendio);
            ViewBag.ElaboradoPor      = new SelectList(db.Personal, "Nombre", "Nombre", averias.ElaboradoPor);
            ViewBag.RevisadoPor       = new SelectList(db.Personal, "Nombre", "Nombre", averias.RevisadoPor);
            ViewBag.AprobadoPor       = new SelectList(db.Personal, "Nombre", "Nombre", averias.AprobadoPor);

            ViewBag.ErrorEsquema = "";
            if (idesq == -1)
            {
                ViewBag.ErrorEsquema = "Debe seleccionar un esquema";
            }

            return(View(averias));
        }
        // GET: Averias/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Averias averias = db.Averias.Find(id);

            if (averias == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Esquema = db.EsquemasProteccion.Find(averias.IdEsquema).Nombre;
            return(View(averias));
        }