public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { List <string> listaRetornar = new List <string>(); var numeroRegistro = 1; listaRetornar.Add(EscreverHeader(remessaEscrever.Header, numeroRegistro)); foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { numeroRegistro++; listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar, numeroRegistro) }); if (detalheAdicionar.Instrucoes.Count > 0) { numeroRegistro++; listaRetornar.AddRange(new[] { EscreverMensagemVariavelReciboSacado(detalheAdicionar, numeroRegistro) }); } if (detalheAdicionar.Instrucoes.Count > 1) { listaRetornar.AddRange(new[] { EscreverMensagemVariavelFichaCompensacao(detalheAdicionar, ref numeroRegistro) }); } } numeroRegistro++; listaRetornar.Add(EscreverTrailer(remessaEscrever.Trailer, numeroRegistro)); return(listaRetornar); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { List <string> listaRetornar = new List <string>(); listaRetornar.Add(EscreverHeader(remessaEscrever.Header)); var sequencia = 2; foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar, sequencia) }); sequencia++; /* REGISTRO TIPO 2 (MENSAGENS )*/ if (detalheAdicionar.Instrucoes != null && detalheAdicionar.Instrucoes.Count > 0) { listaRetornar.AddRange(new[] { EscreverMensagemTipo2(detalheAdicionar, sequencia) }); sequencia++; } } listaRetornar.Add(EscreverTrailer(remessaEscrever.Trailer, sequencia)); return(listaRetornar); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { var numeroSequencialRegistro = 1; var listaRetornar = new List <string> { EscreverHeader(remessaEscrever.Header, remessaEscrever.Header.NumeroSequencialRemessa, numeroSequencialRegistro) }; numeroSequencialRegistro++; foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar, numeroSequencialRegistro) }); /* VERIFICAR SE POSSUI MULTA */ if (detalheAdicionar.PercentualMulta > 0) { numeroSequencialRegistro++; listaRetornar.AddRange(new[] { EscreverDetalheTipo5(detalheAdicionar, numeroSequencialRegistro) }); } numeroSequencialRegistro++; } listaRetornar.Add(EscreverTrailer(remessaEscrever.Trailer, numeroSequencialRegistro)); return(listaRetornar); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { List <string> listaRetornar = new List <string>(); listaRetornar.Add(EscreverHeader(remessaEscrever.Header)); var sequencial = 2; foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar, sequencial) }); sequencial++; /* VERIFICAR SE EXISTE MULTA, CASO SIM ESCREVER REGISTRO PARA MULTA */ if (detalheAdicionar.PercentualMulta > 0) { listaRetornar.Add(EscreverRegistroMulta(detalheAdicionar, sequencial)); sequencial++; } } listaRetornar.Add(EscreverTrailer(remessaEscrever.Trailer, sequencial)); return(listaRetornar); }
public void GerarHeaderArquivoRemessaBradescoCnab400() { var banco = Fabricas.BancoFactory.ObterBanco("237", "2"); var contaBancariaCedente = new ContaBancaria("0534", "7", "2801", "0"); var cedente = new Cedente("4879962", 0, "99.999.999/9999-99", "Razão Social X", contaBancariaCedente, null); var sacado = new Sacado("Sacado Fulano de Tal", "999.999.999-99", new Endereco() { TipoLogradouro = "R", Logradouro = "1", Bairro = "Bairro X", Cidade = "Cidade X", SiglaUf = "XX", Cep = "12345-000", Complemento = "Comp X", Numero = "9" }); var carteira = new CarteiraCobranca { Codigo = "02", BancoEmiteBoleto = false }; var boleto = new Boleto(carteira, cedente, sacado, null) { NumeroDocumento = "55617", ValorBoleto = Convert.ToDecimal(501.81), IdentificadorInternoBoleto = "55617", DataVencimento = new DateTime(2016, 11, 25), Moeda = "9", BancoBoleto = banco }; banco.FormatarBoleto(boleto); var remessa = new RemessaCnab400 { Header = new HeaderRemessaCnab400(boleto, 1, 1), RegistrosDetalhe = new List <DetalheRemessaCnab400>(), Trailer = new TrailerRemessaCnab400(boleto.ValorBoleto, 1) }; var escritor = EscritorArquivoRemessaFactory.ObterEscritorRemessa(remessa); var detalhe = new DetalheRemessaCnab400(boleto, 2); remessa.RegistrosDetalhe.Add(detalhe); var fabricaRemessa = new RemessaFactory(); var remessaPronta = fabricaRemessa.GerarRemessa(remessa.Header, new List <Boleto>() { boleto }, remessa.RegistrosDetalhe, remessa.Trailer); var linhasEscrever = escritor.EscreverTexto(remessaPronta); const string header = "01REMESSA01COBRANCA 00000000000004879962HOT BEACH SUITES OLIMPIA - EMP237BRADESCO 251116 MX0000002 000001"; Assert.AreEqual(header, remessaPronta.Header); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { List <string> listaRetornar = new List <string>(); listaRetornar.Add(EscreverHeader(remessaEscrever.Header)); foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar) }); } listaRetornar.Add(EscreverTrailer(remessaEscrever.Trailer)); return(listaRetornar); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { List <string> listaRetornar = new List <string>(); listaRetornar.Add(EscreverHeader(remessaEscrever.Header)); var sequencial = 2; var codCedente = remessaEscrever.Header.ContaCorrente; foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar, sequencial) }); sequencial++; } listaRetornar.Add(EscreverTrailer(remessaEscrever.Trailer, sequencial, codCedente)); return(listaRetornar); }
public RemessaCnab400 GerarRemessa(HeaderRemessaCnab400 header, List <Boleto> boletos, List <DetalheRemessaCnab400> detalhes, TrailerRemessaCnab400 trailer) { //var contadorSequencialRegistro = 1; var objReturn = new RemessaCnab400(); objReturn.RegistrosDetalhe = new List <DetalheRemessaCnab400>(); objReturn.Header = header; foreach (var detalhe in detalhes) { objReturn.RegistrosDetalhe.Add(detalhe); //objReturn.AdicionarBoleto(boletoAddRemessa, contadorSequencialRegistro); //contadorSequencialRegistro++; } objReturn.Trailer = trailer; return(objReturn); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { List <string> listaRetornar = new List <string>(); listaRetornar.Add(EscreverHeader(remessaEscrever.Header)); var sequencia = 2; foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar, sequencia, remessaEscrever.Header.NumeroSequencialRemessa) }); sequencia++; } listaRetornar.Add(EscreverTrailer(remessaEscrever.Trailer, sequencia, remessaEscrever.RegistrosDetalhe.Count, remessaEscrever.Header.NumeroSequencialRemessa)); return(listaRetornar); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { var listaRetornar = new List <string> { EscreverHeader(remessaEscrever.Header) }; foreach (var detalheAdicionar in remessaEscrever.RegistrosDetalhe) { listaRetornar.AddRange(new[] { EscreverDetalhe(detalheAdicionar) }); } if (listaRetornar.Count > 0) { listaRetornar[0] = listaRetornar[0].PreencherValorNaLinha(34, 39, listaRetornar.Count.ToString().PadLeft(6, '0')); } listaRetornar.Add(Environment.NewLine); return(listaRetornar); }
public EscritorRemessaCnab400Safra(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public EscritorRemessaCnab400Daycoval(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public static IEscritorArquivoRemessaCnab400 ObterEscritorRemessa(RemessaCnab400 remessaEscrever) { try { switch (remessaEscrever.Header.CodigoBanco.PadLeft(3, '0')) { /* 001 - Banco do Brasil */ case "001": return(new Bancos.Brasil.EscritorRemessaCnab400BancoDoBrasil(remessaEscrever)); break; /* 003 - Banco da Amazônia */ case "003": throw new NotImplementedException("Banco " + remessaEscrever.Header.CodigoBanco + " ainda não foi implementado."); break; case "033": return(new Bancos.Santander.EscritorRemessaCnab400Santander(remessaEscrever)); /* 104 - Caixa */ case "104": throw new NotImplementedException("Banco " + remessaEscrever.Header.CodigoBanco + " ainda não foi implementado."); break; /* 237 - Bradesco */ case "237": return(new Bancos.Bradesco.EscritorRemessaCnab400Bradesco(remessaEscrever)); break; /* 341 - Itaú */ case "341": return(new Bancos.Itau.EscritorRemessaCnab400Itau(remessaEscrever)); break; /* 399 - HSBC */ case "399": return(new Bancos.Hsbc.EscritorRemessaCnab400Hsbc(remessaEscrever)); break; /* 070 - BRB */ case "070": return(new Bancos.BRB.EscritorRemessaCnab400BRB(remessaEscrever)); break; /* 756 - SICOOB */ case "756": return(new Bancos.Sicoob.EscritorRemessaCnab400Sicoob(remessaEscrever)); break; /* 422 - SAFRA */ case "422": return(new Bancos.Safra.EscritorRemessaCnab400Safra(remessaEscrever)); /* 707 - BANCO DAYCOVAL */ case "707": return(new Bancos.Daycoval.EscritorRemessaCnab400Daycoval(remessaEscrever)); default: throw new NotImplementedException("Banco " + remessaEscrever.Header.CodigoBanco + " ainda não foi implementado."); } } catch (Exception ex) { throw new Exception("Erro durante a execução da transação.", ex); } }
public EscritorRemessaCnab400Sicoob(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public EscritorRemessaCnab400BancoDoBrasil(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public RemessaCnab400 GerarArquivoRemessaCnab400(RemessaCnab400 remessaCnab400, List <Boleto> boletos) { throw new NotImplementedException(); }
public void TestGerarHeaderArquivoRemessaBRBCnab400() { var dadosRemessa = new Remessa(Remessa.EnumTipoAmbiemte.Homologacao, EnumCodigoOcorrenciaRemessa.Registro, ""); var banco = Fabricas.BancoFactory.ObterBanco("070"); var contaBancariaCedente = new ContaBancaria("201", "", "29088", "1"); var cedente = new Cedente("99999", 0, "99.999.999/9999-99", "Razão Social X", contaBancariaCedente, null); var sacado = new Sacado("Sacado Fulano de Tal", "99.999.999/9999-99", new Endereco() { TipoLogradouro = "R", Logradouro = "1", Bairro = "Bairro X", Cidade = "Cidade X", SiglaUf = "XX", Cep = "12345-000", Complemento = "Comp X", Numero = "9" }); var carteira = new CarteiraCobranca { Codigo = "1", Tipo = "1" }; var boleto = new Boleto(carteira, cedente, sacado, dadosRemessa) { NumeroDocumento = "279141", ValorBoleto = Convert.ToDecimal(222.75), IdentificadorInternoBoleto = "279141", DataVencimento = new DateTime(2015, 03, 16), Especie = banco.ObtemEspecieDocumento(EnumEspecieDocumento.Diversos), CodigoOcorrenciaRemessa = new CodigoOcorrencia(01), BancoBoleto = banco, TipoCobrancaJuro = TipoCobrancaJuro.JurosDiario }; banco.FormatarBoleto(boleto); var remessa = new RemessaCnab400(); remessa.Header = new HeaderRemessaCnab400(boleto, 1, 1, DateTime.Now); var detalheIndividual = new DetalheRemessaCnab400(boleto, 1); remessa.RegistrosDetalhe = new List <DetalheRemessaCnab400> { detalheIndividual }; var escritor = new EscritorRemessaCnab400BRB(remessa); var linhasEscrever = escritor.EscreverTexto(remessa); var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); var data = String.Format("{0}_{1}", DateTime.Now.ToString("ddMMyyyy"), DateTime.Now.ToString("HHmmss")); var nomeArquivo = string.Format("{0}{1}{2}{3}", banco.CodigoBanco, @"_REMESSA_", data, ".txt"); var arquivo = new System.IO.StreamWriter(path + @"\" + nomeArquivo, true); foreach (var linha in linhasEscrever) { arquivo.WriteLine(linha); } arquivo.Close(); }
public EscritorRemessaCnab400Banrisul(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public void TestGerarDetalheArquivoRemessaBancoBrasilCnab400() { var remessa = new Remessa(Remessa.EnumTipoAmbiemte.Homologacao, EnumCodigoOcorrenciaRemessa.Registro, "2"); var banco = Fabricas.BancoFactory.ObterBanco("001", "9"); var contaBancariaCedente = new ContaBancaria("2374", "4", "0165199", "4"); var cedente = new Cedente("9999999", "000123", 0, "99.999.999/9999-99", "Razão Social X", contaBancariaCedente, null); var sacado = new Sacado("Sacado Fulano de Tal", "999.999.999-99", new Endereco() { TipoLogradouro = "R", Logradouro = "1", Bairro = "Bairro X", Cidade = "Cidade X", SiglaUf = "XX", Cep = "12345-000", Complemento = "Comp X", Numero = "9" }); var carteira = new CarteiraCobranca { Codigo = "16" }; var boleto = new Boleto(carteira, cedente, sacado, remessa) { NumeroDocumento = "1", ValorBoleto = Convert.ToDecimal(221.40), IdentificadorInternoBoleto = "1", DataVencimento = new DateTime(2014, 07, 10), Especie = banco.ObtemEspecieDocumento(EnumEspecieDocumento.DuplicataMercantil), TipoModalidade = "21", CodigoOcorrenciaRemessa = new CodigoOcorrencia(01), BancoBoleto = banco }; banco.FormatarBoleto(boleto); var remessaEscrever = new RemessaCnab400(); remessaEscrever.Header = new HeaderRemessaCnab400(boleto, 1, 1, DateTime.Now); var detalheIndividual = new DetalheRemessaCnab400(boleto, 1); remessaEscrever.RegistrosDetalhe = new List <DetalheRemessaCnab400> { detalheIndividual }; var escritor = new EscritorRemessaCnab400BancoDoBrasil(remessaEscrever); var linhasEscrever = escritor.EscreverTexto(remessaEscrever); //const int numeroRegistro = 1; //var escritor = new EscritorRemessaCnab400BancoDoBrasil(); //var linhasEscrever = escritor.EscreverDetalhe(boleto, numeroRegistro); //var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //var data = DateTime.Now.ToString("ddMMyyyy"); //var nomeArquivo = string.Format("{0}{1}{2}{3}{4}{5}{6}", banco.CodigoBanco, "-", banco.NomeBanco, "_", data, @"_REGISTRO_DETALHE", ".txt"); //var arquivo = new System.IO.StreamWriter(path + @"\" + nomeArquivo, true); //arquivo.WriteLine(linhasEscrever); //arquivo.Close(); }
public EscritorRemessaCnab400Banestes(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public static string GerarArquivoRemessa(CarteiraBoleto carteiraBoleto, SacadoBoleto sacado, decimal valor, DateTime dataVencimento, string numeroDocumento) { try { var listaBoletoBrRemessa = new List <Boleto>(); var sequenciaRemessaCarteiraBoleto = 1; try { // Transforma boletos e adiciona lançamentos na lista listaBoletoBrRemessa.Add(TransformaDeFormatoBoletoParaFormatoBoletoBr(carteiraBoleto, sacado, valor, dataVencimento, numeroDocumento)); } catch (Exception ex) { throw ex; } #region Validações (Banco e Carteira) /* Garantir que todos os boletos pertencem a mesmo banco e carteira de boleto */ var bancosEncontrados = listaBoletoBrRemessa.GroupBy(gb => gb.BancoBoleto.CodigoBanco); if (bancosEncontrados.Count() > 1) { throw new Exception( "Há mais de 1 banco associado aos boletos que foram informados para geração de remessa."); } var carteirasCobrancaEncontradas = listaBoletoBrRemessa.GroupBy(gb => gb.CarteiraCobranca.Codigo); if (carteirasCobrancaEncontradas.Count() > 1) { throw new Exception( "Há mais de 1 tipo de carteira de cobrança associado aos boletos que foram informados para geração de remessa."); } if (listaBoletoBrRemessa.Any(qry => qry.DataVencimento.Date < DateTime.Now.Date)) { throw new Exception( "Há boletos com data de vencimento menor que a data atual. Impossível continuar."); } #endregion var carteiraCobrancaPadrao = listaBoletoBrRemessa.First().CarteiraCobranca; var boletoPadrao = listaBoletoBrRemessa.First(); var fabricaRemessa = new RemessaFactory(); #region #Criação do Diretório e Arquivo.REM var data = $"{DateTime.Now.ToString("ddMMyy")}"; var dataBradesco = $"{DateTime.Now.ToString("ddMM")}"; string nomeArquivo = null; // Se for BRADESCO formata nome do arquivo para CBDDMM??.REM if (boletoPadrao.BancoBoleto.CodigoBanco == "237") { nomeArquivo = $"{"CB"}{dataBradesco}{"TS"}{".REM"}"; } else { /* * C -> Cobrança * Data da geração em formato DDMMAA * G -> Geral */ nomeArquivo = $"{"C"}{data}{"G"}{".REM"}"; } var dir = Directory.CreateDirectory(Path.Combine( AppDomain.CurrentDomain.BaseDirectory, boletoPadrao.BancoBoleto.CodigoBanco)); var caminho = dir.FullName + "\\" + nomeArquivo; #endregion #region #Informações Essenciais /* Usado no Header do Arquivo * Cada arquivo enviado a CAIXA deverá conter um número único. */ // TODO: Criar tabela para controlar quantidade de arquivos remessa enviados ao banco. const int sequencialArquivo = 1; /* Usado no Header de Lote * Para cada remessa enviada deverá ser acrescido em 1, se a remessa for recusada a numeração não poderá ser aproveitada. */ // TODO: Criar tabela para controlar quantidade de arquivos remessa gerados. int sequencialRemessa = sequenciaRemessaCarteiraBoleto; /* Usado no Trailer de Lote * Conta a quantidade de itens na lista multiplica por 2 ( cada boleto terá um detalhe segmento P e um detalhe segmento Q ) e adiciona + 2 (Header do Lote e Trailer do Lote) */ // TODO: Atualmente só considera 1 lote de informações no arquivo. var qtdRegistrosNoLote = (listaBoletoBrRemessa.Count * 2) + 2; /* Usado no Trailer do Arquivo */ // TODO: Atualmente só gera 1 lote de informações no arquivo. const int qtdLotesArquivo = 1; // Conta a quantidade de itens na lista multiplica por 2 ( cada boleto terá um detalhe segmento P e um detalhe segmento Q ) e adiciona + 4 (Header do Arquivo, Header do Lote, Trailer do Lote e Trailer do Arquivo) var qtdRegistrosNoArquivoCnab240 = (listaBoletoBrRemessa.Count * 2) + 4; // Conta a quantidade de itens na lista e adiciona + 2 (Header do Arquivo + Trailer do Arquivo) var qtdRegistrosNoArquivoCnab400 = listaBoletoBrRemessa.Count(); qtdRegistrosNoArquivoCnab400 += 2; // Pega número de linhas de instruções de cada boleto // No caso do Bradesco desconsiderar a qtd de instruções // Itau desconsiderar // HSBC desconsiderar var qtdRegInstrucoes = 0; if (boletoPadrao.BancoBoleto.CodigoBanco != "237" && boletoPadrao.BancoBoleto.CodigoBanco != "341" && boletoPadrao.BancoBoleto.CodigoBanco != "399") { qtdRegInstrucoes += listaBoletoBrRemessa.Sum(boleto => boleto.InstrucoesDoBoleto.Count); } Boleto primeiroBoletoDaLista = listaBoletoBrRemessa.First(); #endregion #region CNAB240 // Gera Remessa Cnab240 if (carteiraCobrancaPadrao.Tipo == "CNAB240") { var remessa = new RemessaCnab240 { Header = new HeaderRemessaCnab240(primeiroBoletoDaLista, sequencialRemessa) }; var loteRemessa = new LoteRemessaCnab240 { HeaderLote = new HeaderLoteRemessaCnab240(primeiroBoletoDaLista, sequencialRemessa), TrailerLote = new TrailerLoteRemessaCnab240(qtdRegistrosNoLote) }; remessa.Trailer = new TrailerRemessaCnab240(qtdLotesArquivo, qtdRegistrosNoArquivoCnab240); var escritor = EscritorArquivoRemessaFactory.ObterEscritorRemessa(remessa); var remessaPronta = fabricaRemessa.GerarRemessa(remessa.Header, loteRemessa.HeaderLote, listaBoletoBrRemessa, loteRemessa.TrailerLote, remessa.Trailer); var linhasEscrever = escritor.EscreverTexto(remessaPronta); // Escreve em UTF-8 File.WriteAllLines(caminho, linhasEscrever.ToArray(), Encoding.GetEncoding(1252)); } #endregion #region CNAB400 // Gera Remessa Cnab400 if (carteiraCobrancaPadrao.Tipo == "CNAB400") { var remessa = new RemessaCnab400 { Header = new HeaderRemessaCnab400(primeiroBoletoDaLista, sequencialRemessa, 1), RegistrosDetalhe = new List <DetalheRemessaCnab400>(), Trailer = new TrailerRemessaCnab400(listaBoletoBrRemessa.Sum(s => s.ValorBoleto), qtdRegistrosNoArquivoCnab400 + qtdRegInstrucoes) }; var escritor = EscritorArquivoRemessaFactory.ObterEscritorRemessa(remessa); var sequencial = 2; DetalheRemessaCnab400 detalhe; foreach (var boletoRemessa400 in listaBoletoBrRemessa) { detalhe = new DetalheRemessaCnab400(boletoRemessa400, sequencial); remessa.RegistrosDetalhe.Add(detalhe); sequencial++; } var remessaPronta = fabricaRemessa.GerarRemessa(remessa.Header, listaBoletoBrRemessa, remessa.RegistrosDetalhe, remessa.Trailer); var linhasEscrever = escritor.EscreverTexto(remessaPronta); var linhasTratadasEscrever = new List <string>(); foreach (var linha in linhasEscrever) { /*/ * -> Codificação ASCII 8-bit (Estendido) * Encoding.GetEncoding(437) * * -> Codificação ASCII 7-bit * Encoding.GetEncoding(1252) * * /*/ if (boletoPadrao.BancoBoleto.CodigoBanco == "756") { var bytes = System.Text.Encoding.Default.GetBytes(linha); var linhaConvertida = System.Text.Encoding.Default.GetString(bytes); var linhaTratada = linhaConvertida; linhasTratadasEscrever.Add(linhaTratada); } else { var bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(linha); var linhaConvertida = System.Text.Encoding.UTF8.GetString(bytes); var linhaTratada = linhaConvertida; linhasTratadasEscrever.Add(linhaTratada); } } if (boletoPadrao.BancoBoleto.CodigoBanco == "756") { File.WriteAllLines(caminho, linhasTratadasEscrever, Encoding.Default); } else { File.WriteAllLines(caminho, linhasTratadasEscrever); } } #endregion return(caminho); } catch (Exception) { throw; } }
public EscritorRemessaCnab400Bradesco(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public void TestGerarHeaderArquivoRemessaDaycovalCnab400() { var dadosRemessa = new Remessa(Remessa.EnumTipoAmbiemte.Homologacao, EnumCodigoOcorrenciaRemessa.Registro, "2"); var banco = Fabricas.BancoFactory.ObterBanco("707", "2"); var contaBancariaCedente = new ContaBancaria("1001", "1", "2002", "1"); var cedente = new Cedente("", "190658906300", 0, "99.999.999/9999-99", "Razao Social X", contaBancariaCedente, null); var sacado = new Sacado("Sacado Fulano de Tal", "99.999.999/9999-99", new Endereco() { TipoLogradouro = "R", Logradouro = "1", Bairro = "Bairro X", Cidade = "Cidade X", SiglaUf = "XX", Cep = "12345-000", Complemento = "Comp X", Numero = "9" }); var carteira = new CarteiraCobranca { Codigo = "3" }; var boleto = new Boleto(carteira, cedente, sacado, dadosRemessa) { NumeroDocumento = "1001", ValorBoleto = Convert.ToDecimal(255), IdentificadorInternoBoleto = "1001", DataVencimento = new DateTime(2017, 10, 20), Especie = banco.ObtemEspecieDocumento(EnumEspecieDocumento.DuplicataMercantil), BancoBoleto = banco, CodigoOcorrenciaRemessa = new CodigoOcorrencia(01) }; banco.FormatarBoleto(boleto); var remessa = new RemessaCnab400(); remessa.Header = new HeaderRemessaCnab400(boleto, 1, 1); var detalheIndividual = new DetalheRemessaCnab400(boleto, 1); remessa.RegistrosDetalhe = new List <DetalheRemessaCnab400> { detalheIndividual }; remessa.Trailer = new TrailerRemessaCnab400(1, 1); var escritor = new EscritorRemessaCnab400Daycoval(remessa); var linhasEscrever = escritor.EscreverTexto(remessa); var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); var data = String.Format("{0}_{1}", DateTime.Now.ToString("ddMMyyyy"), DateTime.Now.ToString("HHmmss")); var nomeArquivo = string.Format("{0}{1}{2}{3}", banco.CodigoBanco, @"_REMESSA_", data, ".txt"); StringBuilder sb = new StringBuilder(); foreach (var linha in linhasEscrever) { sb.AppendLine(linha); } Assert.AreEqual(linhasEscrever[0], "01REMESSA01COBRANÇA 190658906300 Razao Social X 707BANCO DAYCOVAL 201017 000001"); }
public EscritorRemessaCnab400Unicred(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public EscritorRemessaCnab400Santander(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public void TestGerarArquivoRemessaSicrediCnab400() { var remessa = new Remessa(Remessa.EnumTipoAmbiemte.Homologacao, EnumCodigoOcorrenciaRemessa.Registro, "2"); var banco = Fabricas.BancoFactory.ObterBanco("748"); var contaBancariaCedente = new ContaBancaria("0136", "30", "00623", "9"); var cedente = new Cedente("12345", 0, "99.999.999/9999-99", "Razão Social X", contaBancariaCedente, null); var sacado = new Sacado("Sacado Fulano de Tal", "999.999.999-99", new Endereco() { TipoLogradouro = "R", Logradouro = "1", Bairro = "Bairro X", Cidade = "Cidade X", SiglaUf = "XX", Cep = "12345-000", Complemento = "Comp X", Numero = "9" }); var carteira = new CarteiraCobranca { Codigo = "1" }; var boleto = new Boleto(carteira, cedente, sacado, remessa) { NumeroDocumento = "14369", ValorBoleto = Convert.ToDecimal(337.00), IdentificadorInternoBoleto = "00003", DataVencimento = DateTime.Now.AddDays(10), CodigoDeTransmissao = "00200643279401300369", BancoBoleto = banco, CedenteBoleto = cedente, CarteiraCobranca = carteira, Especie = banco.ObtemEspecieDocumento(EnumEspecieDocumento.NotaPromissoria), Aceite = "S" }; banco.FormatarBoleto(boleto); var cnab400 = new RemessaCnab400() { Header = new HeaderRemessaCnab400(boleto, 1, 1), RegistrosDetalhe = new List <DetalheRemessaCnab400>() { new DetalheRemessaCnab400(boleto, 2) }, Trailer = new TrailerRemessaCnab400(12345, 3) }; var escritor = new EscritorRemessaCnab400Sicredi(cnab400); var linhasEscrever = escritor.EscreverTexto(cnab400); var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); var data = DateTime.Now.ToString("d").Replace("/", ""); var nomeArquivo = string.Format("{0}{1}{2}{3}{4}{5}{6}", banco.CodigoBanco, "-", banco.NomeBanco, "_", data, @"_REMESSA", ".txt"); var arquivo = new System.IO.StreamWriter(path + @"\" + nomeArquivo, true); arquivo.Write(string.Join(Environment.NewLine, linhasEscrever)); arquivo.Close(); }
public EscritorRemessaCnab400BRB(RemessaCnab400 remessaEscrever) { _remessaEscrever = remessaEscrever; }
public void TestGeracaoArquivoRemessa() { var dadosRemessa = new Remessa(Remessa.EnumTipoAmbiemte.Homologacao, EnumCodigoOcorrenciaRemessa.Registro, "2"); var banco = Fabricas.BancoFactory.ObterBanco("237", "2"); var contaBancariaCedente = new ContaBancaria("1234", "8", "12345", "6"); var cedente = new Cedente("99999", "1", 0, "99.999.999/9999-99", "Razao Social X", contaBancariaCedente, null); var sacado = new Sacado("Sacado Fulano de Tal", "99.999.999/9999-99", new Endereco() { TipoLogradouro = "R", Logradouro = "1", Bairro = "Bairro X", Cidade = "Cidade X", SiglaUf = "XX", Cep = "12345-000", Complemento = "Comp X", Numero = "9" }); var carteira = new CarteiraCobranca { Codigo = "06" }; var boleto = new Boleto(carteira, cedente, sacado, dadosRemessa) { NumeroDocumento = "3242", ValorBoleto = Convert.ToDecimal(275), IdentificadorInternoBoleto = "3242", DataVencimento = new DateTime(2014, 08, 04), Especie = banco.ObtemEspecieDocumento(EnumEspecieDocumento.DuplicataMercantil), BancoBoleto = banco }; banco.FormatarBoleto(boleto); var remessa = new RemessaCnab400(); remessa.Header = new HeaderRemessaCnab400(boleto, 1, 1); var detalheIndividual = new DetalheRemessaCnab400(boleto, 1); remessa.RegistrosDetalhe = new List <DetalheRemessaCnab400> { detalheIndividual }; remessa.Trailer = new TrailerRemessaCnab400(1, 1); var escritor = new EscritorRemessaCnab400Bradesco(remessa); var linhasEscrever = escritor.EscreverTexto(remessa); var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); var data = String.Format("{0}_{1}", DateTime.Now.ToString("ddMMyyyy"), DateTime.Now.ToString("HHmmss")); var nomeArquivo = string.Format("{0}{1}{2}{3}", banco.CodigoBanco, @"_REMESSA_", data, ".txt"); StringBuilder sb = new StringBuilder(); foreach (var linha in linhasEscrever) { sb.AppendLine(linha); } Assert.AreEqual(linhasEscrever[0], "01REMESSA01COBRANCA 00000000000000099999RAZAO SOCIAL X 237BRADESCO 300517 MX0000001 000001"); Assert.AreEqual(linhasEscrever[1], "1000000000000000000000060123400123456DOC06/00000003242-7 0000 00000003242700000000002S 2 01000000324204081400000000275000000000001N300517000000000000000000000000000000000000000000000000000000000000000299999999999999SACADO FULANO DE TAL 1,9,COMP X 12345000 000002"); Assert.AreEqual(linhasEscrever[2], "9 000003"); }
public void ValidarRemessa(RemessaCnab400 remessaValidar) { throw new System.NotImplementedException(); }
public List <string> EscreverTexto(RemessaCnab400 remessaEscrever) { throw new NotImplementedException(); }