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]); }
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]); }
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)); } }