public override HeaderRetorno LerHeaderRetornoCNAB400(string registro) { try { HeaderRetorno header = new HeaderRetorno(registro); header.TipoRegistro = Utils.ToInt32(registro.Substring(000, 1)); header.CodigoRetorno = Utils.ToInt32(registro.Substring(001, 1)); header.LiteralRetorno = registro.Substring(002, 7); header.CodigoServico = Utils.ToInt32(registro.Substring(009, 2)); header.LiteralServico = registro.Substring(011, 8); header.Agencia = Utils.ToInt32(registro.Substring(026, 5)); header.Conta = Utils.ToInt32(registro.Substring(031, 8)); header.DACConta = Utils.ToInt32(registro.Substring(038, 1)); header.NomeEmpresa = registro.Substring(046, 30); header.CodigoBanco = Utils.ToInt32(registro.Substring(076, 3)); header.NomeBanco = registro.Substring(079, 15); header.DataGeracao = Utils.ToDateTime(Utils.ToInt32(registro.Substring(094, 6)).ToString("##-##-##")); header.NumeroSequencialArquivoRetorno = Utils.ToInt32(registro.Substring(391, 5)); header.NumeroSequencial = Utils.ToInt32(registro.Substring(394, 6)); return(header); } catch (Exception ex) { throw new Exception("Erro ao ler header do arquivo de RETORNO / CNAB 400.", ex); } }
public override void LerArquivoRetorno(IBanco banco, Stream arquivo) { try { StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8); // Identificação do registro detalhe List <string> IdsRegistroDetalhe = new List <string>(); // Lendo o arquivo string linha = stream.ReadLine(); this.HeaderRetorno = banco.LerHeaderRetornoCNAB400(linha); // Próxima linha (DETALHE) linha = stream.ReadLine(); //tem arquivo de retorno que possui somente cabeçalho if (linha != null) { switch (banco.Codigo) { // 85 - CECRED - Código de registro detalhe 7 para CECRED case (int)Bancos.CECRED: IdsRegistroDetalhe.Add("7"); break; // 1 - Banco do Brasil- Código de registro detalhe 7 para convênios com 7 posições, e detalhe 1 para convênios com 6 posições(colocado as duas, pois não interferem em cada tipo de arquivo) case (int)Bancos.BancoBrasil: IdsRegistroDetalhe.Add("1"); //Para convênios de 6 posições IdsRegistroDetalhe.Add("7"); //Para convênios de 7 posições break; default: IdsRegistroDetalhe.Add("1"); break; } while (linha != null) { if (IdsRegistroDetalhe.Contains(DetalheRetorno.PrimeiroCaracter(linha))) { DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha); ListaDetalhe.Add(detalhe); OnLinhaLida(detalhe, linha); } linha = stream.ReadLine(); } } //TODO: Tratar Triller. stream.Close(); } catch (Exception ex) { throw new Exception("Erro ao ler arquivo.", ex); } }
public override void LerArquivoRetorno(IBanco banco, Stream arquivo) { try { StreamReader stream = new StreamReader(arquivo, System.Text.Encoding.UTF8); string linha = ""; // Identificação do registro detalhe List <string> IdsRegistroDetalhe = new List <string>(); // Lendo o arquivo linha = stream.ReadLine(); this.HeaderRetorno = banco.LerHeaderRetornoCNAB400(linha); // Próxima linha (DETALHE) linha = stream.ReadLine(); // 85 - CECRED - Código de registro detalhe 7 para CECRED // 1 - Banco do Brasil- Código de registro detalhe 7 para convênios com 7 posições, e detalhe 1 para convênios com 6 posições(colocado as duas, pois não interferem em cada tipo de arquivo) if (banco.Codigo == 85) { IdsRegistroDetalhe.Add("7"); } else if (banco.Codigo == 1) { IdsRegistroDetalhe.Add("1"); //Para convênios de 6 posições IdsRegistroDetalhe.Add("7"); //Para convênios de 7 posições } else { IdsRegistroDetalhe.Add("1"); } while (IdsRegistroDetalhe.Contains(DetalheRetorno.PrimeiroCaracter(linha))) { DetalheRetorno detalhe = banco.LerDetalheRetornoCNAB400(linha); ListaDetalhe.Add(detalhe); OnLinhaLida(detalhe, linha); linha = stream.ReadLine(); } stream.Close(); } catch (Exception ex) { throw new Exception("Erro ao ler arquivo.", ex); } }