Boleto Banrisul

Jul 25, 2012 at 7:59 PM

Boa tarde, estou iniciando com CSharp e gostaria de saber como faço para gerar boletos para o Banrisul, pois não consegui encontrar esta parte.

Obrigado!

Developer
Jul 27, 2012 at 1:31 PM
Edited Jul 27, 2012 at 1:31 PM

Olá dhuio.

O Banrisul está no projeto, mas não sei se está totalmente homologado, desculpe a falta de informação.

Para vc testar, modifique o projeto demo, no form Main.cs, insira novo controle RadioButton e nomeie para radioButtonBanrisul. Na propriedade TAG, coloque 41 (acho que esse é o numero do banco Banrisul).  Visualize o codigo fonte, na linha 358 aprox., abaixo da Caixa, insira :

else if (radioButtonBanrisul.Checked)

                form.CodigoBanco = Convert.ToInt16(radioButtonBanrisul.Tag);

No código fonte NBoleto.cs, linha 591 aprox., abaixo da Caixa, insira:
 case 41: // Banrisul
                    GeraBoletoBanrisul((int)numericUpDown.Value);
                    break;
Na linha 494 aprox. insira:
 #region BOLETO BANRISUL
        private void GeraBoletoBanrisul(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;

                DateTime vencimento = new DateTime(2007, 9, 10);

                Instrucao_Banrisul item1 = new Instrucao_Banrisul(9, 5);
                Instrucao_Banrisul item2 = new Instrucao_Banrisul(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, new EspecieDocumento(341, 1));
                b.NumeroDocumento = Convert.ToString(10000 + i);

                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);

                // juros/descontos

                if (b.ValorDesconto == 0)
                {
                    Instrucao_Banrisul item3 = new Instrucao_Banrisul(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);
        }
        #endregion

Observe que na linha acima indicada com "seta", a EspecieDocumento, deixei como Itaú ainda, pois esse código não está implementado.

É só rodar e boa sorte.

Abraços,

Jul 27, 2012 at 4:31 PM

Desculpe meu baixo conhecimento, o programa rodou certo agora, mas esta EspecieDocumento interfere no caso de eu gerar o boleto para cobrança?

Obrigado!

Developer
Jul 31, 2012 at 5:03 AM

Boa noite, dhuio !

Depende.  Se o manual do Banrisul não fizer referência à espécie de documento, pode ser que o banco não aceite.  Mesmo porque, para garantir que o boleto impresso será aceito nos bancos, acho que é aconselhável fazer os testes com o banco Banrisul, para validação e homologação.  Se você for utilizar a cobrança eletrônica, aconselho que implemente o código. Verifique com o seu gerente.

Abraços,