caelum / caelum-stella

O Caelum Stella visa suprir as necessidades do dia a dia do desenvolvedor brasileiro
http://stella.caelum.com.br
664 stars 340 forks source link

Corrigir calculo digito nosso numero santander #113

Closed rodrigodesousa03 closed 10 years ago

rodrigodesousa03 commented 10 years ago

Ao enviar o nosso numero 566612457801, o calculo do dígito verificador do mesmo retornou o numero 11, coisa que não poderia acontecer devido ao fato do dígito ser composto de apenas um número. Existem dois commits nesse pull request:

mariofts commented 10 years ago

vou dar uma olhada, lembro de ter visto esse erro já em algum lugar do código, vou ver se acho

Turini commented 10 years ago

Acho que podemos mergear esse PR, né?

rodrigodesousa03 commented 10 years ago

@Turini, você viu o ultimo commit que enviei? Ainda existe um ultimo problema a ser resolvido quando o resto é 1. Existe alguma outra alternativa sem usar aquele if/parseInt?

Turini commented 10 years ago

você viu o ultimo commit que enviei? Ainda existe um ultimo problema a ser resolvido quando o resto é 1. Existe alguma outra alternativa sem usar aquele if/parseInt?

opa, não tinha visto a pergunta na mensagem de commit! hoje depois da aula vou fazer uns testes pra ver se consigo sugerir algo pra evitar esses parses.

rodrigodesousa03 commented 10 years ago

Vale ressaltar que os resultados dos testes que incluí já foram validados com o pessoal do banco.

Turini commented 10 years ago

opa, legal saber @rdskill, assim podemos confirar bem no teste. A solução de adicionar o trocandoPorSeEncontrar("0", "1") não funciona pois é um Map de substituições... ou troca 0 por 11 ou por 1. Ainda não consegui parar pra olhar esse código, mas vou tentar com calma depois... sugestão @mariofts @decoverri?

mariofts commented 10 years ago

A sugestão q eu coloquei no comentário no github funciona, olha lá Em 08/05/2014 13:26, "Rodrigo Turini" notifications@github.com escreveu:

opa, legal saber @rdskill https://github.com/rdskill, assim podemos confirar bem no teste. A solução de adicionar o trocandoPorSeEncontrar("0", "1") não funciona pois é um Map de substituições... ou troca 0 por 11 ou por 1. Ainda não consegui parar pra olhar esse código, mas vou tentar com calma depois... sugestão @marioftshttps://github.com/mariofts @decoverri https://github.com/decoverri?

— Reply to this email directly or view it on GitHubhttps://github.com/caelum/caelum-stella/pull/113#issuecomment-42571418 .

Turini commented 10 years ago

não funciona, @mariofts. Ele adicionou um caso de teste que falha, da uma olhada no ultimo commit. Além de que está adicionando duas substituições pra "0" no Map

mariofts commented 10 years ago

Tava analisando aqui e o rolo é pq o nosso complementarAoModulo executa todas as vezes, e nesse caso em específico é só pra fazer se o resultado for > 1. Não vai rolar de fazer com o DigitoPara, vamos fazer o merge com a regra com o if mesmo, é uma exceção.

rodrigodesousa03 commented 10 years ago

Como proceder agora? Faço outro commit voltando o if?

Turini commented 10 years ago

isso @rdskill :) assim que voltar já mergeamos o PR, valew

Turini commented 10 years ago

boa @rdskill, mergeando!