CEI - Cadastro Específico do INSS
O algorítmo abaixo demonstra como obter o dígito verificador da matricula CEI.
Esta informação é divulgada com propósito acadêmico e para ajudar desenvolvedores que necessitam implementar validação de dígito verificador da matrícula CEI em formulários eletrônicos.
Formato : EE.NNN.NNNNN/AD
Onde:
EE - Número
NNNNNNNN - Número
A - Atividade
D - Dígito Verificador
a) Multiplicar os últimos 11 algarismos pelos seus respectivos pesos, conforme abaixo:
Pesos: 7,4,1,8,5,2,1,6,3,7,4
Algarismos: EENNNNNNNNA
Cálculo
7 * E = X1
4 * E = X2
1 * N = X3
8 * N = X4
5 * N = X5
2 * N = X6
1 * N = X7
6 * N = X8
3 * N = X9
7 * N = X10
4 * A = X11
D (posição do dígito)
b) Somar todos os produtos obtidos no item "a"
Soma = X1+2+X3+X4+X5+X6+X7+X8+X9+X10+X11
c) Com o total obtido no item "b", somar o algarismo da unidade com o algarismo da dezena.
Total = Dezena de soma + Unidade de soma
d) Subtrair de 10 o algarismo da unidade do obtido no item "c".
Resultado = 10 - Unidade de Total
O algarismo da unidade do resultado da subtração será o dígito verificador.
Digito verificador = Unidade de Resultado







Comentários
1) Comentário por Clodoaldo Monteiro
Data:: 03/09/2010
Não sei quem fez essa ajuda, mas ficou muito simples de entender.
Muito obrigado pela dica.
Deixo aqui uma rotina feita em Clipper para fazer o cálculo.
Function VCEI(xArg1)
Local xVar1, xPeso, xSoma, xTotal
xArg1:= Left(xArg1,12)
xPeso={7,4,1,8,5,2,1,6,3,7,4}
xSoma:= 0
For i=1 to 11
valo_:= Val(SubStr(xArg1,i,1))*xPeso[i]
xSoma+= valo_
next
xSoma := AllTrim(Str(xSoma))
xTotal := val(subs(xSoma, len(xSoma)-1, 1)) + val(Right(xSoma, 1))
xTotal := if(xTotal
2) Comentário por val
Data:: 30/06/2011
Quantos números tem um CEI? Pode dar um exemplo?
3) Comentário por Paulo Henrique
Data:: 06/12/2011
Muito legal o tutorial!
Também fiz uma função em C# para validar o CEI.
public static bool ValidaCEI(string cei)
{
string peso = "74185216374";
int soma = 0, total = 0, resultado = 0;
for (int i = 0; i ToString().Length - 1, 1));
resultado = 10 - int.Parse(total.ToString().Substring(total.ToString().Length - 1, 1));
return (cei.Substring(cei.Length - 1, 1).Equals(resultado.ToString()));
}
Adicionar novo comentário