GARANTIR DESCONTO

Fórum Validar Inss #288524

18/07/2005

0

Preciso de uma função para validar matricula do INSS?


Roberto Rossi

Roberto Rossi

Responder

Posts

19/07/2005

Anivaldo

Se for o CEI, segue a funcão abaixo. Se for NIT, é utilizado a mesma função de verificação do PIS.

Espero ter ajudao...



function Cei(aCei:String):Boolean;
var
Acei2,WDigito : String;
WDv,WSoma,wm,WDigit : Double;
i : Integer;
begin
if Len(aCei) <> 15 then
begin
Informacao(´Número de dígitos do C.E.I. informado incorretamente!´);
Abort;
end;
wm:=0;
Acei2 := Copy(aCei,1,2) + Copy(aCei,4,3) + Copy(aCei,8,5) + Copy(aCei,14,2);
WDv := StrToFloat(Copy(aCei2,12,1));
WSoma := 0;
for i := 1 to 11 do
begin
Case i of
1 : wm:= 7;
2 : wm:= 4;
3 : wm:= 1;
4 : wm:= 8;
5 : wm:= 5;
6 : wm:= 2;
7 : wm:= 1;
8 : wm:= 6;
9 : wm:= 3;
10 : wm:= 7;
11 : wm:= 4;
end;
WSoma := WSoma + wm * StrToFloat(Copy(aCei2,i,1));
end;
WDigito := StrZero(WSoma,12,0);
WDigito := FloatToStr(StrToFloat(Copy(WDigito,11,1)) + StrToFloat(Copy(WDigito,12,1)));
WDigito := Copy(WDigito,Length(WDigito),1);
WDigit := 10 - StrToFloat(WDigito);
if WDigit > 9 then
WDigit := 0
else
WDigit := WDigit;
Result := (wdv = wdigit);
if Result = False then
Informacao(´Número do C.E.I. informado incorretamente!´);
end;


Responder

Gostei + 0

02/08/2006

Vitor Rubio

essa função não funcionou pra mim, o que a sua função strzero faz?
tentei substituir por uma função minha mas não deu certo.


Responder

Gostei + 0

02/08/2006

Flaviocont

var
vpis:Boolean;
i, wsoma, wm11, wdv, wdigito: integer;
Dado: String;
begin
dado:=Edit3.Text;
if Trim(Dado) <> ´´ then
begin
wdv := StrToInt(copy(Dado, 11, 1));
wsoma := 0;
wm11 := 2;
for i := 1 to 10 do
begin
wsoma := wsoma + (wm11 * StrToInt(Copy(Dado, 11 -i, 1)));
if wm11 < 9 then
wm11 := wm11 + 1
else
wm11 := 2;
end;
wdigito := 11 - (wsoma mod 11);
if wdigito > 9 then
wdigito := 0;
if wdv = wdigito then
begin
Application.MessageBox(´O valor informado é válido!´, ´Aviso!´, mb_IconStop+mb_ok);
vpis := True;
end
else
begin
Application.MessageBox(´O valor informado não é válido!´, ´Atenção!´, mb_IconStop+mb_ok);
vpis := false;
end;

end;
Label3.Caption:= IntToStr(WDIGITO);
/////
IF (STRTOINT(COPY(Edit3.Text,0,3)) > 169) AND (STRTOINT(COPY(Edit3.Text,0,3)) < 201) THEN
BEGIN
// ShowMessage(´PRIMEIRA´);
END
ELSE
IF (STRTOINT(COPY(Edit3.Text,0,4)) > 1021) AND (STRTOINT(COPY(Edit3.Text,0,4)) < 1131) THEN
BEGIN
// ShowMessage(´PRIMEIRA´);
END
ELSE
IF (STRTOINT(COPY(Edit3.Text,0,3)) > 119) AND (STRTOINT(COPY(Edit3.Text,0,3)) < 170) THEN
BEGIN
// ShowMessage(´PRIMEIRA´);
END
ELSE
IF (STRTOINT(COPY(Edit3.Text,0,3)) > 99) AND (STRTOINT(COPY(Edit3.Text,0,3)) < 102) THEN
BEGIN
// ShowMessage(´PRIMEIRA´);
END
ELSE
BEGIN
ShowMessage(´ESSE NAO E UM NUMERO DE PIS/PASEP VALIDO eles devem iniciar com 100, 101 ou 170 a 199 para pasep´ +
#13 + ´ e de 1022 a 1130 e 120 a 169 e atualmente 200 para pis´);
END;
{
5) Observações
a) Os números iniciados por 100,101 ou 170 a 199 se referem a
código do PASEP
b) Os números iniciados 1022 a 1130, 120 a 169 e atualmente 200
referem-se a PIS
}


Responder

Gostei + 0

02/08/2006

Vitor Rubio

isto é pra validar PIS, e pra validar CEI?


Responder

Gostei + 0

04/08/2006

Flaviocont

re é sim serve p os 2


Responder

Gostei + 0

04/08/2006

Vitor Rubio

vou testar, muito obrigado!


Responder

Gostei + 0

04/08/2006

Vitor Rubio

Não funcionou :(
O número de CEI que o cliente me passou é 500149753400

Será que ele me passou errado? ou isso nem é CEI?

Valew!


Responder

Gostei + 0

04/08/2006

Vitor Rubio

Na verdade, ele disse que o número informado é valido, mas que não é um pis/pasep válido.

só que se eu mudar o último dígito pra qualquer valor, ou aumentar o número de dígitos, continua sendo válido...


Responder

Gostei + 0

04/08/2006

Vitor Rubio

O CEI tem 12 dígitos, porque o dígito verificador é o 11° e não importa o que você coloque no dígito 12, ele nem entra nos cálculos?

grato!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar