-
Notifications
You must be signed in to change notification settings - Fork 344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Atualização da regra validacão do titulo de eleitor #300
Conversation
Opa @angeliski, |
Salve mestre @tnas , você pode atualizar com a master? Atualizamos a versão do Java e ativamos o GH Actions |
Opa @angeliski , atualizada com a master |
@angeliski me parece fazer sentido aprovar, vc manda bala? tem o outro pull tb: |
Curioso que ele não ativou o CI 🤔 Vou pegar os testes pra rodar local e faço o Merge depois |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
private String geraDigito(boolean ehEstadoSubstitutorDigito, String base) { | ||
|
||
String digito = new DigitoPara(base).mod(11).calcula(); | ||
|
||
if (ehEstadoSubstitutorDigito) { | ||
if (digito.equals("1")) { | ||
digito = "0"; | ||
} else if (digito.equals("0")) { | ||
digito = "1"; | ||
} else { | ||
digito = new DigitoPara(base).complementarAoModulo().mod(11).calcula(); | ||
} | ||
} else { | ||
digito = digito.equals("1") || digito.equals("0") ? "0" : | ||
new DigitoPara(base).complementarAoModulo().mod(11).calcula(); | ||
} | ||
|
||
return digito; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sugestão: O que você acha da gente separar um pouco as regras para melhorar a legibilidade?
private String geraDigito(boolean ehEstadoSubstitutorDigito, String base) { | |
String digito = new DigitoPara(base).mod(11).calcula(); | |
if (ehEstadoSubstitutorDigito) { | |
if (digito.equals("1")) { | |
digito = "0"; | |
} else if (digito.equals("0")) { | |
digito = "1"; | |
} else { | |
digito = new DigitoPara(base).complementarAoModulo().mod(11).calcula(); | |
} | |
} else { | |
digito = digito.equals("1") || digito.equals("0") ? "0" : | |
new DigitoPara(base).complementarAoModulo().mod(11).calcula(); | |
} | |
return digito; | |
} | |
private String geraDigito(boolean ehEstadoSubstitutorDigito, String base) { | |
String digito = new DigitoPara(base).mod(11).calcula(); | |
if (!ehEstadoSubstitutorDigito) { | |
if (digito.equals("0") || digito.equals("1")) { | |
return "0"; | |
} | |
return new DigitoPara(base).complementarAoModulo().mod(11).calcula(); | |
} | |
// Tratamento específico para estados substituidores | |
if (digito.equals("0")) { | |
return "1"; | |
} | |
if (digito.equals("1")) { | |
return "0"; | |
} | |
return new DigitoPara(base).complementarAoModulo().mod(11).calcula(); | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@angeliski , boa sugestão! Após o merge dessas duas PR que abri, vou abrir uma nova com essa alteração. Também tenho outras modificações no código que gostaria de propor, mas daí vou abrindo novas PR.
No processo de geração dos dígitos verificadores do título eleitoral havia uma regra não contemplada pelo validador.
Regra: Nos títulos emitidos em São Paulo e Minas Gerais, os Dígitos Verificadores assumem o valor 1, caso em seus respectivos processos de cálculo o resto da divisão por 11 seja zero.
Por não implementar esta regra, o validador estava identificando o título válido 162749070141 como sendo inválido.
Com a inclusão desta regra, o título passou a ser validado corretamente.
Referências: