davi.sza Postado Setembro 20, 2005 Denunciar Share Postado Setembro 20, 2005 Estou tentando encontrar um exemplo de validacao de PIS mas não consigo. Será que alguém pode me dar uma ajuda de como fazer?Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 OSJunior Postado Setembro 21, 2005 Denunciar Share Postado Setembro 21, 2005 Veja mais:https://www.scriptbrasil.com.br/http://www.google.com.br/http://www.linhadecodigo.com.br/Flws. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Setembro 21, 2005 Denunciar Share Postado Setembro 21, 2005 Encontrei este código ae.. é so usar a lógica e passar para qualquer linguagem que você precise.Códigos de rotinas PL/SQL para validação de campos específicosCREATE OR REPLACE FUNCTION fc_valida_pispasep(PIS_NUM VARCHAR2) RETURN BOOLEAN IS ERRO_PIS VARCHAR2(1); -- RECEBE 'N' PARA PIS CORRETO E 'S' CASO CONTRÁRIO SOMATORIO NUMBER; -- P/ CALCULAR SOMA POS_PIS NUMBER; -- PARA PERCORRER A STRING PESO_PIS NUMBER; -- MULTIPLICADOR INT_PIS NUMBER; -- VARIAVEL AUXILIAR MODULO_PIS NUMBER; -- VARIAVEL AUXILIARBEGIN IF NVL(LENGTH(PIS_NUM), 0) <> 11 THEN RETURN FALSE; ELSE ERRO_PIS := 'N'; SOMATORIO := 0; POS_PIS := 1; PESO_PIS := 3; WHILE POS_PIS < 3 LOOP INT_PIS := TO_NUMBER(SUBSTR(PIS_NUM, POS_PIS, 1)) * PESO_PIS; SOMATORIO := SOMATORIO + INT_PIS; PESO_PIS := PESO_PIS - 1; POS_PIS := POS_PIS + 1; END LOOP; PESO_PIS := 9; WHILE POS_PIS < 11 LOOP INT_PIS := TO_NUMBER(SUBSTR(PIS_NUM, POS_PIS, 1)) * PESO_PIS; SOMATORIO := SOMATORIO + INT_PIS; PESO_PIS := PESO_PIS - 1; POS_PIS := POS_PIS + 1; END LOOP; INT_PIS := MOD(SOMATORIO, 11); IF INT_PIS < 2 THEN INT_PIS := 11; END IF; MODULO_PIS := 11 - INT_PIS; IF MODULO_PIS <> TO_NUMBER(SUBSTR(PIS_NUM, 11, 1)) THEN ERRO_PIS := 'S'; ELSE POS_PIS := 1; WHILE POS_PIS < 11 LOOP INT_PIS := POS_PIS + 1; IF SUBSTR(PIS_NUM, POS_PIS, 1) <> SUBSTR(PIS_NUM, INT_PIS, 1) THEN ERRO_PIS := 'N'; POS_PIS := 11; ELSE POS_PIS := POS_PIS + 1; END IF; END LOOP; END IF; IF ERRO_PIS = 'S' THEN RETURN FALSE; ELSE RETURN TRUE; END IF; END IF;END;fonte: http://www.tst.gov.br/trt/Juridico/au/codigos_validacao.html Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Setembro 21, 2005 Denunciar Share Postado Setembro 21, 2005 <% Public Function PISPASEP(Fcamp As String) Dim FTAP As String Dim TOT As Integer Dim I As Integer If Val(Fcamp) = 0 Then PISPASEP = False Exit Function End If If Len(Fcamp) <> 11 Then PISPASEP = False Exit Function End If FTAB = "3298765432" TOT = 0 For I = 1 To 10 TOT = TOT + Val(Mid(Fcamp, I, 1)) * Val(Mid(FTAB, I, 1)) Next I RESTO = Int(TOT Mod 11) If RESTO <> 0 Then RESTO = 11 - RESTO End If If RESTO <> Val(Mid(Fcamp, 11, 1)) Then PISPASEP = False Exit Function End If PISPASEP = True End Function %> Retirado deste link Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
davi.sza
Estou tentando encontrar um exemplo de validacao de PIS mas não consigo. Será que alguém pode me dar uma ajuda de como fazer?
Obrigado.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.