Validação da inscrição estadual

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.