//---------------------------------------------------------------------
        //AGREGAR ATRIBUTOS A TIPOOBRAS
        public ActionResult ModificarTiposObrasAtt()
        {
            RecordFCSContext dbx = new RecordFCSContext();
            var listaTipoAtt = db.TipoAtributos.OrderBy(a => a.BuscadorOrden).Select(a => new { a.TipoAtributoID, a.EsLista, a.BuscadorOrden, a.AntNombre }).ToList();
            var listaTipoPiezas = db.TipoPiezas.Select(a => new { a.TipoPiezaID, a.TipoObraID, a.Nombre, a.EsMaestra, a.Clave, a.AntID }).ToList();

            foreach (var tipoPieza in listaTipoPiezas)
            {
                foreach (var tipoAtt in listaTipoAtt)
                {
                    bool esNuevo = false;
                    bool guardar = false;
                    var att = dbx.Atributos.SingleOrDefault(a => a.TipoAtributoID == tipoAtt.TipoAtributoID && a.TipoPiezaID == tipoPieza.TipoPiezaID);

                    if (att == null)
                    {
                        esNuevo = true;
                        att = new Atributo()
                        {
                            TipoAtributoID = tipoAtt.TipoAtributoID,
                            TipoPiezaID = tipoPieza.TipoPiezaID
                        };
                    }

                    att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);

                    switch (tipoAtt.AntNombre)
                    {
                        case "m_pieza_foto":
                            att.Requerido = false;
                            att.EnFichaBasica = true;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;
                        case "clave2":
                            att.Requerido = false;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;

                            if (tipoPieza.EsMaestra)
                            {
                                att.EnFichaBasica = false;
                            }
                            else
                            {
                                att.EnFichaBasica = true;
                            }

                            guardar = true;
                            break;
                        case "TipoPieza_Clave":
                            att.Requerido = false;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;

                            if (tipoPieza.EsMaestra)
                            {
                                att.EnFichaBasica = false;
                            }
                            else
                            {
                                att.EnFichaBasica = true;
                            }

                            guardar = true;
                            break;
                        case "fecha_registro":
                            if (!tipoPieza.EsMaestra)
                            {
                                att.Requerido = false;
                                att.EnFichaBasica = false;
                                att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                                att.Status = true;
                                guardar = true;
                            }
                            break;
                        case "estatus_pieza":
                            if (!tipoPieza.EsMaestra)
                            {
                                att.Requerido = false;
                                att.EnFichaBasica = false;
                                att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                                att.Status = true;
                                guardar = true;
                            }
                            break;

                        case "titulo":
                            att.Requerido = true;
                            att.EnFichaBasica = true;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;

                        case "m_pieza_dimensiones":
                            att.Requerido = false;
                            att.EnFichaBasica = true;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;
                        case "descripcion":
                            att.Requerido = true;
                            att.EnFichaBasica = true;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;
                        case "m_guion_det":
                            att.Requerido = false;
                            att.EnFichaBasica = false;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;

                        case "EdoConservacion_Clave":
                            att.Requerido = false;
                            att.EnFichaBasica = false;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;

                        case "Ubicacion_Clave (OBRA)":
                            att.Requerido = false;
                            att.EnFichaBasica = false;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;

                        case "observaciones":
                            att.Requerido = false;
                            att.EnFichaBasica = false;
                            att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                            att.Status = true;
                            guardar = true;
                            break;

                        case "estatus":
                            if (tipoPieza.EsMaestra)
                            {
                                att.Requerido = false;
                                att.EnFichaBasica = false;
                                att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                                att.Status = true;
                                guardar = true;
                            }
                            else
                            {
                                att.Requerido = false;
                                att.EnFichaBasica = false;
                                att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                                att.Status = false;
                                guardar = true;
                            }
                            break;

                        case "TipoObjeto_Clave":
                        case "clave1":
                        case "m_pieza_coleccion":
                        case "Autor_Clave":
                        case "FechaEjecucion_Clave":
                        case "m_cats":
                        case "MatriculaTecnica_Clave":
                        case "fecha_registro_ORI":
                        case "catTipoAdquisicion":
                        case "FormaAdquisicion_Clave":
                        case "Propietario_Clave":

                            if (tipoPieza.EsMaestra)
                            {
                                att.Requerido = false;
                                att.EnFichaBasica = false;
                                att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                                att.Status = true;
                                guardar = true;
                            }

                            break;

                        default:
                            if (!esNuevo)
                            {
                                att.Requerido = false;
                                att.EnFichaBasica = false;
                                att.Orden = Convert.ToInt32(tipoAtt.BuscadorOrden);
                                att.Status = true;
                                guardar = true;
                            }
                            break;

                    }

                    if (guardar)
                    {
                        if (esNuevo)
                        {
                            //save
                            dbx.Atributos.Add(att);
                        }
                        else
                        {
                            //update
                            dbx.Entry(att).State = EntityState.Modified;
                        }
                    }

                }
                dbx.SaveChanges();
                dbx.Dispose();
                dbx = new RecordFCSContext();
            }
              return View();
        }