Closed marcianobandeira closed 1 year ago
Boa tarde estou com um probleminha neste método também. Somente com SICREDI Caso vc carregue um boleto que já foi gerado para uma reimpressão tentar calcular o digito novamente, pelo menos aqui na minha estrutura está acontecendo isso. Para sanar estou verificando se o "nossonumero" já tem 9 posições o que em teoria indica que já foi calculado o digito verificador e então só faço a formatação.
public void FormataNossoNumero(Boleto boleto)
{
if (boleto.NossoNumero.Length != 9)
{
var DataDocumento = boleto.DataEmissao.ToString("yy");
var nossoNumero = boleto.NossoNumero;
boleto.NossoNumero = string.Format("{0}2{1}", DataDocumento, nossoNumero.PadLeft(5, '0'));
boleto.NossoNumeroDV = Mod11(Sequencial(boleto)).ToString();
boleto.NossoNumero = string.Concat(boleto.NossoNumero, Mod11(Sequencial(boleto)));
}
boleto.NossoNumeroFormatado = string.Format("{0}/{1}-{2}", boleto.NossoNumero.Substring(0, 2), boleto.NossoNumero.Substring(2, 6), boleto.NossoNumero.Substring(8));
}
@Ipojuca Você esta informando o nosso numero na reimpressao ?
Na verdade eu carrego os dados do Banco de dados para o objeto Boleto quando o sistema de impressão tenta validar os dados o nosso numero que já estava concatenado ao digito acaba gerando um digito extra. (Não sei se me fiz entender) Talvez a solução possa ser também o que o @marcianobandeira falou sobre padronizar sem o digito aí não gera esse problema pelo qual eu passei e fica um comportamento padrão.
boa tarde senhores... é isso mesmo @Ipojuca a classe do sicredi está concatenando o digito verificador, comportamento que outras classes não tem. Em caso de alterar esse comportamento no sicredi é necessário dar uma verificada nos impactos que pode causar em outros locais, na classe de registro online por exemplo.
Obrigado @marcianobandeira , @Ipojuca pode fazer a alteracao e mandar um PR.
@carloscds vou fazer mais testes deixando o digito verificador de fora do processo para manter o padrão com outros bancos e te envio amanhã no PR.
Bom dia @carloscds ei vi que vc aceitou o último PR que fiz na sexta dia 15/07 porém o pacote no Nuget se mantem na versão 235 do dia 12/07
@Ipojuca Sim, nao geramos pacote a cada PR no Nuget, somente no MyGet: https://www.myget.org/gallery/boletonetcorebuild
bom dia senhores, com as mudanças identifiquei um problema na leitura de retorno, está identificando o nosso numero errado... vou enviar um PR para correção
Boa tarde,
Eu ja vinha utilizando a emissão de boletos do banco do brasil e do sicredi há algum tempo e tudo funcionando perfeitamente.
Agora estou iniciando a utilização do Bradesco, mas notei que a propriedade NossoNumero da Classe Boleto não vem com o dígito verificador, assim como ocorre para o sicredi.
No metodo FormataNossoNumero da classe BancoSicrediCarteira1 ocorre a concatenação:
Contudo, esse comportamento não segue o padrão das classes BancoItauCarteira109 e BancoBradescoCarteira09 por exemplo, onde não há essa concatenação.
@carloscds voce acha que seria interessante padronizar esse comportamento?
Não cheguei a olhar ainda a sequencia que o métodos são chamados, mas a depender, essa mudança poderia impactar no método: FormataCodigoBarraCampoLivre da classe do sicredi também, pois alí é usado a propriedade NossoNumero, só não tenho certeza se já estará preenchida com o digito ou não.