public RetornoNfeDistDFeInt(string envioStr, string retornoStr, string retornoCompletaStr, retDistDFeInt retorno) : base(envioStr, retornoStr, retornoCompletaStr, retorno) { Retorno = retorno; }
/// <summary> /// Serviço destinado à distribuição de informações resumidas e documentos fiscais eletrônicos de interesse de um ator, seja este pessoa física ou jurídica. /// </summary> /// <param name="ufAutor">Código da UF do Autor</param> /// <param name="documento">CNPJ/CPF do interessado no DF-e</param> /// <param name="ultNSU">Último NSU recebido pelo Interessado</param> /// <param name="nSU">Número Sequencial Único</param> /// <returns>Retorna um objeto da classe RetornoNfeDistDFeInt com os documentos de interesse do CNPJ/CPF pesquisado</returns> public RetornoNfeDistDFeInt NfeDistDFeInteresse(string ufAutor, string documento, string ultNSU, string nSU = "0") { var versaoServico = Conversao.VersaoServicoParaString(ServicoNFe.NFeDistribuicaoDFe, _cFgServico.VersaoNFeDistribuicaoDFe); #region Cria o objeto wdsl para consulta var ws = CriarServico(ServicoNFe.NFeDistribuicaoDFe); ws.nfeCabecMsg = new nfeCabecMsg { cUF = _cFgServico.cUF, versaoDados = versaoServico }; #endregion #region Cria o objeto distDFeInt var pedDistDFeInt = new distDFeInt { versao = versaoServico, tpAmb = _cFgServico.tpAmb, cUFAutor = _cFgServico.cUF, distNSU = new distNSU { ultNSU = ultNSU.PadLeft(15, '0') } }; if (documento.Length == 11) pedDistDFeInt.CPF = documento; if (documento.Length > 11) pedDistDFeInt.CNPJ = documento; if (!nSU.Equals("0")) pedDistDFeInt.consNSU = new consNSU { NSU = nSU.PadLeft(15, '0') }; #endregion #region Valida, Envia os dados e obtém a resposta var xmlConsulta = pedDistDFeInt.ObterXmlString(); Validador.Valida(ServicoNFe.NFeDistribuicaoDFe, _cFgServico.VersaoNFeDistribuicaoDFe, xmlConsulta); var dadosConsulta = new XmlDocument(); dadosConsulta.LoadXml(xmlConsulta); SalvarArquivoXml(DateTime.Now.ToString("yyyyMMddHHmmss") + "-ped-DistDFeInt.xml", xmlConsulta); var retorno = ws.Execute(dadosConsulta); var retornoXmlString = retorno.OuterXml; var retConsulta = new retDistDFeInt().CarregarDeXmlString(retornoXmlString); SalvarArquivoXml(DateTime.Now.ToString("yyyyMMddHHmmss") + "-distDFeInt.xml", retornoXmlString); #region Obtém um retDistDFeInt de cada evento e salva em arquivo for (int i = 0; i < retConsulta.loteDistDFeInt.Length; i++) { string conteudo = Compressao.Unzip(retConsulta.loteDistDFeInt[i].XmlNfe); var retConteudo = FuncoesXml.XmlStringParaClasse<Classes.Servicos.DistribuicaoDFe.Schemas.resNFe>(conteudo); string[] schema = retConsulta.loteDistDFeInt[i].schema.Split('_'); SalvarArquivoXml(retConteudo.chNFe + "_" + schema[0] + ".xml", conteudo); } #endregion return new RetornoNfeDistDFeInt(pedDistDFeInt.ObterXmlString(), retConsulta.ObterXmlString(), retornoXmlString, retConsulta); #endregion }