Olá Pessoal!
Peguei aqui no fórum a função para validar inscrição estadual.
Porém estou com problemas no estado da BA
Esta inscrição: 080.730.049-30 não valida.
Será que alguém tem corrigida?
Obrigado!
Marlon.
Olá Pessoal!
Peguei aqui no fórum a função para validar inscrição estadual.
Porém estou com problemas no estado da BA
Esta inscrição: 080.730.049-30 não valida.
Será que alguém tem corrigida?
Obrigado!
Marlon.
Olá Pessoal!
Segue abaixo o código que validar a inscrição estadual da Bahia com 8 e 9 dígitos:
//Bahia
function CheckIEBA($ie) {
//==========================================================
//Quando a inscrição estadual da BA conter 8 digitos…
//==========================================================
if (strlen($ie) == 8) {
$arr1 = array('0', '1', '2', '3', '4', '5', '8');
$arr2 = array('6', '7', '9');
$i = substr($ie, 0, 1);
if (in_array($i, $arr1)) {
$modulo = 10;
} elseif (in_array($i, $arr2)) {
$modulo = 11;
}
$b = 7;
$soma = 0;
for ($i = 0; $i <= 5; $i++) {
$soma += $ie[$i] * $b;
$b--;
}
$i = $soma % $modulo;
if ($modulo == 10) {
if ($i == 0) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
} else {
if ($i <= 1) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
}
if (!($dig == $ie[7])) {
return 0;
} else {
$b = 8;
$soma = 0;
for ($i = 0; $i <= 5; $i++) {
$soma += $ie[$i] * $b;
$b--;
}
$soma += $ie[7] * 2;
$i = $soma % $modulo;
if ($modulo == 10) {
if ($i == 0) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
} else {
if ($i <= 1) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
}
return ($dig == $ie[6]);
}
}
//====================================================================================
//Quando a inscrição estadual da BA conter 9 digitos + 2 dígitos verificadores....
//====================================================================================
if (strlen($ie) == 9) {
$arr1 = array('0', '1', '2', '3', '4', '5', '8');
$arr2 = array('6', '7', '9');
$i = substr($ie, 1, 1); //captura o segundo dígito da IE para inscrições estaduais com 9 digitos...
if (in_array($i, $arr1)) {
$modulo = 10;
} elseif (in_array($i, $arr2)) {
$modulo = 11;
}
//-------------------------------------------------
//Calcula o segundo dígito primeiramente...
//-------------------------------------------------
$b = 8;
$soma = 0;
for ($i = 0; $i <= 6; $i++) {
$soma += $ie[$i] * $b;
$b--;
}
$i = $soma % $modulo;
if ($modulo == 10) {
if ($i == 0) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
} else {
if ($i <= 1) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
}
if (!($dig == $ie[8])) {
return 0;
} else {
$b = 9;
$soma = 0;
for ($i = 0; $i <= 6; $i++) {
$soma += $ie[$i] * $b;
$b--;
}
$soma += $ie[8] * 2;
$i = $soma % $modulo;
if ($modulo == 10) {
if ($i == 0) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
} else {
if ($i <= 1) {
$dig = 0;
} else {
$dig = $modulo - $i;
}
}
return ($dig == $ie[7]);
}
}
if (strlen($ie) < 8 And strlen($ie) > 9) {
return 0;
}
}
Este código faz parte de um código postado aqui.
Abraços,
Marlon.
Obrigado por compartilhar.
Sei que o tópico está resolvido.
Mas para ajudar a quem chegou aqui e procura algo mais.
Se possível deem uma olhadinha nisso:
http://www.scriptcase.com.br/forum/index.php?topic=5179.0
[font=verdana][size=2px]http://forum.imasters.com.br/topic/322873-resolvidovalidar-inscricao-estadual-de-todos-os-estados/[/size][/font]
https://github.com/pierophp/validacao-inscricao-estadual-em-PHP/blob/master/valid.php
https://mateusmachado.wordpress.com/2008/09/08/validacao-de-inscricao-estadual-em-php/
http://www.scriptbrasil.com.br/forum/topic/144187-validar-inscri%C3%A7%C3%A3o-estadual-mg/
http://www.sefaz.mt.gov.br/portal/Tributario/Digito_verificador/Default.php
Olá Amigos!
Só para complementar:
Não tinha encontrado em nenhum lugar a verificação da inscrição estadual da Bahia que tem 9 dígitos.
Desta forma, alterei a rotina do amigo que postou este chamado: http://www.scriptcase.com.br/forum/index.php?topic=5179.0
Acrescentando a validação para a inscrição estadual da Bahia com 9 dígitos.
Um forte abraço a todos.
Marlon.