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