//************************************************************************************* //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); } } } }
///******************************************************************************* ///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); }