/// <summary> /// Consulta a situação cadastral, com base na UF/Documento /// <para>O documento pode ser: CPF ou CNPJ. O serviço avaliará o tamanho da string passada e determinará se a coonsulta será por CPF ou por CNPJ</para> /// </summary> /// <param name="uf"></param> /// <param name="documento"></param> /// <returns>Retorna um objeto da classe RetornoNfeConsultaCadastro com o retorno do serviço NfeConsultaCadastro</returns> public RetornoNfeConsultaCadastro NfeConsultaCadastro(string uf, string documento) { var versaoServico = Auxiliar.VersaoServicoParaString(ServicoNFe.NfeConsultaCadastro, _cFgServico.VersaoNfeConsultaCadastro); #region Cria o objeto wdsl para consulta var ws = CriarServico(ServicoNFe.NfeConsultaCadastro, TipoRecepcaoEvento.Nenhum); ws.nfeCabecMsg = new nfeCabecMsg { cUF = _cFgServico.cUF, versaoDados = versaoServico }; #endregion #region Cria o objeto ConsCad var pedConsulta = new ConsCad { versao = versaoServico, infCons = new infConsEnv { UF = uf } }; if (documento.Length == 11) { pedConsulta.infCons.CPF = documento; } if (documento.Length > 11) { pedConsulta.infCons.CNPJ = documento; } #endregion #region Valida, Envia os dados e obtém a resposta var xmlConsulta = pedConsulta.ObterXmlString(); Validador.Valida(ServicoNFe.NfeConsultaCadastro, TipoRecepcaoEvento.Nenhum, _cFgServico.VersaoNfeConsultaCadastro, xmlConsulta); var dadosConsulta = new XmlDocument(); dadosConsulta.LoadXml(xmlConsulta); SalvarArquivoXml(DateTime.Now.ToString("yyyyMMddHHmmss") + "-ped-cad.xml", xmlConsulta); var retorno = ws.Execute(dadosConsulta); var retornoXmlString = retorno.OuterXml; var retConsulta = new retConsCad().CarregarDeXmlString(retornoXmlString); SalvarArquivoXml(DateTime.Now.ToString("yyyyMMddHHmmss") + "-cad.xml", retornoXmlString); return(new RetornoNfeConsultaCadastro(pedConsulta.ObterXmlString(), retConsulta.ObterXmlString(), retornoXmlString, retConsulta)); #endregion }
/// <summary> /// Consulta a situação cadastral, com base na UF/Documento /// <para>O documento pode ser: IE, CNPJ ou CPF</para> /// </summary> /// <param name="uf">Sigla da UF consultada, informar 'SU' para SUFRAMA</param> /// <param name="tipoDocumento">Tipo de documento a ser consultado</param> /// <param name="documento">Documento a ser consultado</param> /// <returns>Retorna um objeto da classe RetornoNfeConsultaCadastro com o retorno do serviço NfeConsultaCadastro</returns> public RetornoNfeConsultaCadastro NfeConsultaCadastro(string uf, ConsultaCadastroTipoDocumento tipoDocumento, string documento) { var versaoServico = ServicoNFe.NfeConsultaCadastro.VersaoServicoParaString(_cFgServico.VersaoNfeConsultaCadastro); #region Cria o objeto wdsl para consulta var ws = CriarServico(ServicoNFe.NfeConsultaCadastro); ws.nfeCabecMsg = new nfeCabecMsg { cUF = _cFgServico.cUF, versaoDados = versaoServico }; #endregion #region Cria o objeto ConsCad var pedConsulta = new ConsCad { versao = versaoServico, infCons = new infConsEnv { UF = uf } }; switch (tipoDocumento) { case ConsultaCadastroTipoDocumento.Ie: pedConsulta.infCons.IE = documento; break; case ConsultaCadastroTipoDocumento.Cnpj: pedConsulta.infCons.CNPJ = documento; break; case ConsultaCadastroTipoDocumento.Cpf: pedConsulta.infCons.CPF = documento; break; default: throw new ArgumentOutOfRangeException("tipoDocumento", tipoDocumento, null); } #endregion #region Valida, Envia os dados e obtém a resposta var xmlConsulta = pedConsulta.ObterXmlString(); Validador.Valida(ServicoNFe.NfeConsultaCadastro, _cFgServico.VersaoNfeConsultaCadastro, xmlConsulta); var dadosConsulta = new XmlDocument(); dadosConsulta.LoadXml(xmlConsulta); SalvarArquivoXml(DateTime.Now.ToString("yyyyMMddHHmmss") + "-ped-cad.xml", xmlConsulta); var retorno = ws.Execute(dadosConsulta); var retornoXmlString = retorno.OuterXml; var retConsulta = new retConsCad().CarregarDeXmlString(retornoXmlString); SalvarArquivoXml(DateTime.Now.ToString("yyyyMMddHHmmss") + "-cad.xml", retornoXmlString); return(new RetornoNfeConsultaCadastro(pedConsulta.ObterXmlString(), retConsulta.ObterXmlString(), retornoXmlString, retConsulta)); #endregion }