private String generarArchivo() { Logs objL = new Logs(); try { ArchivoSalida = this.txbArchivoSalida.Text; nombreArchivo = String.Concat("COPIA_" + this.ddlNombreCuenta.Text, "_", this.ddlFechas.Text.Replace("/", ""), this.ddlConsecutivo.Text, "_", writeMilitaryTime(DateTime.Now), ".txt"); if (this.ddlTipoArchivo.SelectedIndex == 1) { Directorio = ArchivoSalida + "ArchivosAsobancaria\\"; } else if (this.ddlTipoArchivo.SelectedIndex == 2) { Directorio = ArchivoSalida + "ArchivosTelefonoRojo\\"; } //SE CREA LA CARPETA DONDE VAN A QUEDAR LOS ARCHIVOS SINO EXISTE if (!Directory.Exists(Directorio)) { System.IO.Directory.CreateDirectory(Directorio); } sw = new StreamWriter(Directorio + nombreArchivo, false); DataTable tabla = new HistorialArchivosSalidaLN().consultarLineasConsecutivo (this.ddlNombreCuenta.Text, this.ddlTipoArchivo.Text, this.ddlFechas.Text, this.ddlConsecutivo.Text); foreach (DataRow fila in tabla.Rows) { sw.WriteLine(Convertidor.aCadena(fila["LINEAS_ARCHIVO"])); } sw.Close(); objL.pFecha = Convert.ToString(DateTime.Now.ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("H:mm:ss")); objL.pUsuario = HttpContext.Current.User.Identity.Name; objL.pDetalle = this.ddlNombreCuenta.SelectedItem.Text + " : Archivo " + ddlTipoArchivo.SelectedItem.Text + " fue generado correctamente"; objL.pTipoArchivo = ddlTipoArchivo.Text; objL.pTipoProceso = "GEN"; new LogsLN().insertar(objL); return("Archivo fue generado correctamente"); } catch (Exception ex) { objL.pFecha = Convert.ToString(DateTime.Now.ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("H:mm:ss")); objL.pUsuario = HttpContext.Current.User.Identity.Name; objL.pDetalle = this.ddlNombreCuenta.SelectedItem.Text + " , Archivo " + ddlTipoArchivo.SelectedItem.Text + " : " + ex.Message; objL.pTipoArchivo = ddlTipoArchivo.Text; objL.pTipoProceso = "GEN"; new LogsLN().insertar(objL); return(ex.Message); } }
//SE GUARDA TODAS LAS LINEAS DEL ARCHIVO ASOBANCARIA EN LA BASE DE DATOS private void guardarLineas(String fecha, String IdCuentaBanco, String Consecutivo, String Linea) { int valor = 0; HistorialArchivosSalida objEntidad = new HistorialArchivosSalida(); HistorialArchivosSalidaLN objHA = new HistorialArchivosSalidaLN(); objEntidad.pFecha = fecha; objEntidad.pIdCuentaBanco = IdCuentaBanco; objEntidad.pTipoArchivo = TipoProcesoXCuenta; objEntidad.pConsecutivo = Consecutivo; objEntidad.pLineaDetalle = Linea; valor = objHA.insertar(objEntidad); if (valor <= 0) { throw new System.Exception("Ocurrio un error al guardar archivo plano en la base de datos"); } }
//SE CREA EL ARCHIVO ASOBANCARIA private void escribirArchivo(String CodigoBanco, String IdCuentaBanco, DataSet tabla) { try { ListaLinea1EA = new List <Bancos.EN.Tablas.EstructuraArchivo>(); ListaLinea2EL = new List <Bancos.EN.Tablas.EstructuraArchivo>(); ListaLinea3DT = new List <Bancos.EN.Tablas.EstructuraArchivo>(); ListaLinea4CL = new List <Bancos.EN.Tablas.EstructuraArchivo>(); ListaLinea5CA = new List <Bancos.EN.Tablas.EstructuraArchivo>(); ListaLinea1EA.AddRange(consultarEstructuraAsobancaria("1EA", TipoProcesoXCuenta)); ListaLinea2EL.AddRange(consultarEstructuraAsobancaria("2EL", TipoProcesoXCuenta)); ListaLinea3DT.AddRange(consultarEstructuraAsobancaria("3DT", TipoProcesoXCuenta)); ListaLinea4CL.AddRange(consultarEstructuraAsobancaria("4CL", TipoProcesoXCuenta)); ListaLinea5CA.AddRange(consultarEstructuraAsobancaria("5CA", TipoProcesoXCuenta)); //SE CREA EL NOMBRE DEL ARCHIVO SEGUN LOS PARAMETROS ASOBANCARIA nombreArchivo = String.Concat(IdCuentaBanco, "_", DateTime.Now.ToString("ddMMyyyy"), "_", writeMilitaryTime(DateTime.Now), ".txt"); sw = new StreamWriter(Directorio + nombreArchivo, false); ArrayList line1EA = new ArrayList() { "1EA", CodigoBanco }; //ARREGLO LLEVA EL CODIGO DE TRANSITO QUE CAMBIA PARA CADA BANCO ArrayList line2EL = new ArrayList() { "2EL" }; ArrayList line3DT = new ArrayList(); //ARREGLO LLEVA EL CONTRATO,VALOR,FECHA VENCIMIENTO,IDENTIFICACION Y CODIGO DE TRANSITO ArrayList line4CL = new ArrayList() { "4CL" }; //ARREGLO LLEVA EL TOTAL DEL REGISTRO DEL LOTE Y EL TOTAL DEL VALOR DE SERVICIO ArrayList line5CA = new ArrayList() { "5CA" }; //ARREGLO LLEVA EL TOTAL DEL VALOR DE SERVICIO Fecha = Convert.ToString(DateTime.Now.ToString("dd/MM/yyyy")); //SE ADICIONA UN CONSECUTIVO SEGUN EL NUMERO DE ARCHIVO QUE EXISTAN DEL MISMO DIA int numColumnas = 0; HistorialArchivosSalidaLN columnas = new HistorialArchivosSalidaLN(); numColumnas = columnas.consultarConsecutivoXBanco(IdCuentaBanco, TipoProcesoXCuenta, Fecha).Rows.Count; if (numColumnas == 0) { ConsecutivoArchivo = "A"; } else { ConsecutivoArchivo = consecutivo(numColumnas); } #region Armar Linea Encabezado Archivo line1EA.Add(ConsecutivoArchivo); LineaArmada1EA = armarLineas(line1EA, ListaLinea1EA); sw.WriteLine(LineaArmada1EA); llenarTablaParaActualizados(Fecha, IdCuentaBanco, ConsecutivoArchivo, LineaArmada1EA); registrosLote += 1; #endregion #region Armar Linea Encabezado Lote LineaArmada2EL = armarLineas(line2EL, ListaLinea2EL); sw.WriteLine(LineaArmada2EL); llenarTablaParaActualizados(Fecha, IdCuentaBanco, ConsecutivoArchivo, LineaArmada2EL); registrosLote += 1; #endregion #region Armar Linea Detalle foreach (DataRow renglon in tabla.Tables[0].Rows) { line3DT.Add("3DT"); line3DT.Add(renglon[0].ToString().Trim());//CONTRATO if (renglon[1].ToString().Contains(".")) { line3DT.Add(renglon[1].ToString().Replace(".", ",").Trim());//VALOR SERVICIO PRINCIPAL } else { line3DT.Add(renglon[1].ToString().Trim());//VALOR SERVICIO PRINCIPAL } line3DT.Add(renglon[2].ToString().Trim()); line3DT.Add(renglon[3].ToString().Trim()); line3DT.Add(CodigoBanco); LineaArmada3DT = armarLineas(line3DT, ListaLinea3DT); sw.WriteLine(LineaArmada3DT); llenarTablaParaActualizados(Fecha, IdCuentaBanco, ConsecutivoArchivo, LineaArmada3DT); line3DT.Clear(); registrosLote += 1; if (renglon[1].ToString().Contains(".")) { valorServicio += Convert.ToDouble(renglon[1].ToString().Replace(".", ",").Trim()); } else { valorServicio += Convert.ToDouble(renglon[1].ToString().Trim()); } LineaArmada3DT = String.Empty; } #endregion #region Armar Linea Control Lote line4CL.Add(registrosLote - 2); line4CL.Add(valorServicio); LineaArmada4CL = armarLineas(line4CL, ListaLinea4CL); sw.WriteLine(LineaArmada4CL); llenarTablaParaActualizados(Fecha, IdCuentaBanco, ConsecutivoArchivo, LineaArmada4CL); registrosLote += 1; #endregion #region Armar Linea Control Archivo line5CA.Add(valorServicio); LineaArmada5CA = armarLineas(line5CA, ListaLinea5CA); sw.WriteLine(LineaArmada5CA); llenarTablaParaActualizados(Fecha, IdCuentaBanco, ConsecutivoArchivo, LineaArmada5CA); registrosLote += 1; #endregion sw.Close(); } catch { sw.Close(); File.Delete(Directorio + nombreArchivo); throw new System.Exception("Ocurrio un error al crear archivo plano"); } }