protected void Button_HABILITAR_SUBIDA_MASIVA_Click(object sender, EventArgs e) { Ocultar(Acciones.Inicio); Mostrar(Acciones.SubidaMasiva); Button_CANCELAR_SUBIDA_MASIVA.Focus(); }
protected void Button_CONFIRMAR_INFO_aRCHIVP_PLANO_Click(object sender, EventArgs e) { Session.Remove("listaRegistrosAcoset"); List <acoset> listaRegistros = new List <acoset>(); acoset _acosetParaLista; Boolean verificador = true; String filaArchivo = null; String[] filaArchivoArray; Int32 contadorRegistrosTotales = 0; Int32 contadorRegistrosProcesados = 0; DataTable tablaErrores = InicializarTablaErrores(); DataRow filaError; parametro _parametro = new parametro(Session["idEmpresa"].ToString()); DataTable tablaEntidadesAcoset = _parametro.ObtenerParametrosPorTabla(tabla.PARAMETROS_ENTIDAD_ACOSET); Boolean datoCorrecto = true; DataTable tablaTipDocs = _parametro.ObtenerParametrosPorTabla(tabla.PARAMETROS_TIP_DOC_ID); if (FileUpload_ARCHIVO_PLANO.HasFile == true) { using (StreamReader reader = new StreamReader(FileUpload_ARCHIVO_PLANO.PostedFile.InputStream)) { while ((filaArchivo = reader.ReadLine()) != null) { contadorRegistrosTotales += 1; filaArchivoArray = filaArchivo.Split(';'); _acosetParaLista = new acoset(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); verificador = true; if (filaArchivoArray.Length == 6) { _acosetParaLista.ACTIVO = true; _acosetParaLista.APELLIDOS = filaArchivoArray[0].ToUpper(); datoCorrecto = false; foreach (DataRow filaEntidad in tablaEntidadesAcoset.Rows) { if (filaEntidad["CODIGO"].ToString().Trim().ToUpper() == filaArchivoArray[5].ToUpper()) { datoCorrecto = true; break; } } if (datoCorrecto == true) { _acosetParaLista.ENTIDAD_REPORTA = filaArchivoArray[5].ToUpper(); } else { filaError = tablaErrores.NewRow(); filaError["TIPO_ERROR"] = ErroresSubidaMasiva.ERROR_ENTIDAD_REPORTA.ToString(); filaError["LINEA"] = contadorRegistrosTotales.ToString(); filaError["MENSAJE"] = "El nombre de la entidad que reporta no es correcto."; tablaErrores.Rows.Add(filaError); verificador = false; } _acosetParaLista.MOTIVO_ESTADO = null; _acosetParaLista.NOMBRES = filaArchivoArray[1].ToUpper(); _acosetParaLista.NUM_DOC_IDENTIDAD = filaArchivoArray[3].ToUpper(); _acosetParaLista.OBS_ACOSET = filaArchivoArray[4].ToUpper(); _acosetParaLista.REGISTRO = 0; datoCorrecto = false; foreach (DataRow filaTipoDoc in tablaTipDocs.Rows) { if (filaTipoDoc["CODIGO"].ToString().ToUpper() == filaArchivoArray[2].ToUpper()) { datoCorrecto = true; break; } } if (datoCorrecto == true) { _acosetParaLista.TIP_DOC_IDENTIDAD = filaArchivoArray[2].ToUpper(); } else { filaError = tablaErrores.NewRow(); filaError["TIPO_ERROR"] = ErroresSubidaMasiva.ERROR_TIP_DOC_IDENTIDAD.ToString(); filaError["LINEA"] = contadorRegistrosTotales.ToString(); filaError["MENSAJE"] = "El tipo de documento de identidad no es correcto."; tablaErrores.Rows.Add(filaError); verificador = false; } } else { filaError = tablaErrores.NewRow(); filaError["TIPO_ERROR"] = ErroresSubidaMasiva.ERROR_ESTRUCTURA_ARCHIVO.ToString(); filaError["LINEA"] = contadorRegistrosTotales.ToString(); filaError["MENSAJE"] = "La línea no tiene la estructura correcta: (APELLIDOS ; NOMBRES ; TIP_DOC_IDENTIDAD ; NUM_DOC_IDENTIDAD ; MOTIVO_REPORTE ; ENTIDAD_REPORTA)."; tablaErrores.Rows.Add(filaError); verificador = false; } if (verificador == true) { listaRegistros.Add(_acosetParaLista); contadorRegistrosProcesados += 1; } } } if (tablaErrores.Rows.Count > 0) { Panel_GRILLA_ERRORES_SUBIDA_MASIVA.Visible = true; Panel_FILEUPLOAD_ARCHIVO_PLANO.Visible = true; Button_CONFIRMAR_INFO_aRCHIVP_PLANO.Visible = true; Button_CANCELAR_SUBIDA_MASIVA.Visible = true; Button_GUARDAR_REGISTROS_MASIVOS.Visible = false; Panel_INFO_DATOS_SUBIDA_MASIVA.Visible = false; GridView_ERRORES_SUBIDA_MASIVA.DataSource = tablaErrores; GridView_ERRORES_SUBIDA_MASIVA.DataBind(); Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El archivo contiene errores y no puede ser procesado, por favor revise la lista de errores.", Proceso.Error); Session.Remove("listaRegistrosAcoset"); Button_CANCELAR_SUBIDA_MASIVA.Focus(); } else { Session["listaRegistrosAcoset"] = listaRegistros; Panel_GRILLA_ERRORES_SUBIDA_MASIVA.Visible = false; Panel_FILEUPLOAD_ARCHIVO_PLANO.Visible = true; Button_CONFIRMAR_INFO_aRCHIVP_PLANO.Visible = false; Button_CANCELAR_SUBIDA_MASIVA.Visible = true; Button_GUARDAR_REGISTROS_MASIVOS.Visible = true; Panel_INFO_DATOS_SUBIDA_MASIVA.Visible = true; Label_NUM_REGISTROS_ARCHIVO.Text = contadorRegistrosProcesados.ToString(); Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El archivo fue verificado, y cumple con las especificaciones, puede continuar con el cargue masivo de egistros Acoset", Proceso.Correcto); Button_CANCELAR_SUBIDA_MASIVA.Focus(); } } else { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "ERROR: Por favor seleccione el archivo con la información de los registros Acoset.", Proceso.Error); Session.Remove("listaRegistrosAcoset"); Button_CANCELAR_SUBIDA_MASIVA.Focus(); } }