BoletoNet / boletonet

Boleto.Net is a library developed for use in Brazil, given it has been programmed with Brazilian retail legislation and business rules for bank registered billing integration.
Apache License 2.0
479 stars 382 forks source link

Código de Barras Duplicado - RESOLVIDO #30

Open Westfallx opened 9 years ago

Westfallx commented 9 years ago

Bom dia, Estou gerando boletos para caixa e sicredi. Em um carnê da CEF com doze boletos que foi gerado, foi as datas impressas no boleto estavam corretas. O primeiro boleto com data de 05/05/2015 até 05/04/2016 Mas na hora da leitura ele apresentava os dias do boleto de 05/07/2015 desdo primeiro boleto até o terceiro. A partir do terceiro, estava apresentando os dias do boleto de 05/11/2015

Fui gerar novamente o boleto e novamente e foi impresso e os dias do primeiro boleto saia no segundo, a do terceiro sair no quarto.....

Quanto tentei imprimir pela terceira vez, os dias sairam corretos, pelo menos até agora esse erro foi visto somente 1 vez, estou a quase 1 mês gerando boletos da caixa. já foram em torno de uns 700 boletos.

Westfallx commented 9 years ago

Seguinte no arquivo BoletoBancario onde é montado o nome da imagem do código de barras ele está por tick, mas dependendo do servidor e o acesso a ele pega o mesmo tick para até 3 boletos.

a solução que implatamos foi a geração do nome por " fileName = Guid.NewGuid().ToString("N"); " ele gera um nome aleatório toda vez que a função é chamada. Já foram gerados mais de 1000 boletos e não tem repetições.

um outro detalhe, na lógica se o nome não for limpo ele vai sobrescrever o código de barras do boleto anterior. se tiver um prq desse if seria melhor colcar assim

if(string.IsNullOrEmpty(fileName ) { fileName = DateTime.Now.Ticks.ToString(); }

if (fileName == null) { fileName = DateTime.Now.Ticks.ToString(); } else { if (fileName == "") fileName = DateTime.Now.Ticks.ToString(); }