예제 #1
0
        public static bool EhUmaInscricaoEstadualParana(this InscricaoEstadual inscricaoEstadual)
        {
            if (inscricaoEstadual.NumeroDocumento.Length != TamanhoInscricaoEstadualParana)
            {
                return(false);
            }

            int[] digitoVerificadorInformado = inscricaoEstadual.ObterUltimosDoisDigitosDeControleInformados();

            int[] digitoVerificadorCalculado = { 0, 0 };

            // Controla a quantidade de dígitos verificadores.
            for (int i = 0; i < 2; i++)
            {
                int posicaoInicial = 0;
                int tamanho        = inscricaoEstadual.NumeroDocumento.Length - 2 + i;

                string baseCalculo = inscricaoEstadual.ObterBaseDeCalculo(posicaoInicial, tamanho);

                int soma = inscricaoEstadual.AplicarPeso(baseCalculo, PesoInicialParana, PesoMaximoParana);

                digitoVerificadorCalculado[i] = CalcularDigitoDeControle(soma);
            }

            return(digitoVerificadorInformado[0] == digitoVerificadorCalculado[0] && digitoVerificadorInformado[1] == digitoVerificadorCalculado[1]);
        }
        public static bool EhUmaInscricaoEstadualAcre(this InscricaoEstadual inscricaoEstadual)
        {
            if (inscricaoEstadual.NumeroDocumento.Length != TamanhoInscricaoEstadualAcre || !inscricaoEstadual.IniciaCom(CodigoEstadoAcre))
            {
                return(false);
            }

            int[] digitoVerificadorCalculado = { 0, 0 };

            for (int i = 0; i < 2; i++)
            {
                int posicaoInicial = 0;
                int tamanho        = inscricaoEstadual.NumeroDocumento.Length - 2 + i;

                string baseCalculo = inscricaoEstadual.ObterBaseDeCalculo(posicaoInicial, tamanho);

                int soma = inscricaoEstadual.AplicarPeso(baseCalculo, PesoInicialAcre, PesoMaximoAcre);

                digitoVerificadorCalculado[i] = CalcularDigitoDeControle(soma % 11);
            }

            int[] digitoVerificadorInformado = inscricaoEstadual.ObterUltimosDoisDigitosDeControleInformados();

            return(digitoVerificadorInformado[0] == digitoVerificadorCalculado[0] && digitoVerificadorInformado[1] == digitoVerificadorCalculado[1]);
        }
        public static bool EhUmaInscricaoEstadualBahia(this InscricaoEstadual inscricaoEstadual)
        {
            if (inscricaoEstadual.NumeroDocumento.Length != TamanhoMinimoInscricaoEstadualBahia &&
                inscricaoEstadual.NumeroDocumento.Length != TamanhoMaximoInscricaoEstadualBahia)
            {
                return(false);
            }

            int[] digitoVerificadorCalculado = { 0, 0 };
            int   posicaoInicial             = 0;
            int   tamanho = inscricaoEstadual.NumeroDocumento.Length - 2;

            string baseCalculo = inscricaoEstadual.ObterBaseDeCalculo(posicaoInicial, tamanho);

            for (int i = 1; i >= 0; i--)
            {
                bool primeiroDigito = i == 1;

                int soma = inscricaoEstadual.AplicarPeso(baseCalculo, PesoInicialBahia, PesoMaximoBahia);

                digitoVerificadorCalculado[i] = CalcularDigitoDeControle(soma, baseCalculo[0], primeiroDigito);

                baseCalculo += digitoVerificadorCalculado[i];
            }

            int[] digitoVerificadorInformado = inscricaoEstadual.ObterUltimosDoisDigitosDeControleInformados();

            return(digitoVerificadorInformado[0] == digitoVerificadorCalculado[0] && digitoVerificadorInformado[1] == digitoVerificadorCalculado[1]);
        }
예제 #4
0
        public static bool EhUmaInscricaoEstadualMinasGerais(this InscricaoEstadual inscricaoEstadual)
        {
            if (inscricaoEstadual.NumeroDocumento.Length != TamanhoInscricaoEstadualMinasGerais)
            {
                return(false);
            }

            int    posicaoInicial = 0;
            int    tamanho        = 3;
            string municipio      = inscricaoEstadual.NumeroDocumento.Substring(posicaoInicial, tamanho);

            posicaoInicial = 3;
            tamanho        = 8;
            string ordem = inscricaoEstadual.NumeroDocumento.Substring(posicaoInicial, tamanho);

            int[]  digitoVerificadorCalculado = { 0, 0 };
            int[]  digitoVerificadorInformado = inscricaoEstadual.ObterUltimosDoisDigitosDeControleInformados();
            string baseCalculo;

            // Controla os passos e a aplicação do peso
            for (int i = 0; i < 2; i++)
            {
                if (i == 0)
                {
                    baseCalculo = municipio + "0" + ordem;

                    string aux     = (AplicarPeso(baseCalculo)).ToString();
                    int    posicao = aux.Length - 1;

                    digitoVerificadorCalculado[i] = 10 - int.Parse(aux[posicao].ToString());
                }

                // Calculo do segundo digíto.
                baseCalculo = municipio + ordem + digitoVerificadorCalculado[i++].ToString();

                int soma = inscricaoEstadual.AplicarPeso(baseCalculo, PesoInicialMinasGerais, PesoMaximoMinasGerais);

                digitoVerificadorCalculado[i] = (soma % 11) <= 1 ? 0 : 11 - (soma % 11);
            }

            // Compara os dígitos verificadores informado e calculado.
            return(digitoVerificadorInformado[0] == digitoVerificadorCalculado[0] && digitoVerificadorInformado[1] == digitoVerificadorCalculado[1]);
        }
예제 #5
0
        public static bool EhUmaInscricaoEstadualPernambuco(this InscricaoEstadual inscricaoEstadual)
        {
            if (inscricaoEstadual.NumeroDocumento.Length != TamanhoMinimoInscricaoEstadualPernambuco &&
                inscricaoEstadual.NumeroDocumento.Length != TamanhoMaximoInscricaoEstadualPernambuco)
            {
                return(false);
            }

            if (inscricaoEstadual.NumeroDocumento.Length == TamanhoMinimoInscricaoEstadualPernambuco)
            {
                int[] digitoVerificadorInformado = inscricaoEstadual.ObterUltimosDoisDigitosDeControleInformados();

                return(CalculaDigitoAtual(inscricaoEstadual.NumeroDocumento, digitoVerificadorInformado));
            }
            else
            {
                int digitoVerificadorInformado = inscricaoEstadual.ObterUltimoDigitoDeControleInformado();

                return(CalculaDigitoAntigo(inscricaoEstadual.NumeroDocumento, digitoVerificadorInformado));
            }
        }