Cálculo do DV do nosso número do Bradesco está incorreto?

Jan 15, 2009 at 11:32 PM
Olá, parabéns pela iniciativa!

Lendo o manual do Bradesco, que achei confuso, consta na página 22 a seguinte observação.

Obs.: Se o resto da divisão for “1”, desprezar a diferença entre o dividendo
menos o resto que será “10” e considerar o dígito como “P”.

Esse trecho aparece nas orientações para a criação do arquivo de remessa e cobrança com registro. Na parte final do manual, página 38, nas orientações para montagem do código de barras diz apenas que deve-se aplicar o cálculo pelo módulo 11 com base 7. No projeto essa regra é seguida sem levar em conta a obs. acima.

Agora fica a dúvida. Qual orientação seguir? Estou precisando emitir para a carteira 06.

Abraços!


Jan 16, 2009 at 12:39 AM
Pessoal, parece que é isso mesmo. Baixei o CobreBemX e rodei o teste emitindo um boleto na carteira 06 com número 10 e o "DV" saiu "P". Quem quiser verificar segue os links.

CobreBemX
http://www.cobrebem.com/downloads/cbx/InstalarCobreBemX.zip

Projeto de teste
http://www.cobrebem.com.br/downloads/cbx/C_Sharp.zip

Link pra gerar a licença de teste - Selecione banco Bradesco e Carteira 06. Baixe o arquivo gerado.
http://www.cobrebem.com/cgi-bin/GeraArquivoLicencaTeste

Alterar os fontes do projeto os seguintes dados:
_CobreBemX.ArquivoLicenca = @"F:\CobreBem\237-06.conf"; //Defina o caminho correto aqui para o arquivo conf no seu micro
_CobreBemX.InicioNossoNumero = "00000000010";
_CobreBemX.FimNossoNumero = "00000000010";

Nínguém teve problema com isso?
Developer
Jul 20, 2009 at 8:30 PM

Olá marcoBnn !

Estou fazendo os testes com o Bradesco e realmente o manual diz o que vc indicou.

Você conseguiu resolver o seu problema ?

Estou pretendendo alterar o código.  Apesar de que já faz um bom tempinho, desde que vc postou aqui.

Abraços.

Jul 20, 2009 at 8:55 PM

Olá!

Há mesmo esse problema no código desse projeto. O manual do Bradesco é confuso nessa parte. Quando fiz a homologação do meu sistema confirmei com o suporte do banco que essa regra no cálculo que passei no primeiro post deve ser seguida. Meu sistema é diferente do projeto aqui, estou gerando o Noso Numero do Bradesco da seguinte maneira:

public override string FormataNossoNumero(Boleto boleto)
        {
            string carteira    = boleto.Carteira.PadLeft(2, '0'); // 2 Dígitos
            string nossoNumero = boleto.NumeroDocumento.ToString("D11"); // 11 Dígitos

            return string.Format("{0} / {1}-{2}", carteira, nossoNumero, this.CalculoDvNossoNumero(carteira + nossoNumero));
        }

private string CalculoDvNossoNumero(string sequencia)
        {
            int soma = 0, peso = 2, produto;

            for (int i = sequencia.Length - 1; i >= 0; i--)
            {
                produto = Convert.ToInt32(sequencia.Substring(i, 1)) * peso;
                soma   += produto;
                peso    = (peso == 7) ? 2 : peso + 1;
            }

            int resto = soma % 11;

            if (resto == 0)
                return "0";
            else if (resto == 1)
                return "P";
            else
                return (11 - resto).ToString();
        }

Developer
Jul 20, 2009 at 9:29 PM

Grande marcoBnn !

Obrigado pela resposta rápida !!

Estava pensando em fazer dessa forma como vc fez.  E tem esse peso também que é diferente (7).  O banco do brasil também tinha essa confusão, mas na minha homologação, o suporte do BB diz que o Nossonumero não tem DV, então criei outra função, desprezando o DV.

O pessoal do projeto não atualizou as suas alterações ?

Grande abraço e obrigado mais uma vez !

Jul 20, 2009 at 9:38 PM

Não mandei essas alterações pra cá, porque não utilizo o Boleto.NET no meu sistema. Na época estava com esse problema e entrei aqui pra ver como estavam fazendo. O problema é do manual que é muito confuso. Essa observação fica numa parte completamente diferente das instruções para a formação do Nosso Numero e acaba passsando batido deixando o cálculo incompleto. Pode seguir esses passos pra carteira 06 que eu homologuei em fevereiro desse ano.

Flw!

Developer
Jul 20, 2009 at 10:29 PM

Ok, então.

Vou utilizar seu código para me inspirar e tentarei colocá-lo no padrão do Boleto.net.  Não sei se serão atualizados no projeto, mas em todo o caso, levarei em conta o seu código, ok ?  Com sua permissão é claro !

Um grande abraço.

Jul 21, 2009 at 12:05 AM

Blz, pode utilizar sem problema algum. Qualquer coisa é só falar.

Abraço!