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

A validação de dígitos iniciais é realmente necessária? #11

Open
neilvcarvalho opened this issue Dec 7, 2020 · 3 comments
Open

Comments

@neilvcarvalho
Copy link
Contributor

Opa, Rafael, beleza?

Notei que todos os PRs que eu submeti aqui foram depois que encontrei algum caso real em que os dígitos iniciais fugiam dos definidos no código. Esses casos possuem condicionais nos testes compartilhados entre todos os estados, pois a maioria tem definido uma única sequência de dígitos.

Isso faz sentido em alguns estados que usam os primeiros dígitos como o código do estado. AL, por exemplo, define que todos começam com 24: http://www.sintegra.gov.br/Cad_Estados/cad_AL.html. Sergipe, no entanto, apesar de todos os exemplos que encontrei começarem com 27 (que pode ser o código do estado, não sei), não explicita isso nas regras: http://www.sintegra.gov.br/Cad_Estados/cad_AL.html

Daí pergunto: faz sentido a gem limitar a dígitos específicos, se a documentação do site do Sintegra não explicita isso? E tenho minhas dúvidas até sobre os que explicitam, já que, eventualmente, eles passam a usar outros dígitos, conforme novas empresas são abertas.

@fidelisrafael
Copy link
Owner

Opa @neilvilela tudo bom? Desculpa a demora pra responder aqui, final de ano é fogo!

Mas então, eu não sei exatamente se isso é uma boa ideia, pois a documentação do Sintegra é muito ruim, eles mesmos não deixam claras as regras (e elas parecem existir).

Quando estava desenvolvendo a versão inicial, lembro de ter lido alguns posts em foruns para poder entender melhor, e é realmente muito precária essas direções que o Sintegra tem, embora na maioria das páginas eles tenham essas informações dos digitos iniciais;

Mas eu acho que se tivermos uma POC para analizar, podemos decidir melhor, agradeço seu interesse a ajuda no projeto @neilvilela, sempre existem melhorias possiveis e a gente vai descobrindo como melhorar.

PS: Eu pensava na epoca em uma feature tipo BRDocuments::IE.scan(number) que receberia um IE de qualquer estado do Brasil e poderia retornar algo como:

puts BRDocuments::IE.scan("24.885944-7")
# { state: "AL", document_number: "24.885944-7", is_valid: true }

Algo assim, mas na prático não creio que isso seja realmente utilizado, já que IE está sempre associada com um estado, porém seria possivel "descobrir" qual estado determinada IE pertence caso você não saiba o estado, o que parece bacana, mas inutil na pratica hahaha!

@neilvcarvalho
Copy link
Contributor Author

É... Acho que esse scan seria bem bacana, mas cada vez menos praticável, já que tem muito overlap entre esses dígitos iniciais (quando não documentados). Só os que começam com o código do estado têm mais chances de acertar :(

@fidelisrafael
Copy link
Owner

Sim, mas sempre há formas de melhorar, se tu tiver alguma sugestão ou quiser discutir implementações pode enviar, minha ideia é manter a lib atualizada e usavel, realmente não cobre 100% dos casos do Brasil mas acredito que agora é ir expandindo esses casos (Você já encontrou alguma documentação super clara sobre esses códigos em algum lugar?)

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

No branches or pull requests

2 participants