Banco do Brasil - formatação nosso numero cart 18-019

Developer
Jul 1, 2009 at 4:05 PM
Edited Jul 1, 2009 at 4:07 PM

Bom dia, pessoal.  Estou iniciando a verificação/validação do boleto junto ao BB, na carteira 18-019 com convênio de 7 posições e faixa acima de 1.000.000.

DESCULPE-ME se esta referencia já foi postada anteriormente, mas não achei nada a respeito.

Retornaram críticas diversas, mas um apenas acho que pode ser inserido no método FormataNossoNumero(), da classe Banco_Brasil.cs.

De acordo com o manual técnico, essa modalidade (18-019), tem a formatação do nosso numero SEM o DV.

Stiven, coloquei essa alteração na versão (cópia) da minha maquina.  Será que poderia fazer parte das atualizações?  Ainda não estou muito familiarizado com C#, mas acho que é isso.

Codigo:

public override void FormataNossoNumero(Boleto boleto)
        {
            if (boleto.Carteira.Equals("18-019"))
            {
                boleto.NossoNumero = string.Format("{0}/{1}", LimparCarteira(boleto.Carteira), boleto.NossoNumero);
            }
            else
            {
                boleto.NossoNumero = string.Format("{0}/{1}-{2}", LimparCarteira(boleto.Carteira), boleto.NossoNumero,
                                                Mod11(boleto.NossoNumero));
            }
        }

 

Grande abraço à todos.

Coordinator
Jul 1, 2009 at 6:40 PM

Olá jsoda,

show de bola,  já fiz as devidas atualizações.

;)

Developer
Jul 1, 2009 at 8:10 PM

Olá Stiven !

Eu que o diga !!! rs  Vários gols numa rodada ??? rsrs  Comprometimento e competência, parabéns !!!

Obrigado por esse projeto existir, está sendo de grande valia para o sistema que estou desenvolvendo.

Aproveitando, estou fazendo a validação junto com o Bradesco também.  Pela home do Codeplex, diz que o BRADESCO está implementado e Homologado, mas não encontro as classes de espécie de documento.  Será que não tem ?  Como o pessoal conseguiu homologar?

Um grande abraço.

Developer
Jul 1, 2009 at 8:12 PM

Ops !  Sorry, não vi que existiam outras atualizações.

Abraços,

Developer
Jul 6, 2009 at 9:31 PM
Edited Jul 6, 2009 at 9:37 PM

Olá Stiven ! Tudo tranquilo por ai ?

Recebi mais algumas críticas, após ter efetuado as modificações que o CSO do BB solicitou anteriormente, conforme trecho do e-mail que reproduzo abaixo:

BANCO DO BRASIL S/A - CSO BELO HORIZONTE (MG)                   06/07/2009
  RELATÓRIO DE  TESTE DE BOLETOS DE COBRANÇA                    F1693751

  Convênio: 1653205
  Carteira: 18/019

  ANÁLISE DOS BOLETOS:


  FICHA DE COMPENSAÇÃO:

  No  Campo Nosso Número retirar a informação 18/, ou seja, informar apenas
  o Nosso Número, por exemplo,  16532050010000005.

...
Pelo que pude perceber e por contato com o CSO, a informação refere-se apenas à area da FICHA DE COMPENSAÇÃO, não necessitando alterar as demais áreas (Recibo de entrega e sacado).  Então, achei esta solução, a forma mais viável e sem interferir com os outros bancos:

Fiz algumas alterações na classe "BoletoBancario.cs", aproximadamente na linha 277, método "GeraHtmlReciboCedente"

public string GeraHtmlReciboCedente()
        {
            try
            {
                StringBuilder html = new StringBuilder();

                html.Append(Html.ReciboCedenteParte1);
                html.Append(Html.ReciboCedenteParte2);
                html.Append(Html.ReciboCedenteParte3);
                html.Append(Html.ReciboCedenteParte4);
                html.Append(Html.ReciboCedenteParte5);
                html.Append(Html.ReciboCedenteParte6);
                html.Append(Html.ReciboCedenteParte7);
                html.Append(Html.ReciboCedenteParte8);
                html.Append(Html.ReciboCedenteParte9);
                html.Append(Html.ReciboCedenteParte10);
                html.Append(Html.ReciboCedenteParte11);
                html.Append(Html.ReciboCedenteParte12);

                //Para carteira "18-019" do Banco do Brasil, a ficha de compensação não possui código da carteira
                //na formatação do campo.
                if (Boleto.Carteira.Equals("18-019"))
                {
                    html.Replace("Carteira/", "");
                    html.Replace("@NOSSONUMERO","@NOSSONUMEROBB");
                }

                MontaInstrucoes();

                return html.ToString().Replace("@INSTRUCOES", _instrucoesHtml);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro na execução da transação.", ex);
            }
        }

e aproximadamente na linha 424, após o comando de Replace da variável @DATAPROCESSAMENTO:

...

.Replace("@DATAPROCESSAMENTO", Boleto.DataProcessamento.ToString("dd/MM/yyyy"))
//Variável inserida para atender às especificações da carteira "18-019" do Banco do Brasil
//apenas para a ficha de compensação.
//Como a variável não existirá se não for a carteira "18-019", não foi colocado o [if].
.Replace("@NOSSONUMEROBB", Boleto.NossoNumero.Substring(3))
//
.Replace("@NOSSONUMERO", Boleto.NossoNumero)

...

Este "REPLACE" foi colocado nessa posição para não sofrer interferência do comando seguinte.  Como essa situação somente ocorrerá na condição da carteira "18-019", e essa carteira só existe no BB (pelo menos até agora), achei que nã seria necessário outro IF.

Stiven, não sei se seria a melhor forma de substituir as literais "Carteira/Nosso Número" e o valor da string formatada do campo nossonumero ,apenas para o Banco do Brasil.

Acredito também, que a HOMOLOGAÇÃO/VALIDAÇÃO dos boletos seja genérico.  O que você acha ? Será que essas alterações são atualizações que podem prevalecer no projeto Boleto.NET ?

Mudando um pouco de assunto: O BB foi implementado, conforme a HOME.  Não houve nenhuma validação/homologação ?

P.S.: As criticas ainda não foram totalmente validadas pelo CSO do BB.

 

Um grande abraço.

 

Developer
Jul 17, 2009 at 10:03 PM
Edited Jul 17, 2009 at 10:09 PM

Olá pessoal !  Olá Stiven !

No dia 13/07/2009 recebemos a notificação do CSO do Banco do Brasil, conforme partes retiradas do e-mail recebido:

BANCO DO BRASIL S/A - CSO BELO HORIZONTE (MG)                 13/07/2009
RELATÓRIO DE  TESTE DE BLOQUETOS DE COBRANÇA              F2195429

Cliente: HAWAI - PORTO REAL TRANSPORTES LTDA     
Convênio: 1653205
Carteira: 18/019

ANÁLISE DOS BLOQUETOS:

Os boletas analisados não apresentaram inconsistências no que se refere a layout, código de barras e linha digitável; estão aprovadas para distribuição aos sacados.

Salientamos que a informação correta dos dados impressos é de responsabilidade do cliente.

Consideramos o teste finalizado.

Atenciosamente

Equipe de Testes de Layout
Banco do Brasil S.A.
CSO Belo Horizonte (MG)

Dessa forma, FINALIZO a homologação para emissão de boletos do BB, carteira 18-019 ! 

Por hora, obrigado pela existência deste projeto, que tem encurtado HORAS e HORAS de desenvolvimento.

OBSERVAÇÂO: Os comentários feitos neste tópico, relativo à formatação do campo NOSSONUMERO serão atualizados no projeto, Stiven?

Caso negativo, preciso deixar uma OBS para que eu não esqueça de alterá-los.

Mais uma vez, obrigado.  Estarei começando ITAU, carteira 175 (sem registro), BRADESCO, carteria 06 (sem registro) e REAL carteiras 20 (sem registro) e 42(caucionado).

Abraços à todos !

Coordinator
Jul 20, 2009 at 10:48 PM

Olá jsoda,

ao criar a variável @NOSSONUMEROBB, vc precisou alterar o arquivo Html.resx, me envie a parte q vc alterou!

Developer
Jul 20, 2009 at 11:19 PM

Olá Stiven.

Não, não alterei o HTML.resx.  Fiz as alterações com comandos REPLACE, no BoletoBancario.cs, conforme 2 posts anteriores.

Se lhe ajudar, como não foi efetuada nenhuma atualização nesse arquivo, posso enviar o proprio.  Mas deixei bem explicadinho nos posts anteriores desta DISCUSS.

Abraços e obrigado + 1 vez, o BB está homologado para carteira 18-019 !

Jul 27, 2009 at 8:32 PM

Olá sou novo aqui e minha intenção também é contribuir.

Estou montando o boleto com as mesmas especificações citadas acima. Só que o primeiro dígito do convenio é o 0.

Como vocês acham que devo encarar com o de 6 posições ou 7?

Obrigado pela ajuda.

Coordinator
Jul 28, 2009 at 1:38 PM

Márcio,

boa pergunta! Você pode fazer um teste, cria um com um e um com outro e paga o boleto, com R$ 0,01, o que entrar na conta ta certo. Mas eu acredito que seja o de 7 posições. O idela mesmo é você entrar em contato com o banco e tirar essa dúvida.

;)

Developer
Jul 28, 2009 at 3:23 PM

Márcio, olá.

De acordo com o manual do BB, se seu convênio possui 7 digitos (ou seja, faixa ACIMA de 1.000.000), o nosso numero pode ser de até 10 digitos, isto é, seu boleto pode ser numerado de 0.000.000.000 até 9.999.999.999.

Se seu primeiro digito é 0 (zero), no convênio composto por 7 caracteres, presume-se que o seu convênio seja menor que 1.000.000 !  Estou certo?

Nesse caso, acredito que vc deva seguir as condições propostas para a composição do nosso mumero de 6 posições.  SÓ QUE TEM + 1 coisinha importante:  Neste caso, o nosso numero só pode ter 5 dígitos !!!

Em qualquer situação, aconselho você entrar em contato com o seu gerente de conta/suporte do BB (vc deve abrir um chamado) para testar/VALIDAR o seu boleto. 

Abraços, e boa sorte !  Espero ter ajudado também.

Jul 28, 2009 at 6:27 PM

Vou tentar entrar em contato com eles para me informarem essa informação, mas caso seja de 7 digitos o componente terá um impacto grande, já que o atributo convenio da classe cedente é inteiro e quando passo o número do convenio 0923200 ele muda para 923200 e na comparação do tamanho do convenio ele identifica como 6 posições.

Espero ter sido claro. Irei levantar as questões informadas e respondo em outro post.

Muito obrigado, abraços,

 

 

Jul 30, 2009 at 3:08 PM

Olá Bom dia realmente são 6 posições o convenio com 12 posições do nosso número.

Vou verificar se está correto e "posto" novidades.

Obrigado

Jan 20, 2010 at 11:46 AM

Bom Dia, Sou Novo por aqui, e é uma das primeiras vezes que trabalho com boletos, estou tentando gerar um teste para Carteira 18-019, mas sempre que tento ocorre o seguinte erro:

System.FormatException: Seqüência de entrada não estava em um formato incorreto.

Não sei se é o formato do "Nosso Número" que está incorreto, ou "Nosso Documento", gostaria de uma ajuda.

 

Att. Mateus Benetti

Coordinator
Jan 20, 2010 at 7:13 PM
Edited Jan 20, 2010 at 7:18 PM

Olá benetti,

tudo bem?

Veja a documentação em 18-019. Assim fica mais fácil você descobrir onde esteja errando. Veja a página 7 e 8, que fala sobre o formato do número do convênio e número do cliente.

(número convênio +  número cliente) = nosso número

Outra dica é você debugar pra ver a linha em que o erro ocorre.

Essa carteira do Banco do Brasil está homologada.

Abraços,

Stiven