protected BoletoBancario PreparaBoleto() { DateTime vencimento = new DateTime(2007, 9, 10); Instrucao_Itau item1 = new Instrucao_Itau(9, 5); Instrucao_Itau item2 = new Instrucao_Itau(81, 10); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "0542", "13000"); //Na carteira 198 o código do Cedente é a conta bancária c.Codigo = "13000"; Boleto b = new Boleto(vencimento, 1642, "198", "92082835", c); b.NumeroDocumento = "1008073"; b.Sacado = new Sacado("000.000.000-00", "Fulano de Silva"); b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23"; b.Sacado.Endereco.Bairro = "Testando"; b.Sacado.Endereco.Cidade = "Testelândia"; b.Sacado.Endereco.CEP = "70000000"; b.Sacado.Endereco.UF = "DF"; item2.Descricao += " " + item2.QuantidadeDias.ToString() + " dias corridos do vencimento."; b.Instrucoes.Add(item1); b.Instrucoes.Add(item2); BoletoBancario itau = new BoletoBancario(); itau.CodigoBanco = 341; itau.Boleto = b; return itau; }
public override bool ValidarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { try { bool vRetorno = true; string vMsg = string.Empty; // foreach (Boleto boleto in boletos) { string vMsgBol = string.Empty; bool vRetBol = boleto.Banco.ValidarRemessa(this.TipoArquivo, numeroConvenio, banco, cedente, boletos, numeroArquivoRemessa, out vMsgBol); if (!vRetBol && !String.IsNullOrEmpty(vMsgBol)) { vMsg += vMsgBol; vRetorno = vRetBol; } } // mensagem = vMsg; return vRetorno; } catch (Exception ex) { throw ex; } }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "0501", "6703255"); c.Codigo = "13000"; //Nosso número com 7 dígitos string nn = "0003020"; //Nosso número com 13 dígitos //nn = "0000000003025"; Boleto b = new Boleto(vencimento, 1642, "198", nn, c);// EnumEspecieDocumento_Sudameris.DuplicataMercantil); b.NumeroDocumento = "1008073"; b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; //b.Instrucoes.Add("Não Receber após o vencimento"); //b.Instrucoes.Add("Após o Vencimento pague somente no Sudameris"); //b.Instrucoes.Add("Instrução 2"); //b.Instrucoes.Add("Instrução 3"); boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
public void GeraArquivoCNAB400(IBanco banco, Cedente cedente, Boletos boletos) { try { saveFileDialog.Filter = "Arquivos de Retorno (*.rem)|*.rem|Todos Arquivos (*.*)|*.*"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { ArquivoRemessa arquivo = new ArquivoRemessa(TipoArquivo.CNAB400); //Valida a Remessa Correspondentes antes de Gerar a mesma... string vMsgRetorno = string.Empty; bool vValouOK = arquivo.ValidarArquivoRemessa(cedente.Convenio.ToString(), banco, cedente, boletos, 1, out vMsgRetorno); if (!vValouOK) { MessageBox.Show(String.Concat("Foram localizados inconsistências na validação da remessa!", Environment.NewLine, vMsgRetorno), "Teste", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { arquivo.GerarArquivoRemessa("0", banco, cedente, boletos, saveFileDialog.OpenFile(), 1); MessageBox.Show("Arquivo gerado com sucesso!", "Teste", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "1234", "5", "12345678", "9"); c.Codigo = "12548"; Boleto b = new Boleto(vencimento, 45.50m, "CNR", "125478", c); b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; b.NumeroDocumento = "12345678901"; boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "1234", "5", "12345678", "9"); c.Codigo = "00000000504"; Boleto b = new Boleto(vencimento, 45.50m, "18", "12345678901", c); b.Sacado = new Sacado("000.000.000-00", "Fulano de Silva"); b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23"; b.Sacado.Endereco.Bairro = "Testando"; b.Sacado.Endereco.Cidade = "Testelândia"; b.Sacado.Endereco.CEP = "70000000"; b.Sacado.Endereco.UF = "DF"; //Adiciona as instruções ao boleto #region Instruções //Protestar Instrucao_Banrisul item = new Instrucao_Banrisul(9, 10, 0); b.Instrucoes.Add(item); #endregion Instruções b.NumeroDocumento = "12345678901"; boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "208", "", "010357", "6"); c.Codigo = "13000"; Boleto b = new Boleto(vencimento, 0.01m, "COB", "119964", c); b.NumeroDocumento = "119964"; b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; //b.Instrucoes.Add("Não Receber após o vencimento"); //b.Instrucoes.Add("Após o Vencimento pague somente no Bradesco"); //b.Instrucoes.Add("Instrução 2"); //b.Instrucoes.Add("Instrução 3"); boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = new DateTime(2003, 5, 15); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "2269", "130000946"); c.Codigo = "1795082"; Boleto b = new Boleto(vencimento, 0.20m, "101", "566612457800", c); //NOSSO NÚMERO //############################################################################################################################ //Número adotado e controlado pelo Cliente, para identificar o título de cobrança. //Informação utilizada pelos Bancos para referenciar a identificação do documento objeto de cobrança. //Poderá conter número da duplicata, no caso de cobrança de duplicatas, número de apólice, no caso de cobrança de seguros, etc. //Esse campo é devolvido no arquivo retorno. b.NumeroDocumento = "0282033"; b.Sacado = new Sacado("000.000.000-00", "Fulano de Silva"); b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23"; b.Sacado.Endereco.Bairro = "Testando"; b.Sacado.Endereco.Cidade = "Testelândia"; b.Sacado.Endereco.CEP = "70000000"; b.Sacado.Endereco.UF = "DF"; //Espécie Documento - [R] Recibo b.EspecieDocumento = new EspecieDocumento_Santander("17"); boletoBancario.Boleto = b; boletoBancario.MostrarCodigoCarteira = true; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
public void Cecred_GerarBoletoCarteira01() { DateTime vencimento = new DateTime(2016, 03, 11); var cedente = new Cedente("00.000.000/0000-00", "Empresa Teste", "0109", "265071", "1"); cedente.Convenio = 0110041; cedente.Endereco = new Endereco() { Bairro = "BAIRRO CEDENTE", CEP = "88309-600", Cidade = "CIDADE CEDENTE", Complemento = "CASA", Email = "*****@*****.**", End = "Teste CEDENTE", Logradouro = "Rua", Numero = "999", UF = "SC" }; cedente.Codigo = cedente.Convenio.ToString(); cedente.Carteira = "01"; string nossoNumero = "000000127"; // Tamanho nosso numero 9 var sacado = new Sacado("000.000.000-00", "Sacado Teste"); sacado.Endereco = new Endereco() { Bairro = "BAIRRO SACADO", CEP = "88309-600", Cidade = "CIDADE SACADO", Complemento = "CASA", Email = "*****@*****.**", End = "Teste SACADO", Logradouro = "Rua", Numero = "999", UF = "SC" }; BoletoNet.Boleto boleto = new BoletoNet.Boleto(vencimento, 10.99m, cedente.Carteira, nossoNumero, cedente); boleto.NumeroDocumento = "ABC123"; boleto.Sacado = sacado; BoletoNet.BoletoBancario boletoBancario = new BoletoBancario(); boletoBancario.CodigoBanco = 85; // CECRED boletoBancario.Boleto = boleto; try { boletoBancario.Boleto.Valida(); var htmlString = boletoBancario.MontaHtml(); //string _arquivo = string.Empty; //_arquivo = string.Format(@"C:\temp\boleto_{0}.html", boletoBancario.Boleto.NumeroDocumento); //using (System.IO.FileStream f = new System.IO.FileStream(_arquivo, System.IO.FileMode.Create)) { // System.IO.StreamWriter w = new System.IO.StreamWriter(f, System.Text.Encoding.UTF8); // w.Write(htmlString); //} Assert.IsTrue(!string.IsNullOrEmpty(htmlString)); } catch { } }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "4444", "", "", ""); c.Codigo = "123456"; c.DigitoCedente = 7; c.Carteira = "1"; Boleto b = new Boleto(vencimento, 10, "1", "897654321", c); b.NumeroDocumento = "119964"; b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
/** * FormataCodigoCliente * Inclui 0 a esquerda para preencher o tamanho do campo */ public void FormataCodigoCliente(Cedente cedente) { if (cedente.Codigo.Length == 7) cedente.DigitoCedente = Convert.ToInt32(cedente.Codigo.Substring(6)); cedente.Codigo = cedente.Codigo.Substring(0, 6).PadLeft(6, '0'); }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; decimal vltitulostotal = 0; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 StreamWriter incluiLinha = new StreamWriter(arquivo, Encoding.GetEncoding("ISO-8859-1")); strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB400, numeroArquivoRemessa); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); vltitulostotal += boleto.ValorBoleto; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 numeroRegistro++; } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400, cedente, vltitulostotal); incluiLinha.WriteLine(strline); incluiLinha.Close(); incluiLinha.Dispose(); // Incluido por Luiz Ponce 07/07/2012. incluiLinha = null; // Incluido por Luiz Ponce 07/07/2012. } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); strline = banco.GerarHeaderRemessa("0", cedente, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); numeroRegistro++; } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); incluiLinha.Close(); } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Coloque a Razão Social da sua empresa aqui", "1234", "12345"); c.Codigo = "12345"; Boleto b = new Boleto(vencimento, 0.1m, "57", "123456", c, new EspecieDocumento(356, "9")); b.NumeroDocumento = "1234567"; b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; //b.Instrucoes.Add("Não Receber após o vencimento"); //b.Instrucoes.Add("Após o Vencimento pague somente no Real"); //b.Instrucoes.Add("Instrução 2"); //b.Instrucoes.Add("Instrução 3"); real.Boleto = b; EspeciesDocumento ed = EspecieDocumento_Real.CarregaTodas(); real.Boleto.Valida(); real.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = new DateTime(2007,12,20);//DateTime.Now.AddDays(1); Instrucao_Sicredi item1 = new Instrucao_Sicredi(9, 5); Instrucao_Sicredi item2 = new Instrucao_Sicredi(); Cedente c = new Cedente("10.823.650/0001-90", "SAFIRALIFE", "0165", "9", "00623","2","02"); c.Codigo = "13000"; Boleto b = new Boleto(vencimento, 0.1m, "112", "07200004", c); b.NumeroDocumento = "00000001"; b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; // Exemplo de como adicionar mais informações ao sacado b.Sacado.InformacoesSacado.Add(new InfoSacado("TÍTULO: " + "2541245")); item2.Descricao += " " + item1.QuantidadeDias.ToString() + " dias corridos do vencimento."; b.Instrucoes.Add(item1); b.EspecieDocumento = new EspecieDocumento_Sicredi("A"); b.Aceite = "S"; b.ValorBoleto = 150.35m; boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); boletoBancario.FormatoCarne = (Request.Url.Query == "?formatocarne"); }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "0542", "5413000"); c.Codigo = "13000"; Boleto b = new Boleto(vencimento, 1642, "198", "02592082835", c); b.NumeroDocumento = "1008073"; b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; //b.Instrucoes.Add("Não Receber após o vencimento"); //b.Instrucoes.Add("Após o Vencimento pague somente no Bradesco"); //b.Instrucoes.Add("Instrução 2"); //b.Instrucoes.Add("Instrução 3"); Instrucao_Safra instrucao = new Instrucao_Safra(); instrucao.Descricao = "Instrução 1"; b.Instrucoes.Add(instrucao); boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(5); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "2269", "130000946"); c.Codigo = "1795082"; Boleto b = new Boleto(vencimento, 0.20m, "101", "566612457800", c); #region Adiciona Instruções somente no Cedente IInstrucao instrucao = new Instrucao(33); instrucao.Descricao = "Não esqueça de fazer uma doação ao projeto - Cedente"; c.Instrucoes.Add(instrucao); #endregion //NOSSO NÚMERO //############################################################################################################################ //Número adotado e controlado pelo Cliente, para identificar o título de cobrança. //Informação utilizada pelos Bancos para referenciar a identificação do documento objeto de cobrança. //Poderá conter número da duplicata, no caso de cobrança de duplicatas, número de apólice, no caso de cobrança de seguros, etc. //Esse campo é devolvido no arquivo retorno. b.NumeroDocumento = "0282033"; b.Sacado = new Sacado("000.000.000-00", "Fulano de Silva"); b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23"; b.Sacado.Endereco.Bairro = "Testando"; b.Sacado.Endereco.Cidade = "Testelândia"; b.Sacado.Endereco.CEP = "70000000"; b.Sacado.Endereco.UF = "DF"; #region Adiciona Instruções somente no Sacado IInstrucao instrucaoSacado = new Instrucao(33); instrucaoSacado.Descricao = "Não esqueça de fazer uma doação ao projeto - Sacado"; b.Sacado.Instrucoes.Add(instrucaoSacado); #endregion #region Adiciona Instruções comuns - Cedente e Sacado IInstrucao instrucaoComum = new Instrucao(33); instrucaoComum.Descricao = "Instrução Comum - Cedente/Sacado"; b.Instrucoes.Add(instrucaoComum); #endregion //Espécie Documento - [R] Recibo b.EspecieDocumento = new EspecieDocumento_Santander("17"); boletoBancario.Boleto = b; boletoBancario.MostrarCodigoCarteira = true; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); }
private void GeraBoletoCaixa(int qtde) { // Cria o boleto, e passa os parâmetros usuais BoletoBancario bb; List<BoletoBancario> boletos = new List<BoletoBancario>(); for (int i = 0; i < qtde; i++) { bb = new BoletoBancario(); bb.CodigoBanco = _codigoBanco; bb.MostrarEnderecoCedente = true; DateTime vencimento = DateTime.Now.AddDays(10); Instrucao_Caixa item1 = new Instrucao_Caixa(9, 5); Instrucao_Caixa item2 = new Instrucao_Caixa(81, 10); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "0132", "00542"); Boleto b = new Boleto(vencimento, 460, "SR", "00000000010001", c); Endereco endCed = new Endereco(); endCed.End = "Rua Testando o Boleto"; endCed.Bairro = "BairroTest"; endCed.Cidade = "CidadeTes"; endCed.CEP = "70000000"; endCed.UF = "MG"; b.Cedente.Endereco = endCed; b.NumeroDocumento = Convert.ToString(1000 + i); b.Sacado = new Sacado("000.000.000-00", "Fulano de Silva"); b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23ddddddddddddddddddddddddddd"; b.Sacado.Endereco.Bairro = "Testando"; b.Sacado.Endereco.Cidade = "Testelândia"; b.Sacado.Endereco.CEP = "70000000"; b.Sacado.Endereco.UF = "DF"; item2.Descricao += " " + item2.QuantidadeDias.ToString() + " dias corridos do vencimento."; b.Instrucoes.Add(item1); b.Instrucoes.Add(item2); // juros/descontos if (b.ValorDesconto == 0) { Instrucao_Caixa item3 = new Instrucao_Caixa(999, 1); item3.Descricao += ("1,00 por dia de antecipação."); b.Instrucoes.Add(item3); } bb.Boleto = b; bb.Boleto.Valida(); boletos.Add(bb); } GeraLayout(boletos); }
public Boleto(decimal valorBoleto, string carteira, string nossoNumero, Cedente cedente) { this._carteira = carteira; this._nossoNumero = nossoNumero; this._valorBoleto = valorBoleto; this._valorBoleto = valorBoleto; this._valorCobrado = this.ValorCobrado; this._cedente = cedente; }
public Boleto(double valorBoleto, string carteira, string nossoNumero, Cedente cedente) { _carteira = carteira; _nossoNumero = nossoNumero; _valorBoleto = valorBoleto; _valorBoleto = valorBoleto; _ValorCobrado = ValorCobrado; _cedente = cedente; }
// public void GeraDadosItau() { DateTime vencimento = new DateTime(2007, 9, 10); Instrucao_Itau item1 = new Instrucao_Itau(9, 5); Instrucao_Itau item2 = new Instrucao_Itau(81, 10); Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "0542", "13000"); //Na carteira 198 o código do Cedente é a conta bancária c.Codigo = "13000"; Boleto b = new Boleto(vencimento, 1642, "198", "92082835", c); b.NumeroDocumento = "1008073"; b.DataVencimento = Convert.ToDateTime("12-12-12"); b.Sacado = new Sacado("000.000.000-00", "Fulano de Silva"); b.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23"; b.Sacado.Endereco.Bairro = "Testando"; b.Sacado.Endereco.Cidade = "Testelândia"; b.Sacado.Endereco.CEP = "70000000"; b.Sacado.Endereco.UF = "DF"; item2.Descricao += item2.QuantidadeDias.ToString() + " dias corridos do vencimento."; b.Instrucoes.Add(item1); b.Instrucoes.Add(item2); b.Cedente.ContaBancaria.DigitoAgencia = "1"; b.Cedente.ContaBancaria.DigitoAgencia = "2"; b.Banco = new Banco(341); Boletos boletos = new Boletos(); boletos.Add(b); Boleto b2 = new Boleto(vencimento, 1642, "198", "92082835", c); b2.NumeroDocumento = "1008073"; b2.DataVencimento = Convert.ToDateTime("12-12-12"); b2.Sacado = new Sacado("000.000.000-00", "Fulano de Silva"); b2.Sacado.Endereco.End = "SSS 154 Bloco J Casa 23"; b2.Sacado.Endereco.Bairro = "Testando"; b2.Sacado.Endereco.Cidade = "Testelândia"; b2.Sacado.Endereco.CEP = "70000000"; b2.Sacado.Endereco.UF = "DF"; item2.Descricao += item2.QuantidadeDias.ToString() + " dias corridos do vencimento."; b2.Instrucoes.Add(item1); b2.Instrucoes.Add(item2); b2.Cedente.ContaBancaria.DigitoAgencia = "1"; b2.Cedente.ContaBancaria.DigitoAgencia = "2"; b2.Banco = new Banco(341); boletos.Add(b2); GeraArquivoCNAB400(b2.Banco, c, boletos); }
public Boleto(DateTime dataVencimento, double valorBoleto, string carteira, string nossoNumero, Cedente cedente) { _carteira = carteira; _nossoNumero = nossoNumero; _dataVencimento = dataVencimento; _valorBoleto = valorBoleto; _valorBoleto = valorBoleto; _ValorCobrado = ValorCobrado; _cedente = cedente; }
public override string FormataAgenciaCodigoCedente(Cedente cedente) { if (!cedente.DigitoCedente.Equals(-1)) { return string.Format("{0}.{1}/{2}.{3}.{4}", cedente.ContaBancaria.Agencia, cedente.ContaBancaria.DigitoAgencia, cedente.Codigo.Substring(4, 6), cedente.Codigo.Substring(10, 1), cedente.DigitoCedente); } else { return base.FormataAgenciaCodigoCedente(cedente); } }
public override string FormataAgenciaCodigoCedente(Cedente cedente) { if (!cedente.DigitoCedente.Equals(-1)) { return string.Format("{0}-{1}/{2}-{3}", cedente.ContaBancaria.Agencia, cedente.ContaBancaria.DigitoAgencia, Utils.FormatCode(cedente.ContaBancaria.Conta, 6), cedente.ContaBancaria.DigitoConta); } else { return base.FormataAgenciaCodigoCedente(cedente); } }
protected void Page_Load(object sender, EventArgs e) { DateTime vencimento = DateTime.Now.AddDays(1); Instrucao_Itau item1 = new Instrucao_Itau(9, 5); Instrucao_Itau item2 = new Instrucao_Itau(81, 10); Cedente c = new Cedente("10.823.650/0001-90", "SAFIRALIFE", "4406", "22324"); //Na carteira 198 o código do Cedente é a conta bancária c.Codigo = "13000"; //Mostrar endereço do Cedente //c.Endereco = new Endereco(); //c.Endereco.End = "SQN 416 Bloco M Ap 132"; //c.Endereco.Bairro = "Asa Norte"; //c.Endereco.CEP = "70879110"; //c.Endereco.Cidade = "Brasília"; //c.Endereco.UF = "DF"; //boletoBancario.MostrarEnderecoCedente = true; Boleto b = new Boleto(vencimento, 0.1m, "176", "00000001", c, new EspecieDocumento(341, "1")); b.NumeroDocumento = "00000001"; b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente "); b.Sacado.Endereco.End = "Endereço do seu Cliente "; b.Sacado.Endereco.Bairro = "Bairro"; b.Sacado.Endereco.Cidade = "Cidade"; b.Sacado.Endereco.CEP = "00000000"; b.Sacado.Endereco.UF = "UF"; // Exemplo de como adicionar mais informações ao sacado b.Sacado.InformacoesSacado.Add(new InfoSacado("TÍTULO: " + "2541245")); item2.Descricao += " " + item2.QuantidadeDias.ToString() + " dias corridos do vencimento."; b.Instrucoes.Add(item1); b.Instrucoes.Add(item2); // juros/descontos if (b.ValorDesconto == 0) { Instrucao_Itau item3 = new Instrucao_Itau(999, 1); item3.Descricao += ("1,00 por dia de antecipação."); b.Instrucoes.Add(item3); } boletoBancario.Boleto = b; boletoBancario.Boleto.Valida(); //boletoBancario.MostrarCodigoCarteira = true; boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show"); boletoBancario.FormatoCarne = (Request.Url.Query == "?formatocarne"); }
public ActionResult Index(FormCollection form) { var cedente = new Cedente() { Codigo = "1111111", CPFCNPJ = "123.456.789-01", Nome = "PAULO FREIRE - FOUR FREIRES INF.", ContaBancaria = new ContaBancaria("1000", "", "22507", "6") }; var sacado = new Sacado() { CPFCNPJ = form["cpf"], Nome = form["nome"], Endereco = new Endereco() { End = form["end"], Bairro = form["bairro"], Cidade = form["cidade"], UF = form["uf"], CEP = form["cep"] } }; var boleto = new Boleto() { DataVencimento = Convert.ToDateTime(form["vencimento"]), ValorBoleto = Convert.ToDecimal(form["valor"]), NossoNumero = "22222222", NumeroDocumento = "B20005446", Carteira = "109", Cedente = cedente, Sacado = sacado, EspecieDocumento = new EspecieDocumento_Itau("99"), Instrucoes = new List<IInstrucao>() { new Instrucao_Itau() { Descricao = "Não receber após o vencimento" } }, }; var boleto_bancario = new BoletoBancario() { CodigoBanco = 341, Boleto = boleto, MostrarCodigoCarteira = false, MostrarComprovanteEntrega = false }; boleto_bancario.Boleto.Valida(); ViewBag.Boleto = boleto_bancario.MontaHtmlEmbedded(); return View(form); }
public override string FormataAgenciaCodigoCedente(Cedente cedente) { if (!cedente.DigitoCedente.Equals(-1)) { return base.FormataAgenciaCodigoCedente(cedente); } else { //agenciaCodigoCedente = Utils.FormatCode(Cedente.Codigo.ToString(), 7); -> para Banco HSBC mostra apenas código Cedente - por Ponce em 08/06/2012 return String.Format("{0}/{1}", cedente.ContaBancaria.Agencia, cedente.Codigo.ToString()); //Solicitação do HSBC que mostrasse agencia/Conta - por Transis em 24/02/15 } }
public Boleto(DateTime dataVencimento, decimal valorBoleto, string carteira, string nossoNumero, Cedente cedente, EspecieDocumento especieDocumento) { this._carteira = carteira; this._nossoNumero = nossoNumero; this._dataVencimento = dataVencimento; this._valorBoleto = valorBoleto; this._valorBoleto = valorBoleto; this._valorCobrado = this.ValorCobrado; this._cedente = cedente; this._especieDocumento = especieDocumento; }
public void GeraArquivoCNAB240(IBanco banco, Cedente cedente, Boletos boletos) { saveFileDialog.Filter = "Arquivos de Retorno (*.rem)|*.rem|Todos Arquivos (*.*)|*.*"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { ArquivoRemessa arquivo = new ArquivoRemessa(TipoArquivo.CNAB240); arquivo.GerarArquivoRemessa("1200303001417053", banco, cedente, boletos, saveFileDialog.OpenFile(), 1); MessageBox.Show("Arquivo gerado com sucesso!", "Teste", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; decimal vltitulostotal = 0; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 StreamWriter incluiLinha = new StreamWriter(arquivo, Encoding.GetEncoding("ISO-8859-1")); cedente.Carteira = boletos[0].Carteira; strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB400, numeroArquivoRemessa); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); vltitulostotal += boleto.ValorBoleto; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 numeroRegistro++; // 85 - CECRED if (banco.Codigo == 85) { if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { Banco_Cecred _banco = new Banco_Cecred(); string linhaCECREDRegistroDetalhe5 = _banco.GerarRegistroDetalhe5(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(linhaCECREDRegistroDetalhe5); numeroRegistro++; } } if ((boleto.Instrucoes != null && boleto.Instrucoes.Count > 0) || (boleto.Sacado.Instrucoes != null && boleto.Sacado.Instrucoes.Count > 0)) { strline = boleto.Banco.GerarMensagemVariavelRemessa(boleto, ref numeroRegistro, TipoArquivo.CNAB400); if (!string.IsNullOrEmpty(strline) && !string.IsNullOrWhiteSpace(strline)) incluiLinha.WriteLine(strline); } } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400, cedente, vltitulostotal); incluiLinha.WriteLine(strline); incluiLinha.Close(); incluiLinha.Dispose(); // Incluido por Luiz Ponce 07/07/2012. incluiLinha = null; // Incluido por Luiz Ponce 07/07/2012. } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override string GerarTrailerRemessa(int numeroRegistro, TipoArquivo tipoArquivo, Cedente cedente, decimal vltitulostotal) { //Variavies StringBuilder _trailer = new StringBuilder(); //Tratamento try { //Montagem trailer _trailer.Append("9"); //Posição 001 _trailer.Append(new string(' ', 393)); //Posição 002 a 394 _trailer.Append(Utils.FitStringLength(numeroRegistro.ToString(), 6, 6, '0', 0, true, true, true)); //Posição 395 a 400 //Retorno return(Utils.SubstituiCaracteresEspeciais(_trailer.ToString())); } catch (Exception ex) { throw new Exception("Erro ao gerar TRAILER do arquivo de remessa do CNAB400.", ex); } }
public Boleto(DateTime dataVencimento, decimal valorBoleto, string carteira, string nossoNumero, Cedente cedente) { _carteira = carteira; _nossoNumero = nossoNumero; _dataVencimento = dataVencimento; _valorBoleto = valorBoleto; _valorBoleto = valorBoleto; _valorCobrado = ValorCobrado; _cedente = cedente; }
/// <summary> /// Efetua as Validações dentro da classe Boleto, para garantir a geração da remessa /// </summary> public override bool ValidarRemessa(TipoArquivo tipoArquivo, string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { bool vRetorno = true; string vMsg = string.Empty; ////IMPLEMENTACAO PENDENTE... mensagem = vMsg; return(vRetorno); }
public override string GerarHeaderLoteRemessa(string numeroConvenio, Cedente cedente, int numeroArquivoRemessa, TipoArquivo tipoArquivo) { throw new BoletoNetException("Nao implantado"); }
public override bool ValidarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { try { bool vRetorno = true; string vMsg = string.Empty; // foreach (Boleto boleto in boletos) { string vMsgBol = string.Empty; bool vRetBol = boleto.Banco.ValidarRemessa(this.TipoArquivo, numeroConvenio, banco, cedente, boletos, numeroArquivoRemessa, out vMsgBol); if (!vRetBol && !String.IsNullOrEmpty(vMsgBol)) { vMsg += vMsgBol; vRetorno = vRetBol; } } // mensagem = vMsg; return(vRetorno); } catch (Exception ex) { throw ex; } }
public Boleto(DateTime dataVencimento, decimal valorBoleto, string carteira, string nossoNumero, string digitoNossoNumero, Cedente cedente) { this._carteira = carteira; this._nossoNumero = nossoNumero; this._digitoNossoNumero = digitoNossoNumero; this._dataVencimento = dataVencimento; this._valorBoleto = valorBoleto; this._valorBoleto = valorBoleto; this._valorCobrado = this.ValorCobrado; this._cedente = cedente; }
/// <summary> /// TRAILER do arquivo CNAB /// Gera o TRAILER do arquivo remessa de acordo com o lay-out informado /// </summary> public override string GerarTrailerRemessa(int numeroRegistro, TipoArquivo tipoArquivo, Cedente cedente, decimal vltitulostotal) { try { string _trailer = " "; base.GerarTrailerRemessa(numeroRegistro, tipoArquivo, cedente, vltitulostotal); switch (tipoArquivo) { case TipoArquivo.CNAB240: _trailer = GerarTrailerRemessa240(); break; case TipoArquivo.CNAB400: _trailer = GerarTrailerRemessa400(numeroRegistro, vltitulostotal); break; case TipoArquivo.Outro: throw new Exception("Tipo de arquivo inexistente."); } return(_trailer); } catch (Exception ex) { throw new Exception("", ex); } }
public string GerarDetalheSegmentoPRemessa(Boleto boleto, int numeroRegistro, string numeroConvenio, Cedente cedente, Boleto boletos) { try { return(_IBanco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistro, numeroConvenio, cedente, boletos)); } catch (Exception ex) { throw new Exception("Erro durante a geração dos registros de DETALHE do arquivo de REMESSA.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 3; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104) //quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); } else { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); } // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104) //quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); } else { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); } incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104) // Só validar boleto.Remessa quando o banco for Caixa porque quando o banco for diferente de 104 a propriedade "Remessa" fica null { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB if ((boletos[0].Remessa.TipoDocumento.Equals("2")) || boletos[0].Remessa.TipoDocumento.Equals("1")) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; //segmento R não implementado... //if (boleto.ValorMulta > 0) //{ // strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); // incluiLinha.WriteLine(strline); // OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); // numeroRegistro++; // numeroRegistroDetalhe++; //} } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } #endregion } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; if (((banco.Codigo == 33) && (boleto.Remessa.CodigoOcorrencia == "01")) || (banco.Codigo != 33)) { strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; } if ((boleto.ValorMulta > 0) && ((banco.Codigo == 33 && ((boleto.Remessa.CodigoOcorrencia == "01") || (boleto.Remessa.CodigoOcorrencia == "10") || (boleto.Remessa.CodigoOcorrencia == "31"))) || (banco.Codigo != 33))) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
/// <summary> /// Método responsável por gerar o nome do arquivo de remessa, deve ser sobreescrito em cada banco para nomes diferentes /// </summary> /// <param name="cedente">Dados do emissor do cupom</param> /// <param name="cidadeBanco">Cidade do banco</param> /// <param name="remessa">Número da remessa</param> /// <returns>Retorna o nome do arquivo de remessa</returns> public string GerarNomeRemessa(Cedente cedente, string cidadeBanco, int remessa) { return(_IBanco.GerarNomeRemessa(cedente, cidadeBanco, remessa)); }
public bool ValidarRemessa(TipoArquivo tipoArquivo, string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { try { return(_IBanco.ValidarRemessa(tipoArquivo, numeroConvenio, _IBanco, cedente, boletos, numeroArquivoRemessa, out mensagem)); } catch (Exception ex) { throw new Exception("Erro durante a validação do arquivo de REMESSA.", ex); } }
public string GerarTrailerRemessaComDetalhes(int numeroRegistro, int numeroRegistroDetalhes, TipoArquivo tipoArquivo, Cedente cedente, decimal vltitulostotal) { try { return(_IBanco.GerarTrailerRemessaComDetalhes(numeroRegistro, numeroRegistroDetalhes, tipoArquivo, cedente, vltitulostotal)); } catch (Exception ex) { throw new Exception("Erro durante a geração do registro TRAILER do arquivo de REMESSA.", ex); } }
public override string GerarHeaderRemessa(Cedente cedente, TipoArquivo tipoArquivo, int numeroArquivoRemessa) { throw new BoletoNetException("Não implantado"); }
public override string GerarHeaderRemessa(string numeroConvenio, Cedente cedente, IArquivoRemessa arquivo, int numeroArquivoRemessa, Boleto boletos) { throw new NotImplementedException("Função não implementada."); }
private string GerarHeaderRemessaCNAB240(int numeroConvenio, Cedente cedente, int numeroArquivoRemessa) { throw new NotImplementedException("Função não implementada."); }
public bool ValidarRemessaCNAB240(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { throw new NotImplementedException("Função não implementada."); }
/// <summary> /// Efetua as Validacoes dentro da classe Boleto, para garantir a geracao da remessa /// </summary> public override bool ValidarRemessa(TipoArquivo tipoArquivo, string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { throw new BoletoNetException("Nao implantado"); }
public override string GerarTrailerRemessa(int numeroRegistro, TipoArquivo tipoArquivo, Cedente cedente, decimal vltitulostotal) { try { string _trailer = " "; base.GerarTrailerRemessa(numeroRegistro, tipoArquivo, cedente, vltitulostotal); switch (tipoArquivo) { case TipoArquivo.CNAB240: throw new Exception("Função não implementada: GerarTrailerRemessa() << CNAB240"); case TipoArquivo.CNAB400: _trailer = GerarTrailerRemessa400(numeroRegistro, 0); break; case TipoArquivo.Outro: throw new Exception("Tipo de arquivo inexistente."); } return(_trailer); } catch (Exception ex) { throw new Exception("Erro durante a geração do TRAILER do arquivo de REMESSA.", ex); } }
/// <summary> /// Efetua as Validações dentro da classe Boleto, para garantir a geração da remessa /// </summary> public override bool ValidarRemessa(TipoArquivo tipoArquivo, string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { bool vRetorno = true; string vMsg = string.Empty; // switch (tipoArquivo) { case TipoArquivo.CNAB240: vRetorno = ValidarRemessaCNAB240(numeroConvenio, banco, cedente, boletos, numeroArquivoRemessa, out vMsg); break; case TipoArquivo.CNAB400: vRetorno = ValidarRemessaCNAB400(numeroConvenio, banco, cedente, boletos, numeroArquivoRemessa, out vMsg); break; case TipoArquivo.Outro: throw new Exception("Tipo de arquivo inexistente."); } // mensagem = vMsg; return(vRetorno); }
public string GerarTrailerRemessa400(int numeroRegistro, decimal vltitulostotal, Cedente cedente) { try { var numeroArquivoRemessa3Digitos = _numeroArquivoRemessa.ToString().PadLeft(3, '0'); numeroArquivoRemessa3Digitos = numeroArquivoRemessa3Digitos.Substring(numeroArquivoRemessa3Digitos.Length - 3); var reg = new TRegistroEDI(); reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0001, 001, 0, "9", '0')); reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0002, 367, 0, string.Empty, ' ')); reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0369, 008, 0, numeroRegistro - 2, '0')); reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0377, 015, 2, vltitulostotal, '0')); reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0392, 003, 0, numeroArquivoRemessa3Digitos, '0')); reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0395, 006, 0, numeroRegistro, '0')); reg.CodificarLinha(); return(reg.LinhaRegistro); } catch (Exception ex) { throw new Exception("Erro durante a geração do registro TRAILER do arquivo de REMESSA.", ex); } }
public string GerarHeaderRemessaCNAB240(Cedente cedente) { throw new BoletoNetException("Nao implantado"); }
public override string GerarTrailerRemessa(int numeroRegistro, TipoArquivo tipoArquivo, Cedente cedente, decimal vltitulostotal) { throw new BoletoNetException("Nao implantado"); }
public bool ValidarRemessaCNAB400(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, int numeroArquivoRemessa, out string mensagem) { bool vRetorno = true; string vMsg = string.Empty; // #region Pré Validações if (banco == null) { vMsg += string.Concat("Remessa: O Banco é Obrigatório!", Environment.NewLine); vRetorno = false; } if (cedente == null) { vMsg += string.Concat("Remessa: O Cedente/Beneficiário é Obrigatório!", Environment.NewLine); vRetorno = false; } if (boletos == null || boletos.Count.Equals(0)) { vMsg += string.Concat("Remessa: Deverá existir ao menos 1 boleto para geração da remessa!", Environment.NewLine); vRetorno = false; } #endregion // foreach (Boleto boleto in boletos) { #region Validação de cada boleto if (boleto.Remessa == null) { vMsg += string.Concat("Boleto: ", boleto.NumeroDocumento, "; Remessa: Informe as diretrizes de remessa!", Environment.NewLine); vRetorno = false; } else { #region Validações da Remessa que deverão estar preenchidas quando BANRISUL //Comentado porque ainda está fixado em 01 //if (String.IsNullOrEmpty(boleto.Remessa.CodigoOcorrencia)) //{ // vMsg += String.Concat("Boleto: ", boleto.NumeroDocumento, "; Remessa: Informe o Código de Ocorrência!", Environment.NewLine); // vRetorno = false; //} if (string.IsNullOrEmpty(boleto.Remessa.TipoDocumento)) { vMsg += string.Concat("Boleto: ", boleto.NumeroDocumento, "; Remessa: Informe o Tipo Documento!", Environment.NewLine); vRetorno = false; } else if (boleto.Remessa.TipoDocumento.Equals("06") && !string.IsNullOrEmpty(boleto.NossoNumero)) { //Para o "Remessa.TipoDocumento = "06", não poderá ter NossoNumero Gerado! vMsg += string.Concat("Boleto: ", boleto.NumeroDocumento, "; Não pode existir NossoNumero para o Tipo Documento '06 - cobrança escritural'!", Environment.NewLine); vRetorno = false; } //Para o Tipo #endregion } boleto.NossoNumero = boleto.NossoNumero.Replace(",", "").Replace(".", "").Replace("-", ""); #endregion } // mensagem = vMsg; return(vRetorno); }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 0; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); } else { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); } numeroRegistro++; // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); } else { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); } if (strline != "") { incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); numeroRegistro++; } if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104) // Só validar boleto.Remessa quando o banco for Caixa porque quando o banco for diferente de 104 a propriedade "Remessa" fica null { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB if ((boletos[0].Remessa.TipoDocumento.Equals("2")) || boletos[0].Remessa.TipoDocumento.Equals("1")) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } #endregion } else if (banco.Codigo == 33) { #region se Banco Santander - 33 foreach (Boleto boleto in boletos) { boleto.Banco = banco; boleto.Remessa.NumeroLote = numeroArquivoRemessa; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.OutrosDescontos > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } strline = boleto.Banco.GerarDetalheSegmentoSRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoS); numeroRegistro++; numeroRegistroDetalhe++; } strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 237) // bradesco { decimal totalTitulos = 0; foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoARemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoBRemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; totalTitulos += boleto.ValorBoleto; } numeroRegistro++; strline = banco.GerarTrailerRemessaComDetalhes(numeroRegistro, boletos.Count, TipoArquivo.CNAB240, cedente, totalTitulos); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 2; string strline; decimal vltitulostotal = 0; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 StreamWriter incluiLinha = new StreamWriter(arquivo, Encoding.GetEncoding("ISO-8859-1")); cedente.Carteira = boletos[0].Carteira; strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB400, numeroArquivoRemessa); incluiLinha.WriteLine(strline); foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(strline); vltitulostotal += boleto.ValorBoleto; //Uso apenas no registro TRAILER do banco Santander - jsoda em 09/05/2012 - Add no registro TRAILER do banco Banrisul - sidneiklein em 08/08/2013 numeroRegistro++; // 85 - CECRED if (banco.Codigo == 85) { if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { Banco_Cecred _banco = new Banco_Cecred(); string linhaCECREDRegistroDetalhe5 = _banco.GerarRegistroDetalhe5(boleto, numeroRegistro, TipoArquivo.CNAB400); incluiLinha.WriteLine(linhaCECREDRegistroDetalhe5); numeroRegistro++; } } // 341 - Banco Itau if (banco.Codigo == 341) { if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { Banco_Itau _banco = new Banco_Itau(); strline = _banco.GerarRegistroDetalhe2(boleto, numeroRegistro); incluiLinha.WriteLine(strline); numeroRegistro++; } } // Banco Bradesco - 237 if (banco.Codigo == 237) { if (boleto.OutrosDescontos > 0) { Banco_Bradesco _banco = new Banco_Bradesco(); strline = _banco.GerarRegistroDetalhe2(boleto, numeroRegistro); incluiLinha.WriteLine(strline); numeroRegistro++; } } if ((boleto.Instrucoes != null && boleto.Instrucoes.Count > 0) || (boleto.Sacado.Instrucoes != null && boleto.Sacado.Instrucoes.Count > 0)) { strline = boleto.Banco.GerarMensagemVariavelRemessa(boleto, ref numeroRegistro, TipoArquivo.CNAB400); if (!string.IsNullOrEmpty(strline) && !string.IsNullOrWhiteSpace(strline)) { incluiLinha.WriteLine(strline); numeroRegistro++; } } } strline = banco.GerarTrailerRemessa(numeroRegistro, TipoArquivo.CNAB400, cedente, vltitulostotal); incluiLinha.WriteLine(strline); incluiLinha.Close(); incluiLinha.Dispose(); // Incluido por Luiz Ponce 07/07/2012. incluiLinha = null; // Incluido por Luiz Ponce 07/07/2012. } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }
public override string GerarHeaderRemessa(string numeroConvenio, Cedente cedente, TipoArquivo tipoArquivo) { throw new NotImplementedException("Função não implementada."); }
public override void GerarArquivoRemessa(string numeroConvenio, IBanco banco, Cedente cedente, Boletos boletos, Stream arquivo, int numeroArquivoRemessa) { try { int numeroRegistro = 0; int numeroRegistroDetalhe = 1; string strline; StreamWriter incluiLinha = new StreamWriter(arquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa, boletos[0]); } else { strline = banco.GerarHeaderRemessa(numeroConvenio, cedente, TipoArquivo.CNAB240, numeroArquivoRemessa); } numeroRegistro++; // incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeArquivo); if (banco.Codigo == 104)//quando é caixa verifica o modelo de leiatue que é está em boletos.remssa.tipodocumento { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240, boletos[0]); } else { strline = banco.GerarHeaderLoteRemessa(numeroConvenio, cedente, numeroArquivoRemessa, TipoArquivo.CNAB240); } if (strline != "") { incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.HeaderDeLote); numeroRegistro++; } if (banco.Codigo == 341) { #region se Banco Itau - 341 foreach (Boleto boleto in boletos) { boleto.Banco = banco; //[email protected] - 03 / 01 / 2017 //strline = boleto.Banco.GerarDetalheRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); //Segmento P - Obrigatório - [email protected] - 03/01/2017 strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; //Seqgmento Q - Obrigatório - [email protected] - 03/01/2017 strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; //Segmento R - Opcional - [email protected] - 03/01/2017 if (boleto.ValorMulta > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } //numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); ++numeroRegistro; ++numeroRegistro; //Iniciou do 0 então tem que somar +1 para totoalizar a quantidade de linhas strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 104) // Só validar boleto.Remessa quando o banco for Caixa porque quando o banco for diferente de 104 a propriedade "Remessa" fica null { #region se Banco Caixa - 104 e tipo de arquivo da remessa SIGCB if ((boletos[0].Remessa.TipoDocumento.Equals("2")) || boletos[0].Remessa.TipoDocumento.Equals("1")) { foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio, cedente); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, boleto.Sacado); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } //numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro, boletos[0]); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } #endregion } else if (banco.Codigo == 33) { #region se Banco Santander - 33 foreach (Boleto boleto in boletos) { boleto.Banco = banco; //Deuclério 24-05-2018 - Não conseguir identificar para que serve esse dado. //boletos[0].Remessa.NumeroLote = Convert.ToInt32(numeroArquivoRemessa); strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; //Deuclério 24-05-2018 Não identifique na linha 184, qual método ou função que pega o dados e nem para que serve esse dado. //if (boletos[0].Remessa.CodigoOcorrencia == "01") { strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.ValorMulta > 0 || boleto.OutrosDescontos > 0 || boleto.PercMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } strline = boleto.Banco.GerarDetalheSegmentoSRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoS); numeroRegistro++; numeroRegistroDetalhe++; } } strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } else if (banco.Codigo == 237) // bradesco { decimal totalTitulos = 0; foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoARemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoBRemessa(boleto, numeroRegistroDetalhe); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; totalTitulos += boleto.ValorBoleto; } numeroRegistro++; strline = banco.GerarTrailerRemessaComDetalhes(numeroRegistro, boletos.Count, TipoArquivo.CNAB240, cedente, totalTitulos); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); } else //para qualquer outro banco, gera CNAB240 com segmentos abaixo { #region outros bancos foreach (Boleto boleto in boletos) { boleto.Banco = banco; strline = boleto.Banco.GerarDetalheSegmentoPRemessa(boleto, numeroRegistroDetalhe, numeroConvenio); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoP); numeroRegistro++; numeroRegistroDetalhe++; strline = boleto.Banco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoQ); numeroRegistro++; numeroRegistroDetalhe++; if (boleto.PercMulta > 0 || boleto.ValorMulta > 0) { strline = boleto.Banco.GerarDetalheSegmentoRRemessa(boleto, numeroRegistroDetalhe, TipoArquivo.CNAB240); incluiLinha.WriteLine(strline); OnLinhaGerada(boleto, strline, EnumTipodeLinha.DetalheSegmentoR); numeroRegistro++; numeroRegistroDetalhe++; } } //numeroRegistro--; strline = banco.GerarTrailerLoteRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeLote); numeroRegistro++; numeroRegistro++; strline = banco.GerarTrailerArquivoRemessa(numeroRegistro); incluiLinha.WriteLine(strline); OnLinhaGerada(null, strline, EnumTipodeLinha.TraillerDeArquivo); incluiLinha.Close(); #endregion } } catch (Exception ex) { throw new Exception("Erro ao gerar arquivo remessa.", ex); } }