Example #1
0
        //*************************************************************************************
        //NOMBRE DE LA FUNCIÓN: Btn_Migrar_Click
        //DESCRIPCIÓN: Evento Click del botón migrar para comenzar a leer el archivo  y guardar los datos
        //             en la base de datos
        //PARÁMETROS :
        //CREO       : Miguel Angel Bedolla Moreno
        //FECHA_CREO : 22-Febrero-2013
        //MODIFICO:
        //FECHA_MODIFICO
        //CAUSA_MODIFICACIÓN
        //*************************************************************************************
        private void Btn_Migrar_Click(object sender, EventArgs e)
        {
            if (Txt_Ruta.Text.Trim() != "")
            {
                if (Txt_Ruta.Text.EndsWith(".xlsx") || Txt_Ruta.Text.EndsWith(".xls"))
                {
                    try
                    {
                        //DataSet Ds_Archivo = Leer_Excel("SELECT * FROM [Tipo_de_contenedor$] where [Proyecto] <>''");
                        DataSet Ds_Archivo = Interpretar_Excel();
                        Cls_Ope_Migracion_Negocio P_Migracion = new Cls_Ope_Migracion_Negocio();
                        P_Migracion.P_Dt_Contenedores      = Ds_Archivo.Tables["Contenedores"];
                        P_Migracion.P_Dt_Tipo_Contenedores = Ds_Archivo.Tables["Tipo_de_Contenedor"];
                        if (P_Migracion.Alta_Migracion())
                        {
                            if (P_Migracion.P_Log_Errores.Trim() != "")
                            {
                                MessageBox.Show(this, "Migración exitosa con comentarios.", "Migración de contenedores", MessageBoxButtons.OK);
                                String Path = @"C:\Log_Errores\Log_" + DateTime.Now.ToString("dd-MMM-yyyy_hh_mm_ss_tt") + ".txt";
                                if (!Directory.Exists(@"C:\Log_Errores\"))
                                {
                                    Directory.CreateDirectory(@"C:\Log_Errores\");
                                }
                                System.IO.StreamWriter escritor = new System.IO.StreamWriter(Path);

                                escritor.WriteLine(P_Migracion.P_Log_Errores);
                                escritor.Dispose();
                                MessageBox.Show(this, "Los comentarios se guiardaron en el archivo: " + Path + ".", "Migración de contenedores", MessageBoxButtons.OK);
                            }
                            else
                            {
                                MessageBox.Show(this, "Migración exitosa.", "Migración de contenedores", MessageBoxButtons.OK);
                            }
                        }
                    }
                    catch (Exception E)
                    {
                        MessageBox.Show(this, "Migración fallida: " + E.Message, "Migración de contenedores", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
Example #2
0
        ///*******************************************************************************
        ///NOMBRE DE LA FUNCIÓN: Alta_Migracion
        ///DESCRIPCIÓN: Inserta los registros de contenedores y de tipos de contenedores de los datatables de la variable de negocio.
        ///PARAMENTROS:
        ///             1. P_Migracion.         Instancia de la Clase de Negocio de Migración
        ///                                     con los datos del que van a ser
        ///                                     dados de Alta.
        ///CREO: Miguel Angel Bedolla Moreno.
        ///FECHA_CREO: 12/Abr/2013 11:00:00 a.m.
        ///MODIFICO:
        ///FECHA_MODIFICO:
        ///CAUSA_MODIFICACIÓN:
        ///*******************************************************************************
        public static Boolean Alta_Migracion(Cls_Ope_Migracion_Negocio P_Migracion)
        {
            Boolean       Alta                          = false;
            StringBuilder Mi_sql                        = new StringBuilder();;
            String        Tipo_Contenedor_Id            = "";
            String        Contenedor_Id                 = "";
            String        Ubicacion_Id                  = "";
            String        No_Movimiento                 = "";
            String        Log_Errores                   = "";
            Double        No_Contenedores_Insertados    = 0;
            Double        No_Tipos_Proyectos_Insertados = 0;
            Boolean       Transaccion_Activa            = false;

            Conexion.Iniciar_Helper();
            Cls_Cat_Tipos_Contenedores_Negocio P_Tipo_Contenedor = new Cls_Cat_Tipos_Contenedores_Negocio();
            Cls_Cat_Contenedores_Negocio       P_Contenedores    = new Cls_Cat_Contenedores_Negocio();
            Cls_Cat_Ubicaciones_Negocio        P_Ubicaciones     = new Cls_Cat_Ubicaciones_Negocio();
            DataTable Dt_Tipo_Contenedor = new DataTable();
            DataTable Dt_Ubicacion       = new DataTable();

            if (!Conexion.HelperGenerico.Estatus_Transaccion())
            {
                Conexion.HelperGenerico.Conexion_y_Apertura();
            }
            else
            {
                Transaccion_Activa = true;
            }
            try
            {
                Conexion.HelperGenerico.Iniciar_Transaccion();
                Tipo_Contenedor_Id = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Cat_Tipos_Contenedores.Tabla_Cat_Tipos_Contenedores, Cat_Tipos_Contenedores.Campo_Tipo_Contenedor_Id, "", 5);
                Contenedor_Id      = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Cat_Contenedores.Tabla_Cat_Contenedores, Cat_Contenedores.Campo_Contenedor_Id, "", 5);
                No_Movimiento      = Cls_Metodos_Generales.Obtener_ID_Consecutivo(Ope_Movimientos.Tabla_Ope_Movimientos, Ope_Movimientos.Campo_No_Movimiento, "", 10);
                for (int i = 0; i < P_Migracion.P_Dt_Tipo_Contenedores.Rows.Count; i++)
                {
                    if (P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Proyecto"].ToString().Trim() != "" && P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Número de parte de contenedor"].ToString().Trim() != "")
                    {
                        P_Tipo_Contenedor.P_Proyecto            = P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Proyecto"].ToString().ToUpper();
                        P_Tipo_Contenedor.P_No_Parte_Contenedor = P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Número de parte de contenedor"].ToString().ToUpper();
                        if (P_Tipo_Contenedor.Consultar_Tipos_Contenedores().Rows.Count == 0)
                        {
                            Mi_sql.Append("INSERT INTO " + Cat_Tipos_Contenedores.Tabla_Cat_Tipos_Contenedores + "(");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Tipo_Contenedor_Id + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_No_Parte_Contenedor + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Descripcion + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Cliente + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Proyecto + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Estacion + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Uso + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Ancho + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Largo + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Altura + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Colapsable + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Col_Ancho + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Col_Largo + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Col_Altura + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Piezas_Contenedor + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Separadores + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_No_Camas + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Bandejas + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Piezas_Cama + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Piezas_Bandeja + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Pieza + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Tapa + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Base + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Bandeja + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Separador + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Tarima + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Contenedor + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Peso_Total + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Cantidad_Contenedores + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Estiva_Max_Col + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Estiva_Max_Arm + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Estatus + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_No_Parte_Componente + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Descripcion_Componente + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Usuario_Creo + ", ");
                            Mi_sql.Append(Cat_Tipos_Contenedores.Campo_Fecha_Creo);
                            Mi_sql.Append(") VALUES (");
                            Mi_sql.Append("'" + Tipo_Contenedor_Id + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Número de parte de contenedor"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Descripción"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Cliente"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Proyecto"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Estación"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Utilizado como"].ToString() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Ancho"].ToString() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Largo"].ToString() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Altura"].ToString() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Colapsable"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Ancho (Colapsable)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Largo (Colapsable)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Altura (Colapsable)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Piezas por contenedor (capacidad)"].ToString().ToUpper() + ", ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Separadores (capacidad)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["número de camas (capacidad)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Bandejas (capacidad)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["número de piezas por cama (capacidad)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Número de piezas por bandeja (capacidad)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Pieza (peso)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Tapa (peso)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Base (peso)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Bandeja (peso)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Separador (peso)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Tarima (peso)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Contenedor (peso)"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Peso total"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Cantidad contenedores"].ToString().ToUpper() + ", ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Estiva Máx colapsable"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Estiva Máx Armado"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Estatus"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Número de parte de componente"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + P_Migracion.P_Dt_Tipo_Contenedores.Rows[i]["Descripción del componente"].ToString().ToUpper() + "', ");
                            Mi_sql.Append("'" + MDI_Frm_Apl_Principal.Nombre_Usuario + "', ");
                            Mi_sql.Append("" + Cls_Ayudante_Sintaxis.Fecha());
                            Mi_sql.Append(")");
                            Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_sql.ToString());
                            Mi_sql.Length      = 0;
                            Tipo_Contenedor_Id = (Convert.ToDouble(Tipo_Contenedor_Id) + 1).ToString("00000");
                            No_Tipos_Proyectos_Insertados++;
                        }
                        else
                        {
                            Log_Errores += "El registro en la fila: " + (i + 1) + " de la hoja 'Tipo_de_contenedor' no pudo ser migrado porque ya existe en la Base de datos.\n";
                        }
                    }
                    else
                    {
                        Log_Errores += "El registro en la fila: " + (i + 1) + " de la hoja 'Tipo_de_contenedor' no cuenta con datos importantes como el proyecto y el número de parte del contenedor.\n";
                    }
                }

                for (int i = 0; i < P_Migracion.P_Dt_Contenedores.Rows.Count; i++)
                {
                    if (P_Migracion.P_Dt_Contenedores.Rows[i]["Proyecto"].ToString().Trim() != "" && P_Migracion.P_Dt_Contenedores.Rows[i]["Número de parte de contenedor"].ToString().Trim() != "" && P_Migracion.P_Dt_Contenedores.Rows[i]["Número consecutivo de contenedor"].ToString().Trim() != "" && P_Migracion.P_Dt_Contenedores.Rows[i]["Ubicación interna"].ToString().Trim() != "")
                    {
                        P_Tipo_Contenedor.P_No_Parte_Contenedor = P_Migracion.P_Dt_Contenedores.Rows[i]["Número de parte de contenedor"].ToString().ToUpper();
                        P_Tipo_Contenedor.P_Proyecto            = P_Migracion.P_Dt_Contenedores.Rows[i]["Proyecto"].ToString().ToUpper();
                        Dt_Tipo_Contenedor = P_Tipo_Contenedor.Consultar_Tipos_Contenedores();
                        if (Dt_Tipo_Contenedor.Rows.Count > 0)
                        {
                            Tipo_Contenedor_Id = Dt_Tipo_Contenedor.Rows[0][Cat_Tipos_Contenedores.Campo_Tipo_Contenedor_Id].ToString();
                            P_Contenedores.P_Codigo_Contenedor = P_Migracion.P_Dt_Contenedores.Rows[i]["Proyecto"].ToString().ToUpper() + P_Migracion.P_Dt_Contenedores.Rows[i]["Número de parte de contenedor"].ToString().ToUpper() + P_Migracion.P_Dt_Contenedores.Rows[i]["Número consecutivo de contenedor"].ToString().ToUpper();
                            if (P_Contenedores.Consultar_Contenedores().Rows.Count == 0)
                            {
                                P_Ubicaciones.P_Ubicacion = P_Migracion.P_Dt_Contenedores.Rows[i]["Ubicación interna"].ToString().ToUpper();
                                Dt_Ubicacion = P_Ubicaciones.Consultar_Ubicaciones();
                                if (Dt_Ubicacion.Rows.Count > 0)
                                {
                                    Ubicacion_Id = Dt_Ubicacion.Rows[0][Cat_Ubicaciones.Campo_Ubicacion_Id].ToString();
                                    Mi_sql.Append("INSERT INTO " + Cat_Contenedores.Tabla_Cat_Contenedores + "(");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Contenedor_Id + ", ");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Consecutivo_Contenedor + ", ");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Tipo_Contenedor_Id + ", ");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Ubicacion_Id + ", ");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Estatus + ", ");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Observaciones + ", ");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Usuario_Creo + ", ");
                                    Mi_sql.Append(Cat_Contenedores.Campo_Fecha_Creo);
                                    Mi_sql.Append(") VALUES (");
                                    Mi_sql.Append("'" + Contenedor_Id + "', ");
                                    Mi_sql.Append("'" + P_Migracion.P_Dt_Contenedores.Rows[i]["Número consecutivo de contenedor"].ToString().ToUpper() + "', ");
                                    Mi_sql.Append("'" + Tipo_Contenedor_Id + "', ");
                                    Mi_sql.Append("'" + Ubicacion_Id + "', ");
                                    Mi_sql.Append("'" + P_Migracion.P_Dt_Contenedores.Rows[i]["Estatus"].ToString().ToUpper() + "', ");
                                    Mi_sql.Append("'" + P_Migracion.P_Dt_Contenedores.Rows[i]["Observaciones"].ToString().ToUpper() + "', ");
                                    Mi_sql.Append("'" + MDI_Frm_Apl_Principal.Nombre_Usuario + "', ");
                                    Mi_sql.Append("" + Cls_Ayudante_Sintaxis.Fecha());
                                    Mi_sql.Append(")");
                                    Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_sql.ToString());
                                    Contenedor_Id = (Convert.ToDouble(Contenedor_Id) + 1).ToString("00000");
                                    Mi_sql.Length = 0;

                                    Mi_sql.Append("INSERT INTO " + Ope_Movimientos.Tabla_Ope_Movimientos + "(");
                                    Mi_sql.Append(Ope_Movimientos.Campo_No_Movimiento + ", ");
                                    Mi_sql.Append(Ope_Movimientos.Campo_Contenedor_Id + ", ");
                                    Mi_sql.Append(Ope_Movimientos.Campo_Ubicacion_Id + ", ");
                                    Mi_sql.Append(Ope_Movimientos.Campo_Observaciones + ", ");
                                    Mi_sql.Append(Ope_Movimientos.Campo_Usuario_Creo + ", ");
                                    Mi_sql.Append(Ope_Movimientos.Campo_Fecha_Creo);
                                    Mi_sql.Append(") VALUES (");
                                    Mi_sql.Append("'" + No_Movimiento + "', ");
                                    Mi_sql.Append("'" + Contenedor_Id + "', ");
                                    Mi_sql.Append("'" + Ubicacion_Id + "', ");
                                    Mi_sql.Append("'" + P_Migracion.P_Dt_Contenedores.Rows[i]["Observaciones"].ToString().ToUpper() + "', ");
                                    Mi_sql.Append("'" + MDI_Frm_Apl_Principal.Nombre_Usuario + "', ");
                                    Mi_sql.Append("" + Cls_Ayudante_Sintaxis.Fecha());
                                    Mi_sql.Append(")");
                                    Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_sql.ToString());
                                    Mi_sql.Length = 0;
                                    No_Movimiento = (Convert.ToDouble(No_Movimiento) + 1).ToString("0000000000");

                                    No_Contenedores_Insertados++;
                                }
                                else
                                {
                                    Log_Errores += "El registro en la fila: " + (i + 1) + " de la hoja 'Contenedores' no pudo migrarse porque la ubicación no existe en la Base de Datos, ingrese la ubicación en el catálogo de Ubicaciones.\n";
                                }
                            }
                            else
                            {
                                Log_Errores += "El registro en la fila: " + (i + 1) + " de la hoja 'Contenedores' no puede ser migrado porque ya existen en la Base de datos.\n";
                            }
                        }
                        else
                        {
                            Log_Errores += "El registro en la fila: " + (i + 1) + " de la hoja 'Contenedores' no puedo ser migrado porque no se encuentra el tipo de proyecto al cual pertenece, modifique el archivo cambiando el proyecto y el Número de parte de contenedor.\n";
                        }
                    }
                    else
                    {
                        Log_Errores += "El registro en la fila: " + (i + 1) + " de la hoja 'Contenedores' no cuenta con la información necesaria para migrarse.\n";
                    }
                }

                P_Migracion.P_Log_Errores = Log_Errores;
                P_Migracion.P_No_Contenedores_Insertados      = No_Contenedores_Insertados;
                P_Migracion.P_No_Tipo_Contenedores_Insertados = No_Tipos_Proyectos_Insertados;

                Alta = true;
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Terminar_Transaccion();
                }
            }
            catch (Exception E)
            {
                Conexion.HelperGenerico.Abortar_Transaccion();
                throw new Exception("Alta_Migracion: " + E.Message);
            }
            finally
            {
                if (!Transaccion_Activa)
                {
                    Conexion.HelperGenerico.Cerrar_Conexion();
                }
            }
            return(Alta);
        }