コード例 #1
0
ファイル: Utils.cs プロジェクト: dungeon2567/ATIMO
        //public static PESSOA getPessoaFromReceita_PMSP(string astrCpfCnpj, out string astrOutAlert)
        public static PESSOA getPessoaFromReceita_PMSP(string astrCpfCnpj, ref List <string> alistOutAlert)
        {
            PESSOA lobjPessoaRet = new PESSOA();

            if (alistOutAlert == null)
            {
                alistOutAlert = new List <string>();
            }
            try
            {
                string lstrTipo;
                if (string.IsNullOrEmpty(astrCpfCnpj) == false)
                {
                    astrCpfCnpj = Utils.LimpaCpfCnpj(astrCpfCnpj);
                    switch (astrCpfCnpj.Length)
                    {
                    case 11:
                        lstrTipo = "F";
                        break;

                    case 14:
                        lstrTipo = "J";
                        break;

                    default:
                        throw new Exception("O documento deve ter 11 dígitos (CPF) ou 14 dígitos (CNPJ)");
                    }

                    if (lstrTipo == "J")
                    {
                        DadosFromReceitaWs lobjDados = DadosFromReceitaWs.getDados(astrCpfCnpj);

                        if (lobjDados.status != "OK")
                        {
                            throw new Exception(lobjDados.message);
                        }

                        if (lobjDados.situacao != "ATIVA")
                        {
                            alistOutAlert.Add("ESTE CNPJ NÃO ESTÁ ATVO NA RECEITA FEDERAL");
                        }

                        lobjPessoaRet.BAIRRO    = lobjDados.bairro;
                        lobjPessoaRet.CEP       = lobjDados.cep;
                        lobjPessoaRet.CIDADE    = lobjDados.municipio;
                        lobjPessoaRet.EMAIL     = lobjDados.email;
                        lobjPessoaRet.ENDERECO  = lobjDados.getEnderecoCompleto();
                        lobjPessoaRet.NOME      = lobjDados.nome;
                        lobjPessoaRet.NUM_DOC   = lobjDados.cnpj;
                        lobjPessoaRet.TELEFONE1 = lobjDados.telefone;
                        lobjPessoaRet.UF        = lobjDados.uf;
                        lobjPessoaRet.TIPO_DOC  = "CNPJ";
                        lobjPessoaRet.NUM_DOC   = lobjDados.cnpj;
                    }

                    ListResultadoCcm lobjResultCcm = new ListResultadoCcm();
                    try
                    {
                        lobjResultCcm = ListResultadoCcm.getDadosFromPMSPByCpfCnpj(Utils.LimpaCpfCnpj(astrCpfCnpj));
                    }
                    catch (Exception ErroPmsp)
                    {
                        alistOutAlert.Add("Não foi possível obter os dados do site da prefeitura pelo seguinte motivo : " + ErroPmsp.Message);
                    }

                    if (lobjResultCcm.getIndexCadastroOK > -1)
                    {
                        CadastroPessoaPMSP cad = lobjResultCcm.Cadastros[lobjResultCcm.getIndexCadastroOK];

                        if (lstrTipo == "F")
                        {
                            lobjPessoaRet.BAIRRO    = cad.Bairro;
                            lobjPessoaRet.CEP       = cad.Cep;
                            lobjPessoaRet.CIDADE    = cad.CidadeSite;
                            lobjPessoaRet.ENDERECO  = cad.EnderecoSite;
                            lobjPessoaRet.NOME      = cad.RazaoSocial;
                            lobjPessoaRet.TELEFONE1 = cad.Telefone;
                            lobjPessoaRet.UF        = cad.Bairro;
                            lobjPessoaRet.TIPO_DOC  = "CPF";
                            lobjPessoaRet.NUM_DOC   = cad.CpfCnpj;
                        }

                        if (cad.SituacaoCcm == enmSituacaoCcm.eCcmEncontrado)
                        {
                            lobjPessoaRet.INSC_MUNICIPAL = cad.CcmSite;
                        }
                        else if (cad.SituacaoCcm == enmSituacaoCcm.eCcmCancelado)
                        {
                            alistOutAlert.Add("CCM CANCELADO NA PREFEITURA DE SAO PAULO");
                        }

                        switch (cad.TipoPessoa.Trim())
                        {
                        case "PJ SIMPLES":
                            lobjPessoaRet.TIPO_PESSOA_TRIBUTACAO = (int?)enmTipoPessoaTrib.ePJ_OptanteSimples;
                            break;

                        case "PJ COMUM":
                            lobjPessoaRet.TIPO_PESSOA_TRIBUTACAO = (int?)enmTipoPessoaTrib.ePJ_Comum;
                            break;

                        case "PJ":
                            lobjPessoaRet.TIPO_PESSOA_TRIBUTACAO = (int?)enmTipoPessoaTrib.ePF;
                            break;

                        case "PJ MEI":
                            lobjPessoaRet.TIPO_PESSOA_TRIBUTACAO = (int?)enmTipoPessoaTrib.ePJ_Mei;
                            break;

                        default:
                            break;
                        }
                    }
                    else if (lstrTipo == "F")
                    {
                        //throw new Exception("Este cadastro não foi encontrado no site da prefeitura de São Paulo pelo CPF informado");
                    }
                }
            }
            catch (Exception Erro)
            {
                throw Erro;
            }

            return(lobjPessoaRet);
        }
コード例 #2
0
        private Empresa getEmpresa(out string astrAvisos)
        {
            NFSePmspSender nfse            = new NFSePmspSender();
            Empresa        lobjEmpresa     = new Empresa();
            string         lstrCertificado = Certificado.getCurrentSerial(out lobjEmpresa);

            lobjEmpresa.SerialCertificado = lstrCertificado;
            nfse.iniciaEnvio(new EnvioParamConsultaCNPJ(), lobjEmpresa, 1);
            lobjEmpresa.CcmPmsp = nfse.InscricaoMunicipalCCM;
            lobjEmpresa.EmiteNF = nfse.EmiteNF.ToString();
            astrAvisos          = string.Empty;

            if (string.IsNullOrEmpty(lobjEmpresa.CcmPmsp) == false)
            {
                try
                {
                    CadastroPessoaPMSP lobjCmmResult = ListResultadoCcm.getDadosFromPMSPByCcm(lobjEmpresa.CcmPmsp);
                    if (lobjCmmResult.SituacaoCcm == enmSituacaoCcm.eCcmEncontrado)
                    {
                        if (string.IsNullOrEmpty(lobjEmpresa.CNPJ))
                        {
                            lobjEmpresa.CNPJ = lobjCmmResult.CpfCnpj;
                        }

                        if (Utils.LimpaCpfCnpj(lobjEmpresa.CNPJ) == Utils.LimpaCpfCnpj(lobjCmmResult.CpfCnpj))
                        {
                            lobjEmpresa.ListaServicos = lobjCmmResult.Servicos;
                            if (lobjCmmResult.Servicos.Count >= 1)
                            {
                                lobjEmpresa.CodigoServicoPMSP = lobjCmmResult.Servicos[0].Codigo;
                            }
                            lobjEmpresa.Nome = lobjCmmResult.RazaoSocial;
                            switch (lobjCmmResult.TipoPessoa)
                            {
                            case "PJ SIMPLES":
                                lobjEmpresa.OptanteSimplesNacional = "S";
                                break;

                            case "PJ COMUM":
                                lobjEmpresa.OptanteSimplesNacional = "N";
                                break;

                            default:
                                break;
                            }
                        }
                        else
                        {
                            astrAvisos = "O CNPJ encontrado no certificado não é o mesmo cadastrado na prefeitura, favor consulte o analista responsável";
                        }
                    }
                    else
                    {
                        astrAvisos = "Não foi encontrado um CCM válido, favor consulte o analista responsável";
                    }
                }
                catch (Exception Erro)
                {
                    astrAvisos = "Ocorreu o seguinte erro ao obter os dados da prefeitura " + Erro.Message;
                }
            }
            else
            {
                astrAvisos = "Devido a falta de identificação de CCM via web service da prefeitura, não é possível identificar demais dados";
            }

            return(lobjEmpresa);
        }