예제 #1
0
 public ActionResult AgregarValor(string valor, bool aceptar)
 {
     if (aceptar)
     {
         if (valor != null || valor != "")
         {
             var lista = db.Autores.Where(a => a.Nombre == valor).ToList();
             if (lista.Count == 0)
             {
                 Autor autor = new Autor()
                 {
                     Nombre = valor,
                     Status = true,
                 };
                 db.Autores.Add(autor);
                 db.SaveChanges();
                 AlertaSuccess(string.Format("Autor: <b>{0}, {1}</b> se agregó con exitó.", autor.Nombre, autor.Apellido), true);
                 return Json(new { success = true, valor = autor.AutorID, texto = autor.Nombre });
             }
             else
             {
                 AlertaSuccess(string.Format("Autor: <b>{0}, {1}</b> se agregó con exitó.", lista.FirstOrDefault().Nombre, lista.FirstOrDefault().Apellido), true);
                 return Json(new { success = true, valor = lista.FirstOrDefault().AutorID, texto = lista.FirstOrDefault().Nombre });
             }
         }
     }
     return Json(new { success = false });
 }
예제 #2
0
        //IMPORTAR AUTOR
        public ActionResult ImportarCat_Autor()
        {
            ViewBag.NombreTabla = "CATALOGO DE AUTORES";
            ViewBag.error = "";
            try
            {
                //abrir conexion
                con1.Open();

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

                //revisar el contador de registros
                if (db.Autores.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 [catAutores]");
                    SqlCommand sql = new SqlCommand(textSql, con1);
                    //ejecutar el sql
                    SqlDataReader leer = sql.ExecuteReader();
                    //realizar el foreach
                    while (leer.Read())
                    {
                        //definir el tipo de tabla
                        Autor autor = new Autor();

                        //llenar el registro con los valores viejos
                        autor.Nombre = leer["Autor_Descripcion"].ToString();
                        autor.LugarNacimiento = leer["Autor_LugarNacimiento"].ToString();
                        autor.AnioNacimiento = leer["Autor_AnioNacimiento"].ToString();
                        autor.LugarMuerte = leer["Autor_LugarMuerte"].ToString();
                        autor.AnioMuerte = leer["Autor_AnioMuerte"].ToString();
                        autor.Observaciones = leer["Autor_Observaciones"].ToString();
                        autor.Status = Convert.ToBoolean(leer["Autor_Estatus"]);
                        autor.AntID = leer["Autor_Clave"].ToString();

                        db.Autores.Add(autor);
                        db.SaveChanges();
                    }

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

                    return PartialView("_ImportarCat_Autor", lista);

                }
            }
            catch (Exception)
            {
                ViewBag.mensaje = "Conexión fallida";
            }
            return PartialView("_ImportarCat_Autor");
        }
예제 #3
0
        // GET: Autor/Crear
        public ActionResult Crear(bool EsRegistroObra = false)
        {
            var autor = new Autor()
            {
                Status = true
            };

            ViewBag.EsRegistroObra = EsRegistroObra;

            return PartialView("_Crear", autor);
        }
예제 #4
0
        //IMPORTAR PIEZA DESCRIPTIVO
        public ActionResult ImportarPieza_Descriptivo()
        {
            /*
             *
             * AutorPieza       Autor_Clave
             * generico         titulo
             * generico_L       EscArtistica_Clave
             * generico_L       FormaAdquisicion_Clave
             * generico_L       Procedencia_Clave
             * generico_L       FiliacionEstilistica_Clave
             * generico_L       CasaComercial_Clave
             * generico_L       EdoConservacion_Clave
             * generico         descripcion
             * generico         grafica
             * generico         otros_materiales
             * generico         catalogo
             * generico         numero_catalogo
             * generico         palabra_clave
             * generico         palabra_clave
             * generico         numero_registro
             * generico         titulo_ori
             * generico         Procedencia
             *
             *
             *
             *
             *
             * ------------ IMPLEMENTAR INDEPENDIENTES --------------
             * * ????????         cve_marco
             *
             * ImagenPieza  	    m_pieza_foto
             *
             * ColeccionGibranPieza     ClassColeccion_Clave
             * TecnicaMarco             MTecnicaMarco_Clave
             * Médidas	                m_pieza_dimensiones
             *
             *              * CatalogoPieza	    m_cats
             * ExposicionPieza	    m_guion_det
             * TecnicaPieza         MatriculaTecnica_Clave
             * MatriculaPieza       Matricula_Clave

             */

            // Inicia el contador:
            Stopwatch tiempo = Stopwatch.StartNew();

            var tAtt_Autor = db.TipoAtributos.SingleOrDefault(a => a.AntNombre == "Autor_Clave").TipoAtributoID;
            //TipoAtributo tAtt_Autor = db.TipoAtributos.SingleOrDefault(a => a.AntNombre == "Autor_Clave");

            //TipoAtributo tAtt_Catalogo = db.TipoAtributos.Single(a => a.AntNombre == "Autor_Clave");
            //TipoAtributo tAtt_Exposicion = db.TipoAtributos.Single(a => a.AntNombre == "Autor_Clave");
            //TipoAtributo tAtt_Tecnica = db.TipoAtributos.Single(a => a.AntNombre == "Autor_Clave");
            //TipoAtributo tAtt_Matricula = db.TipoAtributos.Single(a => a.AntNombre == "Autor_Clave");

            //
            ViewBag.NombreTabla = "CATALOGO DE OBRAS - REGISTRO BASICO";

            ViewBag.error = "";

            try
            {
                // mandar mensaje de conexcion
                ViewBag.mensaje = "Conexión establecida";
                //definir el sql
                var total = 500;
                var inicio = 2520; //colocar AntID no el ObraID
                var fin = inicio + total;

                var limite = 103475;

                while (fin <= limite)
                {
                    con1.Open();
                    string textSql = string.Format("SELECT * FROM [m_pieza_descriptivo] WHERE [id_pieza] > {0} AND [id_pieza] <= {1}", inicio, fin);

                    SqlCommand sql = new SqlCommand(textSql, con1);
                    SqlDataReader leer = sql.ExecuteReader();

                    while (leer.Read())
                    {
                        //Buscar que la Obra Exista
                        string idPiezaText = leer["id_pieza"].ToString();
                        Obra obra = null;
                        var xObra = db.Obras.Where(a => a.AntID == idPiezaText).Select(a => new { a.ObraID, a.AntID, a.Clave });

                        if (xObra.Count() > 0)
                        {
                            obra = new Obra()
                            {
                                ObraID = xObra.FirstOrDefault().ObraID,
                                AntID = xObra.FirstOrDefault().AntID,
                                Clave = xObra.FirstOrDefault().Clave
                            };
                        }

                        if (obra != null)
                        {
                            //traer la PiezaMaestra
                            string claveText = obra.Clave + "-A";
                            Pieza piezaMaestra = null;
                            var xPiezaMaestra = db.Piezas.Where(a => a.Clave == claveText && a.ObraID == obra.ObraID).Select(a => new { a.ObraID, a.PiezaID, a.Clave, a.TipoPiezaID });
                            if (xPiezaMaestra.Count() > 0)
                            {
                                piezaMaestra = new Pieza()
                                {
                                    ObraID = xPiezaMaestra.FirstOrDefault().ObraID,
                                    PiezaID = xPiezaMaestra.FirstOrDefault().PiezaID,
                                    TipoPiezaID = xPiezaMaestra.FirstOrDefault().TipoPiezaID,
                                    Clave = xPiezaMaestra.FirstOrDefault().Clave
                                };
                            }

                            if (piezaMaestra != null)
                            {
                                // AUTOR_PIEZA ------------------------------------------------------------------------------------------------
                                // Autor_Clave ------------------------------------------------------------------------------------------------
                                string autorIDText = leer["Autor_Clave"].ToString();
                                Autor autor = null;
                                var xAutor = db.Autores.Where(a => a.AntID == autorIDText).Select(a => new { a.AutorID });
                                if (xAutor.Count() > 0)
                                {
                                    autor = new Autor()
                                    {
                                        AutorID = xAutor.FirstOrDefault().AutorID
                                    };
                                }

                                //si autor == null o "0" no hacer nada
                                if (autor != null)
                                {
                                    //Buscar que exista Atributo con TipoPieza y TipoAtributo
                                    Atributo att = null;
                                    var xAtt = db.Atributos.Where(a => a.TipoAtributoID == tAtt_Autor && a.TipoPiezaID == piezaMaestra.TipoPiezaID).Select(a => new { a.AtributoID });
                                    if (xAtt.Count() > 0)
                                    {
                                        att = new Atributo()
                                        {
                                            AtributoID = xAtt.FirstOrDefault().AtributoID
                                        };
                                    }
                                    else
                                    {
                                        //no existe entonces crearlo

                                        att.TipoPiezaID = piezaMaestra.TipoPiezaID;
                                        att.TipoAtributoID = tAtt_Autor;
                                        att.NombreAlterno = null;
                                        att.Orden = 100;
                                        att.Status = true;
                                        att.Requerido = true;
                                        att.EnFichaBasica = true;

                                        db.Atributos.Add(att);
                                        db.SaveChanges();

                                    }

                                    //comenzar creacion del AtributoPieza con valores null
                                    AtributoPieza attPiezaGenAutor = new AtributoPieza()
                                    {
                                        PiezaID = piezaMaestra.PiezaID,
                                        AtributoID = att.AtributoID,
                                    };
                                    db.AtributoPiezas.Add(attPiezaGenAutor);

                                    AutorPieza autorPieza = new AutorPieza()
                                    {
                                        PiezaID = piezaMaestra.PiezaID,
                                        AutorID = autor.AutorID,
                                        Status = true
                                    };
                                    db.AutorPiezas.Add(autorPieza);
                                }

                                // GENERICOS --------------------------------------------------------------------------------------------------
                                List<string> campos = new List<string>()
                                {
                                    "titulo",
                                    "EscArtistica_Clave",
                                    "FormaAdquisicion_Clave",
                                    "Procedencia_Clave",
                                    "FiliacionEstilistica_Clave",
                                    "CasaComercial_Clave",
                                    "EdoConservacion_Clave",
                                    "descripcion",
                                    "otros_materiales",
                                    "catalogo",
                                    "numero_catalogo",
                                    "numero_registro",
                                    "titulo_ori",
                                    "Procedencia"
                                };

                                foreach (var campoAnt in campos)
                                {
                                    //buscar el tipo de atributo
                                    TipoAtributo tipoAttGen = null;
                                    var xTipoAttGen = db.TipoAtributos.Where(a => a.AntNombre == campoAnt).Select(a => new { a.EsLista, a.TipoAtributoID });
                                    if (xTipoAttGen.Count() > 0)
                                    {
                                        tipoAttGen = new TipoAtributo()
                                        {
                                            EsLista = xTipoAttGen.FirstOrDefault().EsLista,
                                            TipoAtributoID = xTipoAttGen.FirstOrDefault().TipoAtributoID
                                        };
                                    }

                                    if (tipoAttGen != null)
                                    {
                                        //Extraer el valor a buscar o guardar de la base vieja
                                        string valorCampo = leer[campoAnt].ToString();
                                        //Validar el valor del campo
                                        bool todoOk = true;
                                        if (tipoAttGen.EsLista)
                                        {
                                            if (valorCampo == "0")
                                            {
                                                todoOk = false;
                                            }
                                        }
                                        else
                                        {
                                            if (valorCampo == "0" || valorCampo == "" || valorCampo == " " || valorCampo == "-" || valorCampo == " -" || valorCampo == "Pendiente por definir")
                                            {
                                                todoOk = false;
                                            }
                                        }

                                        //paso la validacion
                                        if (todoOk)
                                        {
                                            //Buscar que el Atributo Exista con TipoPieza y TipoAtributo
                                            Atributo attGen = null;
                                            var xAttGen = db.Atributos.Where(a => a.TipoAtributoID == tipoAttGen.TipoAtributoID && a.TipoPiezaID == piezaMaestra.TipoPiezaID).Select(a => new { a.AtributoID });
                                            if (xAttGen.Count() > 0)
                                            {
                                                attGen = new Atributo()
                                                {
                                                    AtributoID = xAttGen.FirstOrDefault().AtributoID
                                                };
                                            }
                                            else
                                            {
                                                //si no existe entonces crearlo
                                                attGen = new Atributo()
                                                {
                                                    TipoPiezaID = piezaMaestra.TipoPiezaID,
                                                    TipoAtributoID = tipoAttGen.TipoAtributoID,
                                                    Orden = 100,
                                                    Status = true,
                                                    Requerido = false,
                                                    EnFichaBasica = false
                                                };

                                                db.Atributos.Add(attGen);
                                                db.SaveChanges();
                                            }

                                            //comenzar creacion del AtributoPieza con el valor extraido y validado
                                            AtributoPieza attPiezaGen = new AtributoPieza()
                                            {
                                                PiezaID = piezaMaestra.PiezaID,
                                                AtributoID = attGen.AtributoID,
                                            };

                                            if (tipoAttGen.EsLista)
                                            {
                                                //buscar el valor en ListaValor en el tipo de atributo
                                                ListaValor listaValorGen = null;
                                                var xListaValorGen = db.ListaValores.Where(a => a.AntID == valorCampo && a.TipoAtributoID == tipoAttGen.TipoAtributoID).Select(a => new { a.ListaValorID });
                                                if (xListaValorGen.Count() > 0)
                                                {
                                                    listaValorGen = new ListaValor()
                                                    {
                                                        ListaValorID = xListaValorGen.FirstOrDefault().ListaValorID
                                                    };

                                                }

                                                if (listaValorGen != null)
                                                {
                                                    attPiezaGen.ListaValorID = listaValorGen.ListaValorID;
                                                    db.AtributoPiezas.Add(attPiezaGen);
                                                    db.SaveChanges();
                                                }
                                            }
                                            else
                                            {
                                                attPiezaGen.Valor = valorCampo;
                                                db.AtributoPiezas.Add(attPiezaGen);
                                                db.SaveChanges();
                                            }
                                        }

                                    }
                                    else
                                    {

                                        ViewBag.error = "error";
                                        ViewBag.mensaje = "No existe la Tipo de Atributo, intenta resolver el problema antes de continuar";
                                    }
                                }
                                // ------------------------------------------------------------------------------------------------------------
                                // ------------------------------------------------------------------------------------------------------------
                                db.SaveChanges();
                            }
                            else
                            {
                                ViewBag.error = "error";
                                ViewBag.mensaje = "No existe la PiezaMaestra, intenta resolver el problema antes de continuar";
                            }
                        }
                        else
                        {
                            ViewBag.error = "error";
                            ViewBag.mensaje = "No existe la Obra, intenta resolver el problema antes de continuar";
                        }

                    }

                    inicio = fin;
                    fin = fin + total;
                    con1.Close();
                }

                // Para el contador e imprime el resultado:
                ViewBag.TiempoTotal = tiempo.Elapsed.TotalSeconds.ToString();

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

                return PartialView("_ImportarPieza_Descriptivo", lista);
            }
            catch (Exception)
            {
                ViewBag.error = "error";
                ViewBag.mensaje = "Conexión fallida";
            }

            ViewBag.TiempoTotal = tiempo.Elapsed.TotalSeconds.ToString();
            return PartialView("_ImportarPieza_Descriptivo");
        }
예제 #5
0
        public ActionResult Crear([Bind(Include = "PiezaID,AutorID")] AutorPieza autorPieza)
        {
            autorPieza.Status = true;
            //veridicar que CatalogoID NULL ó 0
            if (autorPieza.AutorID == 0)
            {
                //si es NULL ó 0
                //agregar valor de la busqueda a la tabla CATALOGO
                //extraer el ID y asignarlo a CATALOGOPIEZA

                //validar que BuscarDato no sea "" o NULL
                var text_BuscarDato = Request.Form["BuscarDato"].ToString();
                if (!String.IsNullOrEmpty(text_BuscarDato))
                {
                    var a_existe = db.Autores.Where(a => a.Nombre == text_BuscarDato).ToList();
                    // si es repetido agregar su ID a CatalogoPieza
                    if (a_existe.Count > 0)
                    {
                        //ya existe
                        autorPieza.AutorID = a_existe.FirstOrDefault().AutorID;
                        db.Entry(autorPieza).State = EntityState.Modified;
                    }
                    else
                    {
                        //no existe
                        var autorNew = new Autor()
                        {
                            Nombre = text_BuscarDato,
                            Status = true
                        };

                        db.Autores.Add(autorNew);
                        db.SaveChanges();

                        autorPieza.AutorID = autorNew.AutorID;
                        db.AutorPiezas.Add(autorPieza);
                    }

                    db.SaveChanges();
                    //AlertaSuccess(string.Format("Catalogo: <b>{0}</b> se agrego con exitó.", catalogo.Nombre), true);
                    string url = Url.Action("Lista", "AutorPieza", new { id = autorPieza.PiezaID });
                    return Json(new { success = true, url = url, modelo = "AutorPieza", lista = "lista", idPieza = autorPieza.PiezaID });
                }
            }
            else
            {
                //no es NULL ó 0
                //verificar que no exista ya el registro para la pieza
                var autPieza_existe = db.AutorPiezas.Where(a => a.PiezaID == autorPieza.PiezaID && a.AutorID == autorPieza.AutorID).ToList();
                // si es repetido agregar su ID a CatalogoPieza
                if (autPieza_existe.Count <= 0)
                {
                    //crear
                    db.AutorPiezas.Add(autorPieza);
                    db.SaveChanges();
                }
                //AlertaSuccess(string.Format("Catalogo: <b>{0}</b> se agrego con exitó.", catalogo.Nombre), true);
                string url = Url.Action("Lista", "AutorPieza", new { id = autorPieza.PiezaID });
                return Json(new { success = true, url = url, modelo = "AutorPieza", lista = "lista", idPieza = autorPieza.PiezaID });
            }

            ViewBag.AutorID = new SelectList(db.Autores.Where(a => a.Status == true).OrderBy(a => a.Nombre), "AutorID", "Nombre", autorPieza.AutorID);
            return PartialView("_Crear", autorPieza);
        }
        public ActionResult IniciarMigracion()
        {
            RecordFCSContext dbx = new RecordFCSContext();

            int bloqueGuardar = 500;

            Guid TipoObraID = new Guid("375ead18-18db-4a8e-bfbf-7d55ee08ff80");
            TipoObra tipoObra = dbx.TipoObras.Find(TipoObraID);

            Guid TipoPiezaID = new Guid("c84ed502-20d8-4691-9a17-2d739c2bf4da");
            TipoPieza tipoPieza = tipoObra.TipoPiezas.FirstOrDefault(a => a.TipoPiezaID == TipoPiezaID);

            LetraFolio letra = dbx.LetraFolios.SingleOrDefault(a => a.Nombre == "A");

            if (tipoObra != null && tipoPieza != null && letra != null)
            {

                //Extraer los atributos requeridos.
                var listaAttRegistro = tipoPieza.Atributos.Where(a => a.Status && a.MostrarAtributos.Any(b => b.TipoMostrar.Nombre == "Registro" && b.Status) && a.TipoAtributo.Status).OrderBy(a => a.Orden).ToList();

                //extraer
                con1.Open();
                string textSql1 = string.Format("SELECT * FROM [{0}]", "Archivo");
                SqlCommand sql1 = new SqlCommand(textSql1, con1);
                SqlDataReader leer1 = sql1.ExecuteReader();

                List<RowArchivo> listaArchivoCEHM = new List<RowArchivo>();

                var i = 0;

                while (leer1.Read())
                {
                    i++;
                    var rowArchivo = new RowArchivo()
                    {
                        ArchivoID = Convert.ToInt32(leer1["ArchivoID"]),
                        Asunto1 = Regex.Replace(leer1["Asunto1"].ToString().Trim(), @"\s+", " "),
                        Asunto2 = Regex.Replace(leer1["Asunto2"].ToString().Trim(), @"\s+", " "),
                        Caja = Regex.Replace(leer1["Caja"].ToString().Trim(), @"\s+", " "),
                        Carpeta = Regex.Replace(leer1["Carpeta"].ToString().Trim(), @"\s+", " "),
                        Clasificacion = Regex.Replace(leer1["Clasificacion"].ToString().Trim(), @"\s+", " "),
                        Documento = Regex.Replace(leer1["Documento"].ToString().Trim(), @"\s+", " "),
                        FICHA_NO = Convert.ToInt32(leer1["FICHA_NO"]),
                        Firmadopor = Regex.Replace(leer1["Firmadopor"].ToString().Trim(), @"\s+", " "),
                        Fojas = Regex.Replace(leer1["Fojas"].ToString().Trim(), @"\s+", " "),
                        Fondo = Regex.Replace(leer1["Fondo"].ToString().Trim(), @"\s+", " "),
                        Legajo = Regex.Replace(leer1["Legajo"].ToString().Trim(), @"\s+", " "),
                        LugaryFecha = Regex.Replace(leer1["LugaryFecha"].ToString().Trim(), @"\s+", " "),
                        NoImag = Convert.ToInt32(leer1["NoImag"].ToString() == "" ? 0 : leer1["NoImag"]),
                        Nombredelfondo = Regex.Replace(leer1["Nombredelfondo"].ToString().Trim(), @"\s+", " "),
                        Tipodedocumento = Regex.Replace(leer1["Tipodedocumento"].ToString().Trim(), @"\s+", " "),
                        URLFicha = Regex.Replace(leer1["URLFicha"].ToString().Trim(), @"\s+", " "),
                        URLImagen = Regex.Replace(leer1["URLImagen"].ToString().Trim(), @"\s+", " "),
                        Tema = Regex.Replace(leer1["Tema"].ToString().Trim(), @"\s+", " "),
                        Dirigidoa = Regex.Replace(leer1["Dirigidoa"].ToString().Trim(), @"\s+", " ")

                    };

                    if (rowArchivo.ArchivoID > 0)
                        listaArchivoCEHM.Add(rowArchivo);

                }
                con1.Close();
                leer1 = null;

                int numeroRow = 0;
                List<AtributoPieza> listaAdd_AttGen = new List<AtributoPieza>();
                List<AutorPieza> listaAdd_AttAutor = new List<AutorPieza>();

                foreach (var row in listaArchivoCEHM)
                {

                    if(numeroRow == bloqueGuardar)
                    {
                        //guardar los atributos
                        dbx.AtributoPiezas.AddRange(listaAdd_AttGen);
                        dbx.AutorPiezas.AddRange(listaAdd_AttAutor);
                        dbx.SaveChanges();

                        dbx.Dispose();
                        dbx = new RecordFCSContext();
                        dbx.Configuration.AutoDetectChangesEnabled = false;

                        numeroRow = 0;
                        listaAdd_AttAutor = new List<AutorPieza>();
                        listaAdd_AttGen = new List<AtributoPieza>();

                    }

                    //tratar los att de la pieza
                    var obra = new Obra()
                    {
                        ObraID = Guid.NewGuid(),
                        FechaRegistro = DateTime.Now,
                        TipoObraID = tipoObra.TipoObraID,
                        LetraFolioID = letra.LetraFolioID,
                        Status = false,
                        NumeroFolio = row.ArchivoID
                    };
                    dbx.Obras.Add(obra);

                    //Crear pieza
                    Pieza pieza = new Pieza()
                    {
                        PiezaID = Guid.NewGuid(),
                        FechaRegistro = obra.FechaRegistro,
                        ObraID = obra.ObraID,
                        Status = false,
                        PiezaPadreID = null, // null = Principal o Maestra
                        TipoPiezaID = tipoPieza.TipoPiezaID,
                        SubFolio = tipoPieza.Prefijo
                    };
                    dbx.Piezas.Add(pieza);

                    foreach (var att in listaAttRegistro)
                    {
                        var tipoAtt = att.TipoAtributo;

                        if (tipoAtt.EsGenerico)
                        {

                            if (tipoAtt.EsLista)
                            {
                                /*
                                 * GENERICO LISTA
                                 * Fondo - Fondo_CEHM - Fondo
                                 * Colección - Coleccion_Clave - Nombredelfondo
                                 * Legajo - Legajo_CEHM - Legajo
                                 * Fecha de ejecución - FechaEjecucion_Clave - Fecha de ejecucion
                                 */
                                var addOK = true;
                                string valorText = "";
                                switch (tipoAtt.Temp)
                                {
                                    case "Fondo_CEHM":
                                        addOK = row.Fondo == null || row.Fondo == "" ? false : true;
                                        valorText = addOK ? row.Fondo : "";
                                        break;
                                    case "Coleccion_Clave":
                                        addOK = row.Nombredelfondo == null || row.Nombredelfondo == "" ? false : true;
                                        valorText = addOK ? row.Nombredelfondo : "";
                                        break;
                                    case "Legajo_CEHM":
                                        addOK = row.Legajo == null || row.Legajo == "" ? false : true;
                                        valorText = addOK ? row.Legajo : "";
                                        break;
                                    case "FechaEjecucion_Clave":
                                        addOK = row.LugaryFecha == null || row.LugaryFecha == "" ? false : true;
                                        valorText = addOK ? row.LugaryFecha : "";
                                        break;
                                    default:
                                        addOK = false;
                                        break;
                                }

                                if (addOK)
                                {
                                    var listaValor = dbx.ListaValores.SingleOrDefault(a => a.TipoAtributoID == tipoAtt.TipoAtributoID && a.Valor == valorText);

                                    if (listaValor == null)
                                    {
                                        listaValor = new ListaValor()
                                        {
                                            ListaValorID = Guid.NewGuid(),
                                            Status = true,
                                            TipoAtributoID = tipoAtt.TipoAtributoID,
                                            Valor = valorText
                                        };
                                        dbx.ListaValores.Add(listaValor);
                                        dbx.SaveChanges();
                                    }

                                    listaAdd_AttGen.Add(new AtributoPieza()
                                    {
                                        AtributoPiezaID = Guid.NewGuid(),
                                        AtributoID = att.AtributoID,
                                        PiezaID = pieza.PiezaID,
                                        Status = true,
                                        ListaValorID = listaValor.ListaValorID
                                    });
                                }

                            }
                            else
                            {
                                if (tipoAtt.EsMultipleValor)
                                {
                                    /*
                                     * GENERICO TEXTO MULTIPLE
                                     * Descripción - descripcion
                                     *
                                     *
                                     * Se forma con : Asunto1, Asunto2, Tema

                                     */

                                    var addOK = true;
                                    string valorText = "";

                                    switch (tipoAtt.Temp)
                                    {
                                        case "descripcion":
                                            // Tema
                                            addOK = true;
                                            valorText = "";
                                            addOK = row.Tema == null || row.Tema == "" ? false : true;

                                            valorText = addOK ? row.Tema : "";

                                            if (addOK)
                                            {
                                                listaAdd_AttGen.Add(new AtributoPieza()
                                                {
                                                    AtributoPiezaID = Guid.NewGuid(),
                                                    AtributoID = att.AtributoID,
                                                    PiezaID = pieza.PiezaID,
                                                    Status = true,
                                                    Valor = valorText
                                                });
                                            }

                                            // Asunto1
                                            addOK = true;
                                            valorText = "";
                                            addOK = row.Asunto1 == null || row.Asunto1 == "" ? false : true;

                                            valorText = addOK ? row.Asunto1 : "";
                                            if (addOK)
                                            {
                                                listaAdd_AttGen.Add(new AtributoPieza()
                                                {
                                                    AtributoPiezaID = Guid.NewGuid(),
                                                    AtributoID = att.AtributoID,
                                                    PiezaID = pieza.PiezaID,
                                                    Status = true,
                                                    Valor = valorText
                                                });
                                            }

                                            // Asunto2
                                            addOK = true;
                                            valorText = "";
                                            addOK = row.Asunto2 == null || row.Asunto2 == "" ? false : true;

                                            valorText = addOK ? row.Asunto2 : "";
                                            if (addOK)
                                            {
                                                listaAdd_AttGen.Add(new AtributoPieza()
                                                {
                                                    AtributoPiezaID = Guid.NewGuid(),
                                                    AtributoID = att.AtributoID,
                                                    PiezaID = pieza.PiezaID,
                                                    Status = true,
                                                    Valor = valorText
                                                });
                                            }

                                            break;
                                        default:
                                            addOK = false;
                                            break;
                                    }

                                }
                                else
                                {
                                    /*
                                     * GENERICOS TEXTO
                                     * No ficha CEHM            - NoFicha_CEHM
                                     * Clasificacion CEHM       - Clasificacion_CEHM
                                     * No de caja o carpeta     - NoCajaOCarpeta_Cehm
                                     * No de documento o fojas  - NoDocFojas_CEHM
                                     * Título descriptivo       - titulo
                                     * Enlace ficha             - UrlFicha_CEHM
                                     * No de imagenes           - NoImagen_CEHM
                                     * Enlace Imagenes          - URLImagen_CEHM
                                     */

                                    var addOK = true;
                                    string valorText = "";

                                    switch (tipoAtt.Temp)
                                    {
                                        case "NoFicha_CEHM":
                                            addOK = row.FICHA_NO == 0 ? false : true;
                                            valorText = addOK ? row.FICHA_NO.ToString() : "0";
                                            break;

                                        case "Clasificacion_CEHM":
                                            addOK = row.Clasificacion == null || row.Clasificacion == "" ? false : true;
                                            valorText = addOK ? row.Clasificacion : "";
                                            break;

                                        case "NoCajaOCarpeta_Cehm":
                                            // se forma con:  caja y carpeta
                                            // queda: Caja: 1 / Carpeta: 1
                                            // queda: Caja: 1
                                            // queda: Carpeta : 1
                                            var cajaOk = false;
                                            addOK = row.Caja == null || row.Caja == "" ? false : true;
                                            valorText += addOK? "Caja: " + row.Caja : "";
                                            cajaOk = addOK;
                                            addOK = row.Carpeta == null || row.Carpeta == "" ? false : true;
                                            valorText += cajaOk && addOK? " / " : "";
                                            valorText += addOK ? "Carpeta: " + row.Carpeta : "";
                                            addOK = addOK || cajaOk ? true : false;
                                            break;

                                        case "NoDocFojas_CEHM":
                                            // se forma con Fojas, Documento
                                            var fojaOk = false;
                                            addOK = row.Fojas == null || row.Fojas == "" ? false : true;
                                            valorText += addOK? "Fojas: " + row.Fojas : "";
                                            fojaOk = addOK;
                                            addOK = row.Documento == null || row.Documento == "" ? false : true;
                                            valorText += fojaOk && addOK? " / " : "";
                                            valorText += addOK ? "Documento: " + row.Documento : "";
                                            addOK = addOK || fojaOk ? true : false;
                                            break;

                                        case "titulo":
                                            // Tipodedocumento, Dirigidoa

                                            var tipoDocOk = false;
                                            addOK = row.Tipodedocumento == null || row.Tipodedocumento == "" ? false : true;
                                            valorText += addOK? row.Tipodedocumento : "";
                                            tipoDocOk = addOK;
                                            addOK = row.Dirigidoa == null || row.Dirigidoa == "" ? false : true;
                                            valorText += tipoDocOk && addOK ? " / " : "";
                                            valorText += addOK ? row.Dirigidoa : "";
                                            addOK = addOK || tipoDocOk ? true : false;
                                            break;
                                        case "UrlFicha_CEHM":
                                            addOK = row.URLFicha == null || row.URLFicha == "" ? false : true;
                                            valorText = addOK ? row.URLFicha : "";
                                            break;
                                        case "NoImagen_CEHM":
                                            addOK = row.NoImag == 0 ? false : true;
                                            valorText = addOK ? row.NoImag.ToString() : "0";
                                            addOK = true;
                                            break;
                                        case "URLImagen_CEHM":
                                            addOK = row.URLImagen == null || row.URLImagen == "" ? false : true;
                                            valorText = addOK ? row.URLImagen : "";
                                            break;

                                        default:
                                            addOK = false;
                                            break;
                                    }

                                    if (addOK)
                                    {
                                        listaAdd_AttGen.Add(new AtributoPieza()
                                        {
                                            AtributoPiezaID = Guid.NewGuid(),
                                            AtributoID = att.AtributoID,
                                            PiezaID = pieza.PiezaID,
                                            Status = true,
                                            Valor = valorText
                                        });

                                    }

                                }
                            }

                        }
                        else
                        {
                            /*
                             * AUTOR LISTA MULTIPLE
                             * Firmado por
                             */

                            var addOK = true;
                            string valorText = "";

                            addOK = row.Firmadopor == null || row.Firmadopor == "" ? false : true;
                            valorText = addOK ? row.Firmadopor : "";

                            if (addOK)
                            {
                                var autor = dbx.Autores.SingleOrDefault(a => a.Nombre == valorText);

                                if (autor == null)
                                {
                                    autor = new Autor()
                                    {
                                        AutorID = Guid.NewGuid(),
                                        Status = true,
                                        Nombre = valorText
                                    };
                                    dbx.Autores.Add(autor);
                                    dbx.SaveChanges();
                                }

                                listaAdd_AttAutor.Add(new AutorPieza()
                                    {
                                        AutorID = autor.AutorID,
                                        esPrincipal = true,
                                        PiezaID = pieza.PiezaID,
                                        Status = true,
                                        Prefijo = "Principal"
                                    });

                            }

                        }

                    }

                    numeroRow++;
                }

                    //guardar los atributos
                    dbx.AtributoPiezas.AddRange(listaAdd_AttGen);
                    dbx.AutorPiezas.AddRange(listaAdd_AttAutor);
                    dbx.SaveChanges();

                    dbx.Dispose();
                    dbx = new RecordFCSContext();
                    dbx.Configuration.AutoDetectChangesEnabled = false;

            }

            return View();
        }
예제 #7
0
        public ActionResult Crear()
        {
            Autor autor = new Autor();

            return PartialView("_Crear", autor);
        }