seabeck.pages.dev

Como validar Inscrição Estadual de Minas Gerais usando script Bash?

Validar uma Inscrição Estadual (IE) de Minas Gerais manualmente pode ser um processo demorado e propenso a erros. Com um script Bash, você automatiza a verificação dos dígitos verificadores, garantindo precisão e rapidez no processamento de grandes volumes de dados.

Pré-requisitos

Criando o script de validação

O script a seguir implementa o algoritmo de validação da IE de Minas Gerais. Ele verifica se a inscrição possui 13 dígitos e valida os dois dígitos verificadores usando os pesos específicos do estado.

#!/bin/bash

# Função para validar IE de Minas Gerais
validate_ie_mg() {
    local ie=$1
    local base=${ie:0:11}
    local digito1=${ie:11:1}
    local digito2=${ie:12:1}
    local soma1=0
    local soma2=0
    local peso=0
    
    # Cálculo do primeiro dígito verificador
    for ((i=0; i<${#base}; i++)); do
        local num=${base:$i:1}
        peso=$((i + 3))
        soma1=$((soma1 + num * peso))
    done
    
    local resto1=$((soma1 % 11))
    local dv1=$((11 - resto1))
    if [ $dv1 -ge 10 ]; then
        dv1=0
    fi
    
    # Cálculo do segundo dígito verificador
    local base_com_dv1="${base}${dv1}"
    for ((i=0; i<${#base_com_dv1}; i++)); do
        local num=${base_com_dv1:$i:1}
        peso=$((i + 4))
        soma2=$((soma2 + num * peso))
    done
    
    local resto2=$((soma2 % 11))
    local dv2=$((11 - resto2))
    if [ $dv2 -ge 10 ]; then
        dv2=0
    fi
    
    # Verificação final
    if [ "$dv1$dv2" = "${digito1}${digito2}" ]; then
        echo "VÁLIDA"
    else
        echo "INVÁLIDA"
    fi
}

# Exemplo de uso
read -p "Digite a IE de Minas Gerais (13 dígitos): " ie
if [[ $ie =~ ^[0-9]{13}$ ]]; then
    validate_ie_mg $ie
else
    echo "Formato inválido! A IE deve ter exatamente 13 dígitos."
fi

Exemplo Prático

IE de MG Saída do Script
0623079050042 VÁLIDA
0623079050043 INVÁLIDA
0623079050040 INVÁLIDA

Conclusão

Com este script Bash, você automatiza completamente a validação de Inscrições Estaduais de Minas Gerais, eliminando erros manuais e processando dados em segundos. O método é robusto, seguindo exatamente o algoritmo oficial do estado, e pode ser facilmente integrado em pipelines de validação maiores.