public RetornoCteDistDFeInt(string envioStr, string retornoStr, string retornoCompletaStr, retDistDFeInt retorno) { EnvioStr = envioStr; RetornoStr = retornoStr; RetornoCompletoStr = retornoCompletaStr; 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> /// <param name="configuracaoServico"></param> /// <returns>Retorna um objeto da classe CTeDistDFeInteresse com os documentos de interesse do CNPJ/CPF pesquisado</returns> public RetornoCteDistDFeInt CTeDistDFeInteresse(string ufAutor, string documento, string ultNSU = "0", string nSU = "0", ConfiguracaoServico configuracaoServico = null) { var configServico = configuracaoServico ?? ConfiguracaoServico.Instancia; distDFeInt pedDistDFeInt; XmlDocument dadosConsulta; var ws = InicializaCTeDistDFeInteresse(documento, ultNSU, nSU, out pedDistDFeInt, out dadosConsulta, configServico); XmlNode retorno = ws.Execute(dadosConsulta); var retornoXmlString = retorno.OuterXml; var retConsulta = new retDistDFeInt().CarregarDeXmlString(retornoXmlString); SalvarArquivoXml(DateTime.Now.ParaDataHoraString() + "-distDFeInt.xml", retornoXmlString, configServico); #region Obtém um retDistDFeInt de cada evento e salva em arquivo if (retConsulta.loteDistDFeInt != null && configServico.UnZip) { for (int i = 0; i < retConsulta.loteDistDFeInt.Length; i++) { string conteudo = Compressao.Unzip(retConsulta.loteDistDFeInt[i].XmlNfe); string chCTe = string.Empty; if (conteudo.StartsWith("<cteProc")) { var retConteudo = FuncoesXml.XmlStringParaClasse <CTe.Classes.cteProc>(conteudo); chCTe = retConteudo.protCTe.infProt.chCTe; } else if (conteudo.StartsWith("<procEventoCTe")) { var procEventoNFeConteudo = FuncoesXml.XmlStringParaClasse <Classes.Servicos.DistribuicaoDFe.Schemas.procEventoCTe>(conteudo); chCTe = procEventoNFeConteudo.eventoCTe.infEvento.chCTe; } string[] schema = retConsulta.loteDistDFeInt[i].schema.Split('_'); if (chCTe == string.Empty) { chCTe = DateTime.Now.ParaDataHoraString() + "_SEMCHAVE"; } SalvarArquivoXml(chCTe + "-" + schema[0] + ".xml", conteudo, configServico); } } #endregion return(new RetornoCteDistDFeInt(pedDistDFeInt.ObterXmlString(), retConsulta.ObterXmlString(), retornoXmlString, retConsulta)); }
/// <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 = ServicoNFe.NFeDistribuicaoDFe.VersaoServicoParaString(_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 if (retConsulta.loteDistDFeInt != null) { for (int i = 0; i < retConsulta.loteDistDFeInt.Length; i++) { string conteudo = Compressao.Unzip(retConsulta.loteDistDFeInt[i].XmlNfe); string chNFe = string.Empty; if (conteudo.StartsWith("<retNFe")) { var retConteudo = FuncoesXml.XmlStringParaClasse <Classes.Servicos.DistribuicaoDFe.Schemas.resNFe>(conteudo); chNFe = retConteudo.chNFe; } else if (conteudo.StartsWith("<procEventoNFe")) { var procEventoNFeConteudo = FuncoesXml.XmlStringParaClasse <Classes.Servicos.DistribuicaoDFe.Schemas.procEventoNFe>(conteudo); chNFe = procEventoNFeConteudo.retEvento.infEvento.chNFe; } string[] schema = retConsulta.loteDistDFeInt[i].schema.Split('_'); SalvarArquivoXml(chNFe + "_" + schema[0] + ".xml", conteudo); } } #endregion return(new RetornoNfeDistDFeInt(pedDistDFeInt.ObterXmlString(), retConsulta.ObterXmlString(), retornoXmlString, retConsulta)); #endregion }
/// <summary> /// Converte um objeto do tipo retDistDFeInt para uma string no formato XML com os dados do objeto /// </summary> /// <param name="retDistDFeInt">Objeto do tipo retDistDFeInt</param> /// <returns>Retorna uma string no formato XML com os dados do objeto retDistDFeInt</returns> public static string ObterXmlString(this retDistDFeInt retDistDFeInt) { return(FuncoesXml.ClasseParaXmlString(retDistDFeInt)); }
/// <summary> /// Carrega um objeto do tipo retDistDFeInt a partir de uma string no formato XML /// </summary> /// <param name="retDistDFeInt">Objeto do tipo retDistDFeInt</param> /// <param name="xmlString">String com uma estrutura XML</param> /// <returns>Retorna um objeto retDistDFeInt com as informações da string XML</returns> public static retDistDFeInt CarregarDeXmlString(this retDistDFeInt retDistDFeInt, string xmlString) { return(FuncoesXml.XmlStringParaClasse <retDistDFeInt>(xmlString)); }
/// <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 CTeDistDFeInteresse com os documentos de interesse do CNPJ/CPF pesquisado</returns> public RetornoCteDistDFeInt CTeDistDFeInteresse(string ufAutor, string documento, string ultNSU = "0", string nSU = "0") { var versaoServico = ConfiguracaoServico.Instancia.VersaoLayout; #region Cria o objeto wdsl para consulta var ws = WsdlFactory.CriaWsdlCTeDistDFeInteresse(); #endregion #region Cria o objeto distCTeInt var pedDistDFeInt = new distDFeInt { versao = "1.00", tpAmb = ConfiguracaoServico.Instancia.tpAmb, cUFAutor = ConfiguracaoServico.Instancia.cUF }; if (documento.Length == 11) { pedDistDFeInt.CPF = documento; } if (documento.Length > 11) { pedDistDFeInt.CNPJ = documento; } pedDistDFeInt.distNSU = new distNSU { ultNSU = ultNSU.PadLeft(15, '0') }; if (!nSU.Equals("0")) { pedDistDFeInt.consNSU = new consNSU { NSU = nSU.PadLeft(15, '0') }; pedDistDFeInt.distNSU = null; } #endregion #region Valida, Envia os dados e obtém a resposta pedDistDFeInt.ValidaSchema(); var xmlConsulta = pedDistDFeInt.ObterXmlString(); var dadosConsulta = new XmlDocument(); dadosConsulta.LoadXml(xmlConsulta); string path = DateTime.Now.ParaDataHoraString() + "-ped-DistDFeInt.xml"; SalvarArquivoXml(path, xmlConsulta); XmlNode retorno = ws.Execute(dadosConsulta); var retornoXmlString = retorno.OuterXml; var retConsulta = new retDistDFeInt().CarregarDeXmlString(retornoXmlString); SalvarArquivoXml(DateTime.Now.ParaDataHoraString() + "-distDFeInt.xml", retornoXmlString); #region Obtém um retDistDFeInt de cada evento e salva em arquivo if (retConsulta.loteDistDFeInt != null) { for (int i = 0; i < retConsulta.loteDistDFeInt.Length; i++) { string conteudo = Compressao.Unzip(retConsulta.loteDistDFeInt[i].XmlNfe); string chCTe = string.Empty; if (conteudo.StartsWith("<cteProc")) { var retConteudo = FuncoesXml.XmlStringParaClasse <CTe.Classes.cteProc>(conteudo); chCTe = retConteudo.protCTe.infProt.chCTe; } else if (conteudo.StartsWith("<procEventoCTe")) { var procEventoNFeConteudo = FuncoesXml.XmlStringParaClasse <Classes.Servicos.DistribuicaoDFe.Schemas.procEventoCTe>(conteudo); chCTe = procEventoNFeConteudo.eventoCTe.infEvento.chCTe; } string[] schema = retConsulta.loteDistDFeInt[i].schema.Split('_'); if (chCTe == string.Empty) { chCTe = DateTime.Now.ParaDataHoraString() + "_SEMCHAVE"; } SalvarArquivoXml(chCTe + "-" + schema[0] + ".xml", conteudo); } } #endregion return(new RetornoCteDistDFeInt(pedDistDFeInt.ObterXmlString(), retConsulta.ObterXmlString(), retornoXmlString, retConsulta)); #endregion }
public RetornoNfeDistDFeInt(string envioStr, string retornoStr, string retornoCompletaStr, retDistDFeInt retorno) : base(envioStr, retornoStr, retornoCompletaStr, retorno) { Retorno = retorno; }