Esempio n. 1
0
        private void InterpretarLinea(string pTipoRegistro, string pCadena, Statement pLinea, string pNumCuenta, int pIdArchivo, int pIdMovimiento)
        {
            StatementWriter cs        = new StatementWriter();
            DataTable       resultado = new DataTable();

            if (pCadena.Length >= pLinea.Fin - pLinea.Inicio)
            {
                List <StatementDetail> lstDetalle = cs.ObtenerDetallePosiciones(pTipoRegistro);
                StringBuilder          Valores    = new StringBuilder();
                string cadenaAux   = string.Empty;
                int    posicionAux = 0;
                foreach (StatementDetail detalle in lstDetalle)
                {
                    cadenaAux = pCadena.Substring(posicionAux, detalle.Longitud);
                    cadenaAux = cadenaAux.Replace(" ", "¬");
                    cadenaAux = cadenaAux.Replace("&", "&amp;");
                    Valores.Append(cadenaAux);
                    Valores.Append("|");
                    posicionAux += detalle.Longitud;
                }
                if (Valores.ToString().EndsWith("|"))
                {
                    Valores.Remove(Valores.Length - 1, 1);
                }
                //Insertar en tabla
                resultado = cs.InsertarDetalle(pIdArchivo, pIdMovimiento, pTipoRegistro, Valores.ToString());
                if (resultado != null && resultado.Rows.Count > 0)
                {
                    //resultado.Rows[0][""].ToString();
                }
            }
            else
            {
                //Insertar en log de errores
            }
        }
Esempio n. 2
0
        private int InterpretarEncabezado(string pNombreArchivo, int pNumLineasArchivo, string pTipoRegistro, string pCadena, Statement pEncabezado)
        {
            CultureInfo   ci                = new CultureInfo("es-MX");
            int           idArchivo         = 0;
            List <string> lstRuta           = pNombreArchivo.Split('\\').ToList <string>();
            List <string> lstNombreSeparado = lstRuta[lstRuta.Count - 1].Split('_').ToList <string>();
            List <string> lstNombre         = lstNombreSeparado[lstNombreSeparado.Count - 1].Split('.').ToList <string>();
            string        fechaArchivo112   = lstNombre[0];
            DateTime      fechaArchivo;

            DateTime.TryParseExact(fechaArchivo112, "yyyyMMdd", ci, DateTimeStyles.None, out fechaArchivo);
            short Anno = 0;
            short Mes  = 0;

            short.TryParse(fechaArchivo.Year.ToString(), out Anno);
            short.TryParse(fechaArchivo.Month.ToString(), out Mes);
            StatementWriter cs = new StatementWriter();

            if (pCadena.Length >= pEncabezado.Fin - pEncabezado.Inicio)
            {
                List <StatementDetail> lstDetalle = cs.ObtenerDetallePosiciones(pTipoRegistro);
                StringBuilder          Valores    = new StringBuilder();
                string cadenaAux               = string.Empty;
                int    posicionAux             = 0;
                string TipoRegistro            = string.Empty;
                string FechaProceso            = string.Empty;
                string NumeroSecuencialArchivo = string.Empty;
                string CodigoProducto          = string.Empty;
                string DescripcionProducto     = string.Empty;
                foreach (StatementDetail detalle in lstDetalle)
                {
                    cadenaAux = pCadena.Substring(posicionAux, detalle.Longitud);
                    cadenaAux = cadenaAux.Replace(" ", "¬");
                    cadenaAux = cadenaAux.Replace("&", "&amp;");
                    switch (detalle.Posicion)
                    {
                    case 1:
                        TipoRegistro = cadenaAux;
                        break;

                    case 2:
                        FechaProceso = cadenaAux;
                        break;

                    case 3:
                        NumeroSecuencialArchivo = cadenaAux;
                        break;

                    case 4:
                        CodigoProducto = cadenaAux;
                        break;

                    case 5:
                        DescripcionProducto = cadenaAux;
                        break;

                    default:
                        break;
                    }
                    posicionAux += detalle.Longitud;
                }
                //Insertar en tabla
                DataTable dt = cs.InsertarEncabezado(false, 0, lstRuta[lstRuta.Count - 1], 0, 0, Anno, Mes, TipoRegistro, FechaProceso, NumeroSecuencialArchivo, CodigoProducto, DescripcionProducto);
                if (dt != null && dt.Rows.Count > 0)
                {
                    int.TryParse(dt.Rows[0]["IdArchivo"].ToString(), out idArchivo);
                }
            }
            else
            {
                //Insertar en log de errores
            }
            return(idArchivo);
        }