Last active
August 2, 2019 12:32
-
-
Save joel-daros/3ae9c5c26447e1f4cb5acab7fd6c0c99 to your computer and use it in GitHub Desktop.
Valida Inscrição Estadual por Estado em Oracle PL/SQL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE OR REPLACE FUNCTION validaie(pp_estado VARCHAR2, | |
pp_nr_inscricao_estadual VARCHAR2) | |
RETURN VARCHAR2 IS | |
v_verificador VARCHAR2(50); | |
v_calculo NUMBER; | |
v_digito NUMBER; | |
FUNCTION soma_algebrica(p_valor NUMBER) RETURN NUMBER IS | |
v_contador NUMBER := 0; | |
v_resultado NUMBER := 0; | |
BEGIN | |
FOR a IN 1 .. length(p_valor) LOOP | |
v_contador := v_contador + 1; | |
v_resultado := v_resultado + substr(p_valor, v_contador, 1); | |
END LOOP; | |
RETURN v_resultado; | |
END; | |
-- | |
BEGIN | |
IF pp_estado = 'AC' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 13 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> '01' THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 10, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 11, 1) * 2; | |
v_digito := (11 - mod(v_calculo, 11)); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 12, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 10, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 11, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 12, 1) * 2; | |
v_digito := (11 - mod(v_calculo, 11)); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 13, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'AL' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> '24' THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := (11 - mod(v_calculo, 11)); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 9, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'AP' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> '03' THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
IF substr(pp_nr_inscricao_estadual, 1, 8) BETWEEN 03000001 AND | |
03017000 THEN | |
v_calculo := 5; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 1, 8) BETWEEN 03017001 AND | |
03019022 THEN | |
v_calculo := 9; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 1, 8) >= 03019023 THEN | |
v_calculo := 0; | |
END IF; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := (11 - mod(v_calculo, 11)); | |
IF v_digito = 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito = 11 THEN | |
IF substr(pp_nr_inscricao_estadual, 1, 8) BETWEEN 03000001 AND | |
03017000 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 1, 8) BETWEEN 03017001 AND | |
03019022 THEN | |
v_digito := 1; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 1, 8) >= 03019023 THEN | |
v_digito := 0; | |
END IF; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 9, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'MG' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 13 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
1, | |
1) * 1; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
2, | |
1) * 2; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
3, | |
1) * 1; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
4, | |
1) * 2; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
5, | |
1) * 1; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
6, | |
1) * 2; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
7, | |
1) * 1; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
8, | |
1) * 2; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
9, | |
1) * 1; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
10, | |
1) * 2; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
11, | |
1) * 1; | |
v_calculo := v_calculo || | |
substr(substr(pp_nr_inscricao_estadual, 1, 3) || 0 || | |
substr(pp_nr_inscricao_estadual, 4, 8), | |
12, | |
1) * 2; | |
IF soma_algebrica(v_calculo) <> trunc(soma_algebrica(v_calculo), -1) THEN | |
v_digito := (trunc(soma_algebrica(v_calculo), -1) + 10) - soma_algebrica(v_calculo); | |
ELSE | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 12, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 11; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 10; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 10, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 11, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 12, 1) * 2; | |
v_digito := (11 - mod(v_calculo, 11)); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 13, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'SP' THEN | |
IF substr(pp_nr_inscricao_estadual, 1, 1) = 'P' THEN | |
-- produtor rural | |
IF length(trim(pp_nr_inscricao_estadual)) <> 13 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 2, 1) * 1; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 9, 1) * 10; | |
v_digito := mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 10, 1) | |
THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
ELSE | |
IF length(trim(pp_nr_inscricao_estadual)) <> 12 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 1; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 8, 1) * 10; | |
v_digito := mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 9, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 2; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 10; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 9; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 7, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 8, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 9, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 10, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 11, 1) * 2; | |
v_digito := mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 12, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'RJ' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 8 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 8, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'BA' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) > 9 OR | |
length(trim(pp_nr_inscricao_estadual)) < 8 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
IF length(trim(pp_nr_inscricao_estadual)) = 8 THEN | |
IF substr(pp_nr_inscricao_estadual, 1, 1) IN (0, 1, 2, 3, 4, 5, 8) THEN | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 2; | |
v_digito := 10 - mod(v_calculo, 10); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 8, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 10 - mod(v_calculo, 10); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 7, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
ELSE | |
--- | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 8, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 7, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
ELSE | |
IF substr(pp_nr_inscricao_estadual, 2, 1) IN (0, 1, 2, 3, 4, 5, 8) THEN | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 7, 1) * 2; | |
v_digito := 10 - mod(v_calculo, 10); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 9, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 9, 1) * 2; | |
v_digito := 10 - mod(v_calculo, 10); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 8, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 7, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 9, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 9, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito <> substr(pp_nr_inscricao_estadual, 8, 1) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'RS' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 10 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 10, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado IN ('AM', 'CE', 'ES', 'PB', 'PI', 'SC', 'SE') THEN | |
IF length(pp_nr_inscricao_estadual) <> 9 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
-- | |
IF pp_estado = 'GO' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 OR | |
(substr(pp_nr_inscricao_estadual, 1, 2) <> 10 AND | |
substr(pp_nr_inscricao_estadual, 1, 2) <> 11 AND | |
substr(pp_nr_inscricao_estadual, 1, 2) <> 15) THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF substr(pp_nr_inscricao_estadual, 1, 8) = '11094402' AND | |
(substr(pp_nr_inscricao_estadual, 9, 1) = '0' OR substr(pp_nr_inscricao_estadual, 9, 1) = '1') THEN | |
v_verificador := 'CERTO'; | |
ELSE | |
IF v_digito = 11 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito = 10 THEN | |
IF to_number(substr(pp_nr_inscricao_estadual, 1, 8)) >= 10103105 AND | |
to_number(substr(pp_nr_inscricao_estadual, 1, 8)) <= 10119997 THEN | |
v_digito := 1; | |
ELSE | |
v_digito := 0; | |
END IF; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'MA' THEN | |
IF length(pp_nr_inscricao_estadual) <> 9 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> 12 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'MT' THEN | |
IF length(pp_nr_inscricao_estadual) <> 11 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 10, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 11, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'MS' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> 28 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'PA' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> 15 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'DF' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 13 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> 07 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 10, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 11, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 12, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 10, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 11, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 12, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 13, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'TO' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'PR' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 10 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 10, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'RO' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 14 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 9, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 10, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 11, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 12, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 13, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito = 10 THEN | |
v_digito := 0; | |
END IF; | |
IF v_digito = 11 THEN | |
v_digito := 1; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 14, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'RR' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 OR | |
substr(pp_nr_inscricao_estadual, 1, 2) <> 24 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 1; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 2; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 8; | |
v_digito := mod(v_calculo, 9); | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'PE' THEN | |
IF length(trim(pp_nr_inscricao_estadual)) <> 9 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 8, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_digito := 11 - mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF pp_estado = 'RN' THEN | |
IF substr(pp_nr_inscricao_estadual, 1, 2) <> 20 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
IF length(trim(pp_nr_inscricao_estadual)) = 9 THEN | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 9; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 2, 1) * 8; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 3, 1) * 7; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 4, 1) * 6; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 5, 1) * 5; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 6, 1) * 4; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 7, 1) * 3; | |
v_calculo := v_calculo + substr(pp_nr_inscricao_estadual, 8, 1) * 2; | |
v_calculo := v_calculo * 10; | |
v_digito := mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 9, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
ELSE | |
IF length(trim(pp_nr_inscricao_estadual)) <> 10 THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_calculo := substr(pp_nr_inscricao_estadual, 1, 1) * 10; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 2, 1) * 9; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 3, 1) * 8; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 4, 1) * 7; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 5, 1) * 6; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 6, 1) * 5; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 7, 1) * 4; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 8, 1) * 3; | |
v_calculo := v_calculo + | |
substr(pp_nr_inscricao_estadual, 9, 1) * 2; | |
v_calculo := v_calculo * 10; | |
v_digito := mod(v_calculo, 11); | |
IF v_digito >= 10 THEN | |
v_digito := 0; | |
END IF; | |
IF substr(pp_nr_inscricao_estadual, 10, 1) <> v_digito THEN | |
v_verificador := 'ERRADO'; | |
ELSE | |
v_verificador := 'CERTO'; | |
END IF; | |
END IF; | |
END IF; | |
END IF; | |
RETURN v_verificador; | |
END IF; | |
IF v_verificador IS NULL THEN | |
RETURN 'UF INVÁLIDA'; | |
END IF; | |
END; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment