Closed MatheusJordao closed 3 years ago
@MatheusJordao boa tarde.
Qual carteira vc está utilizando? Carteira 17? Se for, essa regra deveria ser implementada aqui:
@rafd75 boa tarde,
Sim, carteira 17. Porém no trecho abaixo ele retorna uma mensagem informando que o código de cedente não possui 7 dígitos:
Eu estava usando um PadLeft com '0' para garantir 7 dígitos e o arquivo é gerado corretamente e válido de acordo com o validador do próprio BB (https://gmtedi.bb.com.br/validaleiaute/). Mas o banco retornou informando que está incorreto.
Atualmente ele gera o nosso número igual para todos os casos:
Onde: C = Convênio S = Sequencial D = dígito verificador
Obs: O DV não é informado nessa função.
Ah... Agora entendi... Vc adicionou "ZERO" para fazer ficar com tamanho 7 ... mas como no banco está cadastrado com 6, o algoritmo não vai bater.
O que vai ser necessário fazer é implementar nessa função a lógica para convênios com 6 dígitos...
Algo assim:
public void FormataNossoNumero(Boleto boleto) -- se tem 6 dígitos, FormataNossoNumero6dig(Boleto boleto) --- se tem 7 d´giitos então FormataNossoNumero7dig(Boleto boleto) -- caso contrário, da a exception acima - com a mensagem "código cedente não tem 6 ou 7 dígitos"
extrair o código já existente para um novo método private FormataNossoNumero7dig e depois duplicar esse método e implementar a lógica para 6digitos.
Boa tarde,
Fiz a implementação necessária e o arquivo está sendo gerado conforme validador do BB. Posso fazer um pull request?
Também tive que fazer alterações no código de barras, estou deixando aqui o manual que informa como ele deve ser gerado.
@MatheusJordao , boa tarde...
Isso é bom para o projeto... vamos incorporar aqui sim.
Só sugiro um detalhe (caso não tenha pensado nisso)... Já existe o teste unitário da carteira 17 (que está utilizando um cedente com 7 dígitos)...
Duplicar esse teste, e criar as rotinas para validar com 6 dígitos também.
Dessa forma, se alguém alterar qualquer coisa no código, será testado os dois cenários...
Consegue implementar esse teste? ... em seguida, manda o PR ...
Boa tarde,
Estou com um problema no Banco do Brasil com um cliente que possui o código de cedente com 6 dígitos (199047), o banco está informando que o Segmento P está incorreto.
Orientações: Regularize as informações abaixo;
Conforme imagem abaixo, existem 3 maneiras de gerar o Nosso Número, quando o convênio possui 4, 6 e 7 posições. Alguém já teve esse problema? Pelo que vi no Boleto2Net sempre é gerado da mesma forma, com 7 posições.
Manual BB.pdf