Exemplo n.º 1
0
        private bool InscricaoEstadualEstaValida()
        {
            bool inscricaoValida = false;

            if (string.IsNullOrEmpty(NumeroDocumento) || NumeroDocumento.TemCaracterRepetido() || !EstadoEmissor.EhUmaUf())
            {
                return(false);
            }

            if (NumeroDocumento.Equals(_isento))
            {
                return(true);
            }

            if (!NumeroDocumento.EhUmNumeroPositivo() && NumeroDocumento[0] != 'P')
            {
                return(false);
            }

            switch (EstadoEmissor)
            {
            case "AC":
                inscricaoValida = InscricaoEstadualAcre.EhUmaInscricaoEstadualAcre(this);
                break;

            case "AL":
                inscricaoValida = InscricaoEstadualAlagoas.EhUmaInscricaoEstadualAlagoas(this);
                break;

            case "AP":
                inscricaoValida = InscricaoEstadualAmapa.EhUmaInscricaoEstadualAmapa(this);
                break;

            case "AM":
                inscricaoValida = InscricaoEstadualAmazonas.EhUmaInscricaoEstadualAmazonas(this);
                break;

            case "BA":
                inscricaoValida = InscricaoEstadualBahia.EhUmaInscricaoEstadualBahia(this);
                break;

            case "CE":
                inscricaoValida = InscricaoEstadualCeara.EhUmaInscricaoEstadualCeara(this);
                break;

            case "DF":
                inscricaoValida = InscricaoEstadualDistritoFederal.EhUmaInscricaoEstadualDistritoFederal(this);
                break;

            case "ES":
                inscricaoValida = InscricaoEstadualEspiritoSanto.EhUmaInscricaoEstadualEspiritoSanto(this);
                break;

            case "GO":
                inscricaoValida = InscricaoEstadualGoias.EhUmaInscricaoEstadualGoias(this);
                break;

            case "MA":
                inscricaoValida = InscricaoEstadualMaranhao.EhUmaInscricaoEstadualMaranhao(this);
                break;

            case "MT":
                inscricaoValida = InscricaoEstadualMatoGrosso.EhUmaInscricaoEstadualMatoGrosso(this);
                break;

            case "MS":
                inscricaoValida = InscricaoEstadualMatoGrossoDoSul.EhUmaInscricaoEstadualMatoGrossoDoSul(this);
                break;

            case "MG":
                inscricaoValida = InscricaoEstadualMinasGerais.EhUmaInscricaoEstadualMinasGerais(this);
                break;

            case "PA":
                inscricaoValida = InscricaoEstadualPara.EhUmaInscricaoEstadualPara(this);
                break;

            case "PB":
                inscricaoValida = InscricaoEstadualParaiba.EhUmaInscricaoEstadualParaiba(this);
                break;

            case "PR":
                inscricaoValida = InscricaoEstadualParana.EhUmaInscricaoEstadualParana(this);
                break;

            case "PE":
                inscricaoValida = InscricaoEstadualPernambuco.EhUmaInscricaoEstadualPernambuco(this);
                break;

            case "PI":
                inscricaoValida = InscricaoEstadualPiaui.EhUmaInscricaoEstadualPiaui(this);
                break;

            case "RJ":
                inscricaoValida = InscricaoEstadualRioDeJaneiro.EhUmaInscricaoEstadualRioDeJaneiro(this);
                break;

            case "RN":
                inscricaoValida = InscricaoEstadualRioGrandeDoNorte.EhUmaInscricaoEstadualRioGrandeDoNorte(this);
                break;

            case "RS":
                inscricaoValida = InscricaoEstadualRioGrandeDoSul.EhUmaInscricaoEstadualRioGrandeDoSul(this);
                break;

            case "RO":
                inscricaoValida = InscricaoEstadualRondonia.EhUmaInscricaoEstadualRondonia(this);
                break;

            case "RR":
                inscricaoValida = InscricaoEstadualRoraima.EhUmaInscricaoEstadualRoraima(this);
                break;

            case "SC":
                inscricaoValida = InscricaoEstadualSantaCatarina.EhUmaInscricaoEstadualSantaCatarina(this);
                break;

            case "SP":
                inscricaoValida = InscricaoEstadualSaoPaulo.EhUmaInscricaoEstadualSaoPaulo(this);
                break;

            case "SE":
                inscricaoValida = InscricaoEstadualSergipe.EhUmaInscricaoEstadualSergipe(this);
                break;

            case "TO":
                inscricaoValida = InscricaoEstadualTocantins.EhUmaInscricaoEstadualTocantins(this);
                break;
            }

            return(inscricaoValida);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Determina e aplica uma máscara de edição para o número da inscrição estadual, conforme o estado emissor.
        /// </summary>
        /// <returns>Retorna o número da inscrição estadual formatado com a máscara de edição.</returns>
        public string ToInscricaoEstadualFormat()
        {
            if (NumeroDocumento.Equals(_isento) || !InscricaoEstadualEstaValida())
            {
                return(NumeroDocumento);
            }

            string ie = NumeroDocumento.RemoverMascaraEdicao().Trim();
            string inscricaoEditada = NumeroDocumento;

            switch (EstadoEmissor)
            {
            case "AC":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.000\.000\/000\-00");
                break;

            case "AL":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.0\.00000\-0");
                break;

            case "AP":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.000000\-0");
                break;

            case "AM":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.000\.000\-0");
                break;

            case "BA":
                if (ie.Length == 8)
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000000\-00");
                }
                else
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"0000000\-00");
                }

                break;

            case "CE":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00000000\-0");
                break;

            case "DF":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000\.00000\.000\-00");
                break;

            case "ES":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00000000\-0");
                break;

            case "GO":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.000\.000\-0");
                break;

            case "MA":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.000000\-0");
                break;

            case "MT":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"0000000000\-0");
                break;

            case "MS":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00000000\-0");
                break;

            case "MG":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000\.000\.000\/0000");
                break;

            case "PA":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\-000000\-0");
                break;

            case "PB":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00000000\-0");
                break;

            case "PR":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000\.00000\-00");
                break;

            case "PE":
                if (ie.Length == 9)
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"0000000\-00");
                }
                else
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.0\.000\.0000000\-0");
                }

                break;

            case "PI":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00000000\-0");
                break;

            case "RJ":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.000\.00\-0");
                break;

            case "RN":
                if (ie.Length == 9)
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.000\.000\-0");
                }
                else
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.0\.000\.000\-0");
                }

                break;

            case "RS":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000\/0000000");
                break;

            case "RO":
                if (ie.Length == 9)
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000\.00000\-0");
                }
                else
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"0000000000000\-0");
                }

                break;

            case "RR":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00000000\-0");
                break;

            case "SC":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000\.000\.000");
                break;

            case "SP":
                if (ie.Length == 12)
                {
                    inscricaoEditada = Convert.ToUInt64(ie).ToString(@"000\.000\.000\.000");
                }
                else
                {
                    ie = ie.Substring(1);
                    ie = Convert.ToUInt64(ie).ToString(@"00000000\.0\/000");
                    inscricaoEditada = NumeroDocumento[0].ToString() + "-" + ie;
                }
                break;

            case "SE":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00000000\-0");
                break;

            case "TO":
                inscricaoEditada = Convert.ToUInt64(ie).ToString(@"00\.00\.000000\.0");
                break;
            }

            return(inscricaoEditada);
        }