Beispiel #1
0
        //SE GUARDA TODAS LAS LINEAS DEL ARCHIVO PAGOS ONLINE EN LA BASE DE DATOS
        private void guardarLineas(String fecha, String fechaTransaccion, String IdCuentaBancoEpicor, String Consecutivo, String Linea)
        {
            int valor = 0;
            HistorialArchivosEntrada   objEntidad = new HistorialArchivosEntrada();
            HistorialArchivosEntradaLN objHA      = new HistorialArchivosEntradaLN();

            objEntidad.pFecha            = fecha;
            objEntidad.pFechaTransaccion = fechaTransaccion;
            objEntidad.pIdCuentaBanco    = IdCuentaBancoEpicor;
            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");
            }
        }
Beispiel #2
0
        //SE CREA EL ARCHIVO PAGOS ONLINE
        private void escribirArchivo(String CodigoBanco, String IdCuentaBancoEpicor,
                                     String NumCuenta, String TipoCuenta, DataSet tabla, int Limite)
        {
            Double valorServicio = 0;

            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(consultarEstructuraPagosOnline("1EA", TipoProcesoXCuenta));
                ListaLinea2EL.AddRange(consultarEstructuraPagosOnline("2EL", TipoProcesoXCuenta));
                ListaLinea3DT.AddRange(consultarEstructuraPagosOnline("3DT", TipoProcesoXCuenta));
                ListaLinea4CL.AddRange(consultarEstructuraPagosOnline("4CL", TipoProcesoXCuenta));
                ListaLinea5CA.AddRange(consultarEstructuraPagosOnline("5CA", TipoProcesoXCuenta));

                DateTime Contrato = Convert.ToDateTime(tabla.Tables[0].Rows[ciclo].ItemArray[3].ToString());
                //SE CREA EL NOMBRE DEL ARCHIVO SEGUN LOS PARAMETROS PAGOS ONLINE
                nombreArchivo = String.Concat(IdCuentaBancoEpicor, "_", DateTime.Now.ToString("ddMMyyyy"), "_PO", Contrato.ToString("ddMMyyyy"),
                                              "_", writeMilitaryTime(DateTime.Now), ".txt");

                sw = new StreamWriter(Directorio + nombreArchivo, false);
                ArrayList line1EA = new ArrayList()
                {
                    "1EA", tabla.Tables[0].Rows[ciclo].ItemArray[3].ToString(),
                    CodigoBanco, NumCuenta, TipoCuenta
                };                                                                       //ARREGLO QUE LLEVA LA FECHA DE TRANSACCION, CODIGO DE TRANSITO,
                //NUMERO DE CUENTA, TIPO DE CUENTA Y CONSECUTIVO DEL ARCHIVO.
                ArrayList line2EL = new ArrayList()
                {
                    "2EL"
                };
                ArrayList line3DT = new ArrayList(); //ARREGLO LLEVA EL CONTRATO,VALOR
                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 REGISTRO DEL LOTE Y 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;
                HistorialArchivosEntradaLN columnas = new HistorialArchivosEntradaLN();
                numColumnas = columnas.consultarConsecutivoXBanco(IdCuentaBancoEpicor, TipoProcesoXCuenta, Fecha, Contrato.ToString("dd/MM/yyyy")).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, Contrato.ToString("dd/MM/yyyy"), IdCuentaBancoEpicor, ConsecutivoArchivo, LineaArmada1EA);
                registrosLote += 1;

                #endregion

                #region Armar Linea Encabezado Lote

                LineaArmada2EL = armarLineas(line2EL, ListaLinea2EL);
                sw.WriteLine(LineaArmada2EL);
                llenarTablaParaActualizados(Fecha, Contrato.ToString("dd/MM/yyyy"), IdCuentaBancoEpicor, ConsecutivoArchivo, LineaArmada2EL);
                registrosLote += 1;

                #endregion

                #region Armar Linea Detalle

                for (int i = ciclo; i < ciclo + Limite; i++)
                {
                    line3DT.Add("3DT");
                    if (String.IsNullOrEmpty(tabla.Tables[0].Rows[i].ItemArray[4].ToString().Trim()))
                    {
                        line3DT.Add(tabla.Tables[0].Rows[i].ItemArray[0].ToString().Trim());//CONTRATO
                    }
                    else
                    {
                        line3DT.Add(tabla.Tables[0].Rows[i].ItemArray[4].ToString().Trim());//CONTRATO
                    }
                    if (tabla.Tables[0].Rows[i].ItemArray[2].ToString().Contains("."))
                    {
                        line3DT.Add(tabla.Tables[0].Rows[i].ItemArray[2].ToString().Replace(".", ",").Trim());//SERVICIO PRINCIPAL    (MRT Valor?)
                    }
                    else
                    {
                        line3DT.Add(tabla.Tables[0].Rows[i].ItemArray[2].ToString().Trim());//SERVICIO PRINCIPAL
                    }

                    //Tarjeta Credito

                    if (String.IsNullOrEmpty(tabla.Tables[0].Rows[i].ItemArray[5].ToString().Trim()))
                    {
                    }
                    //Nada
                    else
                    {
                        line3DT.Add(tabla.Tables[0].Rows[i].ItemArray[5].ToString().Trim());//Medio Pago Aplica Sico
                    }

                    if (String.IsNullOrEmpty(tabla.Tables[0].Rows[i].ItemArray[6].ToString().Trim()))
                    {
                    }
                    //Nada
                    else
                    {
                        line3DT.Add(tabla.Tables[0].Rows[i].ItemArray[6].ToString().Trim());//Medio Pago Aplica Ventas
                    }

                    if (String.IsNullOrEmpty(tabla.Tables[0].Rows[i].ItemArray[7].ToString().Trim()))
                    {
                    }
                    //Nada
                    else
                    {
                        line3DT.Add(tabla.Tables[0].Rows[i].ItemArray[7].ToString().Trim());//Codigo Autorizacion
                    }
//---------------------------------

                    LineaArmada3DT = armarLineas(line3DT, ListaLinea3DT);
                    sw.WriteLine(LineaArmada3DT);
                    llenarTablaParaActualizados(Fecha, Contrato.ToString("dd/MM/yyyy"), IdCuentaBancoEpicor, ConsecutivoArchivo, LineaArmada3DT);
                    line3DT.Clear();
                    registrosLote += 1;

                    if (tabla.Tables[0].Rows[i].ItemArray[2].ToString().Contains("."))
                    {
                        valorServicio += Convert.ToDouble(tabla.Tables[0].Rows[i].ItemArray[2].ToString().Replace(".", ",").Trim());
                    }
                    else
                    {
                        valorServicio += Convert.ToDouble(tabla.Tables[0].Rows[i].ItemArray[2].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, Contrato.ToString("dd/MM/yyyy"), IdCuentaBancoEpicor, ConsecutivoArchivo, LineaArmada4CL);
                registrosLote += 1;

                #endregion

                #region Armar Linea Control Archivo

                line5CA.Add(registrosLote - 3);
                line5CA.Add(valorServicio);
                LineaArmada5CA = armarLineas(line5CA, ListaLinea5CA);
                sw.WriteLine(LineaArmada5CA);
                llenarTablaParaActualizados(Fecha, Contrato.ToString("dd/MM/yyyy"), IdCuentaBancoEpicor, ConsecutivoArchivo, LineaArmada5CA);
                registrosLote += 1;

                #endregion

                sw.Close();

                //AQUI

                // Invocar servicio BancoDtlArchivosProcesados pagos
            }
            catch
            {
                sw.Close();
                File.Delete(Directorio + nombreArchivo);
                throw new System.Exception("Ocurrio un error al crear archivo plano");
            }
        }