public async Task <retConsSitNFe> ConsultarPelaChave(string chaveAcesso, string versao) { var chave = new ChaveFiscal(chaveAcesso); var consSit = new consSitNFe { chNFe = chaveAcesso, tpAmb = Configuracao.TipoAmbiente, versao = versao }; var xmlEvento = XmlUtils.ClasseParaXmlString <consSitNFe>(consSit); var arqEnv = Path.Combine("Logs", $"{DateTime.Now.Ticks}-pedConsSitNFe.xml"); await storage.SaveAsync(arqEnv, xmlEvento); var modeloDoc = chave.Modelo; var sefazUrl = Fabrica.FabricarUrl.ObterUrl(eTipoServico.ConsultaSituacaoNFe, Configuracao.TipoAmbiente, modeloDoc, Configuracao.UF); var envelope = Fabrica.SoapEnvelopeFabrica.FabricarEnvelope(eTipoServico.ConsultaSituacaoNFe, xmlEvento); var retornoXmlString = await Transmitir.TransmitirAsync(sefazUrl, envelope); var retornoXmlStringLimpa = Soap.LimparEnvelope(retornoXmlString, "retConsSitNFe").OuterXml; var arqRet = Path.Combine("Logs", $"{DateTime.Now.Ticks}-retConsSitNFe.xml"); await storage.SaveAsync(arqRet, retornoXmlStringLimpa); var retEnvEvento = new retConsSitNFe().CarregarDeXmlString(retornoXmlStringLimpa, xmlEvento); return(retEnvEvento); }
public async Task <retConsSitNFe> ConsultarPelaChave(string chaveAcesso) { chaveAcesso = chaveAcesso.Replace("NFe", ""); var consSit = new consSitNFe { chNFe = chaveAcesso, tpAmb = cfgServico.TipoAmbiente, versao = versao }; var xmlEvento = XmlUtils.ClasseParaXmlString <consSitNFe>(consSit); var arqEnv = Path.Combine("Logs", Arquivo.MontarNomeArquivo("pedConsSitNFe.xml", cfgServico)); await storage.SaveAsync(arqEnv, xmlEvento); var modeloDoc = chaveAcesso.Substring(20, 2).ModeloDocumento(); var sefazUrl = FabricarUrl.ObterUrl(eTipoServico.ConsultaSituacaoNFe, cfgServico.TipoAmbiente, modeloDoc, cfgServico.UF); var envelope = SoapEnvelopeFabrica.FabricarEnvelope(eTipoServico.ConsultaSituacaoNFe, xmlEvento); var retornoXmlString = await sefaz.TransmitirAsync(sefazUrl, envelope); var retornoXmlStringLimpa = Soap.LimparEnvelope(retornoXmlString, "retConsSitNFe").OuterXml; var arqRet = Path.Combine("Logs", Arquivo.MontarNomeArquivo("retConsSitNFe.xml", cfgServico)); await storage.SaveAsync(arqRet, retornoXmlStringLimpa); var retEnvEvento = new retConsSitNFe().CarregarDeXmlString(retornoXmlStringLimpa, xmlEvento); return(retEnvEvento); }
/// <summary>Initializes a new instance of the <see cref="T:System.Object"></see> class.</summary> public RetConsProt(retConsSitNFe retorno, string xmlRecebido, int processadas, int rejeitadas, string xmlEnviado) { Retorno = retorno; XmlRecebido = xmlRecebido; Processadas = processadas; Rejeitadas = rejeitadas; XmlEnviado = xmlEnviado; }
public static retConsSitNFe CarregarDeXmlString(this retConsSitNFe retConsSitNFe, string xmlRecebido, string xmlEnviado) { var tmp = XmlUtils.XmlStringParaClasse <retConsSitNFe>(xmlRecebido); tmp.XmlRecebido = xmlRecebido; tmp.XmlEnviado = xmlEnviado; return(tmp); }
/// <summary> /// Consulta a Situação da NFe /// </summary> /// <returns>Retorna um objeto da classe RetornoNfeConsultaProtocolo com os dados da Situação da NFe</returns> public RetornoNfeConsultaProtocolo NfeConsultaProtocolo(string chave) { var versaoServico = Auxiliar.VersaoServicoParaString(ServicoNFe.NfeConsultaProtocolo, _cFgServico.VersaoNfeConsultaProtocolo); #region Cria o objeto wdsl para consulta var ws = CriarServico(ServicoNFe.NfeConsultaProtocolo, TipoRecepcaoEvento.Nenhum); ws.nfeCabecMsg = new nfeCabecMsg { cUF = _cFgServico.cUF, versaoDados = versaoServico }; #endregion #region Cria o objeto consSitNFe var pedConsulta = new consSitNFe { versao = versaoServico, tpAmb = _cFgServico.tpAmb, chNFe = chave }; #endregion #region Valida, Envia os dados e obtém a resposta var xmlConsulta = pedConsulta.ObterXmlString(); Validador.Valida(ServicoNFe.NfeConsultaProtocolo, TipoRecepcaoEvento.Nenhum, _cFgServico.VersaoNfeConsultaProtocolo, xmlConsulta); var dadosConsulta = new XmlDocument(); dadosConsulta.LoadXml(xmlConsulta); SalvarArquivoXml(chave + "-ped-sit.xml", xmlConsulta); var retorno = ws.Execute(dadosConsulta); var retornoXmlString = retorno.OuterXml; var retConsulta = new retConsSitNFe().CarregarDeXmlString(retornoXmlString); SalvarArquivoXml(chave + "-sit.xml", retornoXmlString); return(new RetornoNfeConsultaProtocolo(pedConsulta.ObterXmlString(), retConsulta.ObterXmlString(), retornoXmlString, retConsulta)); #endregion }
private DadosRetorno CarregaDadosRetorno(retConsSitNFe objConsulta) { DadosRetorno objRetorno = new DadosRetorno(); objRetorno.cStat = objConsulta.cStat; objRetorno.xMotivo = objConsulta.xMotivo; if (objConsulta.protNFe != null) { objRetorno.dhRecbto = objConsulta.protNFe.infProt.dhRecbto.ToString("dd/MM/yyyy HH:mm"); objRetorno.digVal = objConsulta.protNFe.infProt.digVal; } objRetorno.chNFe = objConsulta.chNFe; if ((objRetorno.cStat == "100") || (objRetorno.cStat == "101") || (objRetorno.cStat == "110")) { objRetorno.nProt = ""; if (objConsulta.procEventoNFe.Count() > 0) { foreach (retConsSitNFeProcEventoNFe evento in objConsulta.procEventoNFe) { if (evento.retEvento.infEvento.tpEvento == "110111") { objRetorno.nProt = evento.retEvento.infEvento.nProt; objRetorno.xMotivo = objConsulta.xMotivo; //Altera Nota para cancelada dao.NFe.daoCancelamento objdaoCanc = new dao.NFe.daoCancelamento(); objdaoCanc.AlteraNotaParaCancelada(objRetorno.nProt, objPesquisa.sCD_NFSEQ); belCancelamento.MoveArquivoParaPastaCancelada(objPesquisa); } } } if (objRetorno.nProt == "") { objRetorno.nProt = objConsulta.protNFe.infProt.nProt; } } else { objRetorno.dhRecbto = "s/data"; objRetorno.nProt = "inexistente"; objRetorno.digVal = "inexistente"; } objRetorno.nNota = objPesquisa.sCD_NOTAFIS; objRetorno.seqNota = objPesquisa.sCD_NFSEQ; return(objRetorno); }
/// <summary> /// Converte o objeto retConsSitNFe para uma string no formato XML /// </summary> /// <param name="retConsSitNFe"></param> /// <returns>Retorna uma string no formato XML com os dados do objeto retConsSitNFe</returns> public static string ObterXmlString(this retConsSitNFe retConsSitNFe) { return(FuncoesXml.ClasseParaXmlString(retConsSitNFe)); }
/// <summary> /// Coverte uma string XML no formato NFe para um objeto retConsSitNFe /// </summary> /// <param name="retConsSitNFe"></param> /// <param name="xmlString"></param> /// <returns>Retorna um objeto do tipo retConsSitNFe</returns> public static retConsSitNFe CarregarDeXmlString(this retConsSitNFe retConsSitNFe, string xmlString) { return(FuncoesXml.XmlStringParaClasse <retConsSitNFe>(xmlString)); }
public DadosRetorno buscaRetorno() { string sDados = consultaNFe(); XmlDocument xmlConsulta = new XmlDocument(); XmlDocument xret = new XmlDocument(); try { if (Acesso.TP_EMIS == 1) { switch (Acesso.xUFtoWS) { case "SP": { if (Acesso.TP_AMB == 2) { HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_SP.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_SP.NfeConsulta2(); HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_SP.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_SP.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } else { HLP.GeraXml.WebService.v2_Producao_NFeConsulta_SP.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeConsulta_SP.NfeConsulta2(); HLP.GeraXml.WebService.v2_Producao_NFeConsulta_SP.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeConsulta_SP.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } } break; case "RS": { if (Acesso.TP_AMB == 2) { HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_RS.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_RS.NfeConsulta2(); HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_RS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_RS.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } else { HLP.GeraXml.WebService.v2_Producao_NFeConsulta_RS.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeConsulta_RS.NfeConsulta2(); HLP.GeraXml.WebService.v2_Producao_NFeConsulta_RS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeConsulta_RS.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } } break; case "MS": { if (Acesso.TP_AMB == 2) { HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_MS.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_MS.NfeConsulta2(); HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_MS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeConsulta_MS.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } else { HLP.GeraXml.WebService.v2_Producao_NFeConsulta_MS.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeConsulta_MS.NfeConsulta2(); HLP.GeraXml.WebService.v2_Producao_NFeConsulta_MS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeConsulta_MS.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } } break; case "SVRS": { if (Acesso.TP_AMB == 2) { HLP.GeraXml.WebService.V2_Homologacao_Consulta_SVRS.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.V2_Homologacao_Consulta_SVRS.NfeConsulta2(); HLP.GeraXml.WebService.V2_Homologacao_Consulta_SVRS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.V2_Homologacao_Consulta_SVRS.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } else { HLP.GeraXml.WebService.V2_Producao_Consulta_SVRS.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.V2_Producao_Consulta_SVRS.NfeConsulta2(); HLP.GeraXml.WebService.V2_Producao_Consulta_SVRS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.V2_Producao_Consulta_SVRS.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } } break; case "MG": { if (Acesso.TP_AMB == 2) { HLP.GeraXml.WebService.v2_Homologacao_NfeConsultaProtocolo_MG.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NfeConsultaProtocolo_MG.NfeConsulta2(); HLP.GeraXml.WebService.v2_Homologacao_NfeConsultaProtocolo_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NfeConsultaProtocolo_MG.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } else { HLP.GeraXml.WebService.v2_Producao_NfeConsultaProtocolo_MG.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NfeConsultaProtocolo_MG.NfeConsulta2(); HLP.GeraXml.WebService.v2_Producao_NfeConsultaProtocolo_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NfeConsultaProtocolo_MG.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } } break; } } else if (Acesso.TP_EMIS == 3) { if (Acesso.TP_AMB == 2) { HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeConsulta.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeConsulta.NfeConsulta2(); HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeConsulta.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeConsulta.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } else { HLP.GeraXml.WebService.v2_SCAN_Producao_NFeConsulta.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeConsulta.NfeConsulta2(); HLP.GeraXml.WebService.v2_SCAN_Producao_NFeConsulta.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeConsulta.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } } else if (Acesso.TP_EMIS == 6) { if (Acesso.TP_AMB == 2) { HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeConsultaProtocolo.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeConsultaProtocolo.NfeConsulta2(); HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeConsultaProtocolo.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeConsultaProtocolo.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } else { HLP.GeraXml.WebService.v2_SVC_Producao_NfeConsultaProtocolo.NfeConsulta2 ws2 = new HLP.GeraXml.WebService.v2_SVC_Producao_NfeConsultaProtocolo.NfeConsulta2(); HLP.GeraXml.WebService.v2_SVC_Producao_NfeConsultaProtocolo.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SVC_Producao_NfeConsultaProtocolo.nfeCabecMsg(); cabec.versaoDados = sversaoLayoutCons; belUF objUf = new belUF(); cabec.cUF = objUf.RetornaCUF(Acesso.xUF); ws2.nfeCabecMsgValue = cabec; ws2.ClientCertificates.Add(Acesso.cert_NFe); xmlConsulta.LoadXml(sDados); XmlNode xNodeConsulta = xmlConsulta.DocumentElement; xmlConsulta.LoadXml(ws2.nfeConsultaNF2(xNodeConsulta).OuterXml); } } string sPathCons = Pastas.PROTOCOLOS + "\\ConsultaNFe_" + objPesquisa.sCD_NFSEQ + ".xml"; xmlConsulta.Save(sPathCons); retConsSitNFe objConsulta = SerializeClassToXml.DeserializeClasse <retConsSitNFe>(sPathCons); return(CarregaDadosRetorno(objConsulta)); } catch (Exception) { throw; } }
public RetornoNfeConsultaProtocolo(string envioStr, string retornoStr, string retornoCompletaStr, retConsSitNFe retorno) : base(envioStr, retornoStr, retornoCompletaStr, retorno) { Retorno = retorno; }
/// <summary> /// Verifica se esta autorizado /// </summary> /// <param name="consSitNFe"></param> /// <returns>bool</returns> public static bool Autorizada(this retConsSitNFe consSitNFe) { return(NfeSituacao.Autorizada(consSitNFe.cStat)); }