| Governo do Estado de Pernambuco - Roteiro de Crítica da Inscrição Estadual |
| O número de inscrição estadual no Cadastro de Contribuintes do Estado de Pernambuco - CACEPE possui 14 algarismos (dígitos), sendo 13 principais e 1 verificador. O cálculo do dígito verificador envolve o uso de "pesos" e da função "módulo" com parâmetro "11", conforme pode ser visto no exemplo abaixo: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Procedimentos de Cálculo (ex. para 18.1.001.0000004-9) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1. Multiplique cada algarismo principal pelo seu respectivo peso: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2. Some os produtos obtidos para encontrar o total: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3. Divida esse total pela constante "11" para obter o resto: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4. Subtraia esse resto da constante "11" para encontrar o dígito verificador:11 - 2 = 9 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Quando essa diferença for maior que "9", subtraia "10" unidades para obter o valor do dígito verificador, uma vez que o mesmo deve ser sempre representado por apenas um algarismo. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Rotina
de Verificação (exemplo em linguagem Pascal) O parâmetro "ie" deve ser do tipo String com 14 posições. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Function
teste_dv_cacepe (ie:
String): Boolean; |
i := StrToInt(Copy(ie,6,1))
* 9; j := StrToInt(Copy(ie,5,1)) * 1; k := StrToInt(Copy(ie,4,1)) * 2; l := StrToInt(Copy(ie,3,1)) * 3; m := StrToInt(Copy(ie,2,1)) * 4; n := StrToInt(Copy(ie,1,1)) * 5; total := b + c + d + e + f + g + h + i + j + k + l + m + n; dig := 11 - (total Mod 11); If dig > 9 Then dig := dig - 10; If dig <> a Then teste_dv_cacepe := False Else teste_dv_cacepe := True; End; |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Fechar |