public ActionResult AgregarValor(string valor, bool aceptar)
 {
     if (aceptar)
     {
         if (valor != null || valor != "")
         {
             var lista = db.TipoAdquisiciones.Where(a => a.Nombre == valor).ToList();
             if (lista.Count == 0)
             {
                 var tipoAdquisicion = new TipoAdquisicion()
                 {
                     Nombre = valor,
                     Status = true,
                 };
                 db.TipoAdquisiciones.Add(tipoAdquisicion);
                 db.SaveChanges();
                 AlertaSuccess(string.Format("Tipo de Adquisición: <b>{0}</b> se agregó con exitó.", tipoAdquisicion.Nombre), true);
                 return Json(new { success = true, valor = tipoAdquisicion.TipoAdquisicionID, texto = tipoAdquisicion.Nombre });
             }
             else
             {
                 AlertaSuccess(string.Format("Tipo de Adquisición: <b>{0}</b> se agregó con exitó.", lista.FirstOrDefault().Nombre), true);
                 return Json(new { success = true, valor = lista.FirstOrDefault().TipoAdquisicionID, texto = lista.FirstOrDefault().Nombre });
             }
         }
     }
     return Json(new { success = false });
 }
        //IMPORTAR TIPO ADQUISICION
        public ActionResult ImportarCat_TipoAdquisicion()
        {
            ViewBag.NombreTabla = "CATALOGO DE TIPO DE ADQUISICIONES";

            ViewBag.error = "";
            try
            {
                //abrir conexion
                con1.Open();

                // mandar mensaje de conexcion
                ViewBag.mensaje = "Conexión establecida";

                //revisar el contador de registros
                if (db.TipoAdquisiciones.ToList().Count > 0)
                {
                    //si hay por lo menos un registro ya se ocupo la tabla
                    ViewBag.error = "error";
                }
                else
                {
                    //definir el sql
                    string textSql = string.Format("SELECT * FROM [catTipoAdquisicion]");
                    SqlCommand sql = new SqlCommand(textSql, con1);
                    //ejecutar el sql
                    SqlDataReader leer = sql.ExecuteReader();
                    //realizar el foreach
                    while (leer.Read())
                    {
                        //definir el tipo de tabla
                        TipoAdquisicion tipoAdquisicion = new TipoAdquisicion();

                        //llenar el registro con los valores viejos

                        tipoAdquisicion.Nombre = leer["TipoAdquisicion_Descripcion"].ToString();
                        tipoAdquisicion.Status = Convert.ToBoolean(leer["TipoAdquisicion_Estatus"]);
                        tipoAdquisicion.AntID = leer["TipoAdquisicion_Clave"].ToString();

                        db.TipoAdquisiciones.Add(tipoAdquisicion);
                        db.SaveChanges();
                    }

                    var lista = db.TipoAdquisiciones.ToList();
                    ViewBag.TotalRegistros = lista.Count;

                    return PartialView("_ImportarCat_TipoAdquisicion", lista);
                }
            }
            catch (Exception)
            {
                ViewBag.mensaje = "Conexión fallida";
            }
            return PartialView("_ImportarCat_TipoAdquisicion");
        }
        public ActionResult Editar([Bind(Include = "ObraID,Clave,TipoObraID,TipoAdquisicionID,PropietarioID,ColeccionID,UbicacionID,FechaRegistro,Status")] Obra obra)
        {
            string campo = Request.Form["campo"];

            string text_BuscarDato = "";

            if (Request.Form["BuscarDato"] != null)
            {
                text_BuscarDato = Request.Form["BuscarDato"].ToString();
            }

            //saber que campo es el que se esta editando
            //saber si el ID del campo no es null o 0
            //si es null o 0 agregar lo que tiene BuscarDato en la tabla correspondiente al campo

            switch (campo)
            {
                case "ColeccionID":
                    if (obra.ColeccionID == 0)
                    {
                        //es null, entonces agregar valor de busqueda a la tabla CAMPO
                        //extraer el ID y asignarlo a OBRA.CAMPO_ID
                        if (!String.IsNullOrEmpty(text_BuscarDato))
                        {
                            var obj_existe = db.Colecciones.Where(o => o.Nombre == text_BuscarDato).ToList();
                            //si es repetido agregar su ID a OBRA.CAMPO_ID
                            if (obj_existe.Count > 0)
                            {
                                //ya existe
                                obra.ColeccionID = obj_existe.FirstOrDefault().ColeccionID;
                            }
                            else
                            {
                                //no existe
                                var objNew = new Coleccion()
                                {
                                    Nombre = text_BuscarDato,
                                    Status = true
                                };
                                db.Colecciones.Add(objNew);
                                db.SaveChanges();
                                obra.ColeccionID = objNew.ColeccionID;
                            }
                            db.Entry(obra).State = EntityState.Modified;
                            db.SaveChanges();
                            //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                            var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                            return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                        }
                    }
                    else
                    {
                        //No es NULL o 0
                        //Actualizar OBRA.CAMPO_ID
                        db.Entry(obra).State = EntityState.Modified;
                        db.SaveChanges();
                        //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                        var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                        return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                    }

                    ViewBag.ColeccionID = new SelectList(db.Colecciones.Where(o => o.Status == true).OrderBy(o => o.Nombre), "ColeccionID", "Nombre", obra.ColeccionID);

                    break;

                case "PropietarioID":
                    if (obra.PropietarioID == 0)
                    {
                        //es null, entonces agregar valor de busqueda a la tabla CAMPO
                        //extraer el ID y asignarlo a OBRA.CAMPO_ID
                        if (!String.IsNullOrEmpty(text_BuscarDato))
                        {
                            var obj_existe = db.Propietarios.Where(o => o.Nombre.ToString() == text_BuscarDato).ToList();
                            //si es repetido agregar su ID a OBRA.CAMPO_ID
                            if (obj_existe.Count > 0)
                            {
                                //ya existe
                                obra.PropietarioID = obj_existe.FirstOrDefault().PropietarioID;
                            }
                            else
                            {
                                //no existe
                                var objNew = new Propietario()
                                {
                                    Nombre = Convert.ToInt32(text_BuscarDato),
                                    Status = true
                                };
                                db.Propietarios.Add(objNew);
                                db.SaveChanges();
                                obra.PropietarioID = objNew.PropietarioID;
                            }
                            db.Entry(obra).State = EntityState.Modified;
                            db.SaveChanges();
                            //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                            var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                            return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                        }
                    }
                    else
                    {
                        //No es NULL o 0
                        //Actualizar OBRA.CAMPO_ID
                        db.Entry(obra).State = EntityState.Modified;
                        db.SaveChanges();
                        //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                        var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                        return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                    }

                    ViewBag.PropietarioID = new SelectList(db.Propietarios.Where(o => o.Status == true).OrderBy(o => o.Nombre), "PropietarioID", "Nombre", obra.PropietarioID);

                    break;

                case "TipoAdquisicionID":
                    if (obra.TipoAdquisicionID == 0)
                    {
                        //es null, entonces agregar valor de busqueda a la tabla CAMPO
                        //extraer el ID y asignarlo a OBRA.CAMPO_ID
                        if (!String.IsNullOrEmpty(text_BuscarDato))
                        {
                            var obj_existe = db.TipoAdquisiciones.Where(o => o.Nombre == text_BuscarDato).ToList();
                            //si es repetido agregar su ID a OBRA.CAMPO_ID
                            if (obj_existe.Count > 0)
                            {
                                //ya existe
                                obra.TipoAdquisicionID = obj_existe.FirstOrDefault().TipoAdquisicionID;
                            }
                            else
                            {
                                //no existe
                                var objNew = new TipoAdquisicion()
                                {
                                    Nombre = text_BuscarDato,
                                    Status = true
                                };
                                db.TipoAdquisiciones.Add(objNew);
                                db.SaveChanges();
                                obra.TipoAdquisicionID = objNew.TipoAdquisicionID;
                            }
                            db.Entry(obra).State = EntityState.Modified;
                            db.SaveChanges();
                            //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                            var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                            return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                        }
                    }
                    else
                    {
                        //No es NULL o 0
                        //Actualizar OBRA.CAMPO_ID
                        db.Entry(obra).State = EntityState.Modified;
                        db.SaveChanges();
                        //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                        var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                        return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                    }
                    ViewBag.TipoAdquisicionID = new SelectList(db.TipoAdquisiciones.Where(o => o.Status == true).OrderBy(o => o.Nombre), "TipoAdquisicionID", "Nombre", obra.TipoAdquisicionID);

                    break;

                case "TipoObraID":
                    if (obra.TipoObraID == 0)
                    {

                    }
                    else
                    {
                        //No es NULL o 0
                        //Actualizar OBRA.CAMPO_ID
                        db.Entry(obra).State = EntityState.Modified;
                        db.SaveChanges();
                        //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                        var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                        return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                    }

                    ViewBag.TipoObraID = new SelectList(db.TipoObras.Where(o => o.Status == true).OrderBy(o => o.Nombre), "TipoObraID", "Nombre", obra.TipoObraID);

                    break;

                case "Status":
                    if (obra.Status == 0)
                    {

                    }
                    else
                    {
                        //No es NULL o 0
                        //Actualizar OBRA.CAMPO_ID
                        db.Entry(obra).State = EntityState.Modified;
                        db.SaveChanges();
                        //AlertaSuccess(string.Format("{0}: <b>{1}</b> se edito con exitó.",campo, obra.Coleccion.Nombre), true);
                        var url = Url.Action("CampoValor", "Obra", new { id = obra.ObraID, campo = campo });
                        return Json(new { success = true, url = url, modelo = "Obra", idObra = obra.ObraID, campo = campo });
                    }
                    break;
                default:
                    break;
            }

            ViewBag.campo = campo;

            return PartialView("_Editar", obra);
        }
        public ActionResult Crear()
        {
            TipoAdquisicion tipoAdquisicion = new TipoAdquisicion();

            return PartialView("_Crear", tipoAdquisicion);
        }