Skip to content
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

Merged
merged 3 commits into from
Oct 25, 2024

Conversation

tnas
Copy link
Contributor

@tnas tnas commented Oct 16, 2024

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:

@tnas
Copy link
Contributor Author

tnas commented Oct 16, 2024

Opa @angeliski,
Aqui o PR da atualização da regra de validação do título de eleitor

@angeliski
Copy link
Member

Salve mestre @tnas , você pode atualizar com a master? Atualizamos a versão do Java e ativamos o GH Actions

@tnas
Copy link
Contributor Author

tnas commented Oct 18, 2024

Opa @angeliski , atualizada com a master

@peas
Copy link
Member

peas commented Oct 19, 2024

@angeliski me parece fazer sentido aprovar, vc manda bala? tem o outro pull tb:
#301

@angeliski
Copy link
Member

Curioso que ele não ativou o CI 🤔

Vou pegar os testes pra rodar local e faço o Merge depois

Copy link
Member

@angeliski angeliski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Show! Testes locais passaram, deixei uma sugestão, mas vou mergear assim que eu tiver pronto para fazer o release (eu tenho que recuperar umas chaves pra fazer isso)

image

Comment on lines +182 to +200
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;
}
Copy link
Member

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?

Suggested change
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();
}

Copy link
Contributor Author

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.

@angeliski angeliski merged commit c985e19 into caelum:master Oct 25, 2024
1 check passed
@tnas tnas deleted the regra-validacao-titulo-eleitor branch November 5, 2024 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants