private void ConsultaStatusServico() { if (empresa.SelectedItem != null) { TList_CfgNfe lista = TCN_CfgNfe.Buscar(empresa.SelectedValue.ToString(), string.Empty, string.Empty, null); if (lista.Count > 0) { rCfgNfe = lista[0]; string retorno = srvNFE.ConsultaStatusServico.ConsultaStatusServico.StatusServico(rCfgNfe, false); if (retorno.Trim().Equals("107")) { tsStatus.Text = "SERVIÇO EM OPERAÇÃO"; } else { string ret_cont = srvNFE.ConsultaStatusServico.ConsultaStatusServico.StatusServico(rCfgNfe, true); if (ret_cont.Trim().Equals("107")) { tsStatus.Text = "SERVIÇO EM OPERAÇÃO - MODO CONTINGENCIA(" + rCfgNfe.Tipo_ambientecont.Trim() + ")"; } else { tsStatus.Text = "SERVIÇO INDISPONIVEL NO MOMENTO."; } } } } }
private static XmlNode ConectarWebService(XmlNode lmcDadosMsg, TRegistro_CfgNfe rCfgNfce) { switch (rCfgNfce.Cd_uf_empresa.Trim()) { case "41": { if (rCfgNfce.Tp_ambiente_lmc.Trim().Equals("1")) //Producao { System.Net.ServicePointManager.Expect100Continue = false; br.gov.pr.fazenda.lmcws.LMC.LMCAutorizacao lmc = new PostoCombustivel.br.gov.pr.fazenda.lmcws.LMC.LMCAutorizacao(); lmc.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; lmc.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfce.Nr_certificado_nfe)); return(lmc.lmcAutorizacao(lmcDadosMsg)); } else //Homologacao { System.Net.ServicePointManager.Expect100Continue = false; br.gov.pr.fazenda.lmcws.homologacao.LMC.LMCAutorizacao lmc = new PostoCombustivel.br.gov.pr.fazenda.lmcws.homologacao.LMC.LMCAutorizacao(); lmc.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; lmc.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfce.Nr_certificado_nfe)); return(lmc.lmcAutorizacao(lmcDadosMsg)); } } default: return(null); } }
public static void ValidarCertificado(TRegistro_CfgNfe rCfgNfe) { DateTime dt_atual = CamadaDados.UtilData.Data_Servidor(); if (!rCfgNfe.Dt_avisoCert.HasValue) { rCfgNfe.Dt_avisoCert = dt_atual.AddDays(-1); } if ((rCfgNfe.Nr_diasexpirarcert > decimal.Zero) && (rCfgNfe.Dt_avisoCert.Value.Date < dt_atual.Date)) { DateTime dt_validade = new Utils.Assinatura.TAssinatura2(rCfgNfe.Nr_certificado_nfe).ValidadeCertificado(); if (dt_atual.AddDays(Convert.ToDouble(rCfgNfe.Nr_diasexpirarcert)).Date >= dt_validade.Date) { System.Windows.Forms.MessageBox.Show("Certificado digital da empresa " + rCfgNfe.Nm_empresa.Trim() + " irá expirar em " + dt_validade.ToString("dd/MM/yyyy HH:mm:ss") + ".\r\n" + "Favor providenciar a renovação do mesmo, para que o faturamento da empresa não seja paralisado.", "Mensagem", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); try { new CamadaDados.TDataQuery().executarSql("update tb_fat_cfgnfe set dt_avisocert = getdate(), dt_alt = getdate() where cd_empresa = '" + rCfgNfe.Cd_empresa.Trim() + "'", null); } catch { } if (rCfgNfe.St_enviaremailcontadorbool) { //Verificar se o contador tem email cadastrado object email = new CamadaDados.Financeiro.Cadastros.TCD_CadClifor().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_div_empresa x " + "where x.cd_clifor_contador = a.cd_clifor " + "and x.cd_empresa = '" + rCfgNfe.Cd_empresa.Trim() + "')" } }, "a.email"); if (email != null) { new FormRelPadrao.Email(new List <string>() { email.ToString() }, "CERTIFICADO DIGITAL EXPIRANDO", "<p><b>ATENÇÃO!</b><br /></p>" + "Certificado digital da empresa <b>" + rCfgNfe.Nm_empresa.Trim() + "</b> expira em <b>" + dt_validade.ToString("dd/MM/yyyy HH:mm:ss") + "</b>.<br />" + "Favor providenciar a renovação do mesmo, para que o faturamento da empresa não seja paralisado.<br />" + "<p><font size=\"2\" color=\"blue\"><i>Obs.: Mensagem automática do sistema ALIANCE.NET.<br />" + "Desconsiderar caso já tenha renovado o certificado.</font></i></p>" + "TecnoAliance Ltda.<br />" + "(45)3421-5050<br />" + "www.tecnoaliance.com.br", new List <string>()).EnviarEmail(); } } } } }
public static string DownloadXML(string Chave_acesso, TRegistro_CfgNfe rCfgNfe) { StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); xml.Append("<downloadNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaocondest.Trim() + "\">"); xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>"); xml.Append("<xServ>"); xml.Append("DOWNLOAD NFE"); xml.Append("</xServ>"); xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>"); xml.Append("<chNFe>"); xml.Append(Chave_acesso.Trim()); xml.Append("</chNFe>"); xml.Append("</downloadNFe>"); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "downloadNFe_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd", "NFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar arquivo para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); XmlNode retorno = ConectarWebService2(doc.DocumentElement, rCfgNfe); if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("139")) { if (retorno["retNFe"]["cStat"].InnerText.Trim().Equals("140")) { return(Compact_Data.Descompactar(Convert.FromBase64String(retorno["retNFe"]["procNFeGrupoZip"]["NFeZip"].InnerText))); } else { throw new Exception(retorno["retNFe"]["cStat"].InnerText.Trim() + "-" + retorno["retNFe"]["xMotivo"].InnerText.Trim()); } } else { throw new Exception(retorno["cStat"].InnerText.Trim() + "-" + retorno["xMotivo"].InnerText.Trim()); } } else { throw new Exception("Erro executar WebService."); } }
private static XmlNode ConectarWebService(XmlNode cceDadosMsg, TRegistro_CfgNfe rCfgNfe) { //Ambiente Nacional br.gov.fazenda.nfe.NFeDistribuicaoDFe.NFeDistribuicaoDFe consulta = new br.gov.fazenda.nfe.NFeDistribuicaoDFe.NFeDistribuicaoDFe(); consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(consulta.nfeDistDFeInteresse(cceDadosMsg)); }
private static XmlNode ConectarWebService(XmlNode nfceDadosMsg, TRegistro_CfgNfe rCfgNfce) { switch (rCfgNfce.Cd_uf_empresa.Trim()) { case "41": { if (rCfgNfce.Tp_ambiente_nfce.Trim().Equals("1")) //Producao { if (rCfgNfce.Cd_versaonfce.Trim().Equals("3.10")) { srvNFE.br.gov.pr.fazenda.nfe.PRInutilizacao3.NfeInutilizacao3 nfce = new srvNFE.br.gov.pr.fazenda.nfe.PRInutilizacao3.NfeInutilizacao3(); nfce.Url = "https://nfce.fazenda.pr.gov.br/nfce/NFeInutilizacao3"; nfce.nfeCabecMsgValue = new srvNFE.br.gov.pr.fazenda.nfe.PRInutilizacao3.nfeCabecMsg() { cUF = rCfgNfce.Cd_uf_empresa, versaoDados = rCfgNfce.Cd_versaonfce }; nfce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfce.Nr_certificado_nfe)); return(nfce.nfeInutilizacaoNF(nfceDadosMsg)); } else //4.00 { br.gov.pr.sefa.nfce.Inutiliza4.NFeInutilizacao4 nfce = new br.gov.pr.sefa.nfce.Inutiliza4.NFeInutilizacao4(); nfce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfce.Nr_certificado_nfe)); return(nfce.nfeInutilizacaoNF(nfceDadosMsg)); } } else //Homologacao { if (rCfgNfce.Cd_versaonfce.Trim().Equals("3.10")) { srvNFE.br.gov.pr.fazenda.nfe.homologacao.PRInutilizacao3.NfeInutilizacao3 nfe = new srvNFE.br.gov.pr.fazenda.nfe.homologacao.PRInutilizacao3.NfeInutilizacao3(); nfe.Url = "https://homologacao.nfce.fazenda.pr.gov.br/nfce/NFeInutilizacao3"; nfe.nfeCabecMsgValue = new srvNFE.br.gov.pr.fazenda.nfe.homologacao.PRInutilizacao3.nfeCabecMsg() { cUF = rCfgNfce.Cd_uf_empresa, versaoDados = rCfgNfce.Cd_versaonfce }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfce.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfceDadosMsg)); } else //4.00 { br.gov.pr.sefa.nfce.homologacao.Inutiliza4.NFeInutilizacao4 nfce = new br.gov.pr.sefa.nfce.homologacao.Inutiliza4.NFeInutilizacao4(); nfce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfce.Nr_certificado_nfe)); return(nfce.nfeInutilizacaoNF(nfceDadosMsg)); } } } default: return(null); } }
private static XmlNode ConectarWebService2(XmlNode nfeDadosMsg, TRegistro_CfgNfe rCfgNfe) { br.gov.fazenda.nfe.DownloadNF.NfeDownloadNF nfe = new br.gov.fazenda.nfe.DownloadNF.NfeDownloadNF(); nfe.nfeCabecMsgValue = new br.gov.fazenda.nfe.DownloadNF.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaocondest }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeDownloadNF(nfeDadosMsg)); }
private static XmlNode ConectarWebService(XmlNode cceDadosMsg, TRegistro_CfgNfe rCfgNfe) { //Ambiente Nacional br.gov.fazenda.nfe.ConsultaDest.NFeConsultaDest consulta = new srvNFE.br.gov.fazenda.nfe.ConsultaDest.NFeConsultaDest(); consulta.nfeCabecMsgValue = new srvNFE.br.gov.fazenda.nfe.ConsultaDest.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaocondest }; consulta.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; consulta.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(consulta.nfeConsultaNFDest(cceDadosMsg)); }
public static string StatusServico(TRegistro_CfgNfe rCfgNfe, bool St_contingencia) { StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); xml.Append("<consStatServ xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versao.Trim() + "\">"); xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>"); xml.Append("<cUF>"); xml.Append(rCfgNfe.Cd_uf_empresa); xml.Append("</cUF>"); xml.Append("<xServ>"); xml.Append("STATUS"); xml.Append("</xServ>"); xml.Append("</consStatServ>"); try { //Validar schema xml Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "consStatServ_v" + rCfgNfe.Cd_versao.Trim() + ".xsd", "NFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { return(Utils.ValidaSchema.ValidaXML2.Retorno); } //Conectar Web Service XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); rCfgNfe.St_nfecontingencia = St_contingencia; XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); //Tratar retorno return(retorno["cStat"].InnerText); } catch (Exception ex) { return(ex.Message.Trim()); } }
public static string Excluir(TRegistro_CfgNfe val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CfgNfe qtb_cfg = new TCD_CfgNfe(); try { if (banco == null) { st_transacao = qtb_cfg.CriarBanco_Dados(true); } else { qtb_cfg.Banco_Dados = banco; } qtb_cfg.Excluir(val); if (st_transacao) { qtb_cfg.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_cfg.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir Cfg. Nfe: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_cfg.deletarBanco_Dados(); } } }
public static string EnviarEvento(CamadaDados.Faturamento.PDV.TRegistro_EventoNFCe rEvento, TRegistro_CfgNfe rCfgNfe) { //Validar certificado srvNFE.ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(rCfgNfe); StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<envEvento xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaoEvento + "\">\n"); xml.Append("<idLote>"); xml.Append(rEvento.Id_eventostr); xml.Append("</idLote>\n"); #region Grupo Evento xml.Append("<evento xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaoEvento + "\">\n"); #region Grupo infEvento xml.Append("<infEvento Id=\"ID" + rEvento.Cd_eventostr + rEvento.Chave_acesso_nfce.Trim() + "01\">\n"); xml.Append("<cOrgao>"); xml.Append(rCfgNfe.Cd_uf_empresa.Trim()); xml.Append("</cOrgao>\n"); xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente_nfce); xml.Append("</tpAmb>\n"); xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>\n"); xml.Append("<chNFe>"); xml.Append(rEvento.Chave_acesso_nfce.Trim()); xml.Append("</chNFe>\n"); xml.Append("<dhEvento>"); xml.Append(rEvento.Dt_evento.Value.ToString("yyyy-MM-dd") + "T" + rEvento.Dt_evento.Value.ToString("HH:mm:ss") + (TimeZoneInfo.Local.IsDaylightSavingTime(rEvento.Dt_evento.Value) ? "-02:00" : "-03:00")); xml.Append("</dhEvento>\n"); xml.Append("<tpEvento>"); xml.Append(rEvento.Cd_eventostr); xml.Append("</tpEvento>\n"); xml.Append("<nSeqEvento>"); xml.Append("1"); xml.Append("</nSeqEvento>\n"); xml.Append("<verEvento>"); xml.Append(rCfgNfe.Cd_versaoEvento.Trim()); xml.Append("</verEvento>\n"); #region Grupo detEvento xml.Append("<detEvento versao=\"" + rCfgNfe.Cd_versaoEvento + "\">\n"); xml.Append("<descEvento>"); xml.Append(rEvento.Ds_evento.Trim()); xml.Append("</descEvento>\n"); xml.Append("<nProt>"); xml.Append(rEvento.Nr_protocoloNFCe); xml.Append("</nProt>\n"); xml.Append("<xJust>"); xml.Append(rEvento.Justificativa.Trim()); xml.Append("</xJust>\n"); xml.Append("</detEvento>\n"); #endregion xml.Append("</infEvento>\n"); #endregion xml.Append("</evento>\n"); #endregion xml.Append("</envEvento>\n"); //Assinar documento XML string xmlassinado = new Utils.Assinatura.TAssinatura2(rCfgNfe.Nr_certificado_nfe, Utils.Assinatura.TAssinatura2.TTpArq.tpCCe, xml.ToString()).Assinar(); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado, rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "envEventoCancNFe_v" + rCfgNfe.Cd_versaoEvento.Trim() + ".xsd", "NFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar arquivo para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlassinado); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); //Tratar retorno if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("128")) { if (retorno["retEvento"]["infEvento"]["cStat"].InnerText.Trim().Equals("135")) { rEvento.St_registro = "T"; try { rEvento.Nr_protocolo = decimal.Parse(retorno["retEvento"]["infEvento"]["nProt"].InnerText); } catch { } rEvento.Xml_evento = xmlassinado; rEvento.Xml_retevento = retorno.InnerXml; CamadaNegocio.Faturamento.PDV.TCN_EventoNFCe.Gravar(rEvento, null); return(string.Empty); } else { return(retorno["retEvento"]["infEvento"]["xMotivo"].InnerText); } } else { return(retorno["xMotivo"].InnerText); } } else { throw new Exception("Ocorreu um erro ao enviar EVENTO para receita."); } }
public static string EnviarEvento(TRegistro_EventoNFe rEvento, TRegistro_CfgNfe rCfgNfe) { //Validar certificado ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(rCfgNfe); decimal seqEvento = 1; if (rEvento.Tp_evento.Trim().ToUpper().Equals("CC")) { object obj = new TCD_EventoNFe().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rEvento.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.nr_lanctofiscal", vOperador = "=", vVL_Busca = rEvento.Nr_lanctofiscalstr }, new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "=", vVL_Busca = "'T'" }, new TpBusca() { vNM_Campo = "d.tp_evento", vOperador = "=", vVL_Busca = "'CC'" } }, "count(*)"); if (obj != null) { seqEvento += decimal.Parse(obj.ToString()); } } StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<envEvento xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaoEvento + "\">\n"); xml.Append("<idLote>"); xml.Append(rEvento.Id_eventostr); xml.Append("</idLote>\n"); #region Grupo Evento xml.Append("<evento xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaoEvento + "\">\n"); #region Grupo infEvento xml.Append("<infEvento Id=\"ID" + rEvento.Cd_eventostr + rEvento.Chave_acesso_nfe.Trim() + seqEvento.ToString().FormatStringEsquerda(2, '0') + "\">\n"); xml.Append("<cOrgao>"); xml.Append(rEvento.Tp_evento.Trim().ToUpper().Equals("MF") ? "91" : rCfgNfe.Cd_uf_empresa.Trim()); xml.Append("</cOrgao>\n"); xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>\n"); xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>\n"); xml.Append("<chNFe>"); xml.Append(rEvento.Chave_acesso_nfe.Trim()); xml.Append("</chNFe>\n"); xml.Append("<dhEvento>"); xml.Append(rEvento.Dt_evento.Value.ToString("yyyy-MM-ddTHH:mm:sszzz")); xml.Append("</dhEvento>\n"); xml.Append("<tpEvento>"); xml.Append(rEvento.Cd_eventostr); xml.Append("</tpEvento>\n"); xml.Append("<nSeqEvento>"); xml.Append(seqEvento.ToString()); xml.Append("</nSeqEvento>\n"); xml.Append("<verEvento>"); xml.Append(rCfgNfe.Cd_versaoEvento); xml.Append("</verEvento>\n"); #region Grupo detEvento xml.Append("<detEvento versao=\"" + rCfgNfe.Cd_versaoEvento + "\">\n"); xml.Append("<descEvento>"); xml.Append(rEvento.Descricao_evento.Trim()); xml.Append("</descEvento>\n"); if (rEvento.Tp_evento.Trim().ToUpper().Equals("CC"))//Carta Correcao { xml.Append("<xCorrecao>"); xml.Append(rEvento.Ds_evento.Trim()); xml.Append("</xCorrecao>\n"); xml.Append("<xCondUso>"); xml.Append(rCfgNfe.Ds_condusoCCe.Trim()); xml.Append("</xCondUso>\n"); } else if (rEvento.Tp_evento.Trim().ToUpper().Equals("CA"))//Cancelamento { xml.Append("<nProt>"); xml.Append(rEvento.Nr_protocoloNfe); xml.Append("</nProt>\n"); xml.Append("<xJust>"); xml.Append(rEvento.Ds_evento.Trim()); xml.Append("</xJust>\n"); } else if (!string.IsNullOrEmpty(rEvento.Ds_evento)) { xml.Append("<xJust>"); xml.Append(rEvento.Ds_evento.Trim()); xml.Append("</xJust>\n"); } xml.Append("</detEvento>\n"); #endregion xml.Append("</infEvento>\n"); #endregion xml.Append("</evento>\n"); #endregion xml.Append("</envEvento>\n"); //Assinar documento XML string xmlassinado = new Utils.Assinatura.TAssinatura2(rCfgNfe.Nr_certificado_nfe, Utils.Assinatura.TAssinatura2.TTpArq.tpCCe, xml.ToString()).Assinar(); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado, rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + (rEvento.Tp_evento.Trim().ToUpper().Equals("CC") ? "envCCe_v" + rCfgNfe.Cd_versaoEvento.Trim() : rEvento.Tp_evento.Trim().ToUpper().Equals("CA") ? "envEventoCancNFe_v" + rCfgNfe.Cd_versaoEvento.Trim() : "envConfRecebto_v" + rCfgNfe.Cd_versaoEvento.Trim()) + ".xsd", "NFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar arquivo para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlassinado); if (rEvento.Tp_evento.Trim().ToUpper().Equals("CA")) { rCfgNfe.St_nfecontingencia = new CamadaDados.Faturamento.NotaFiscal.TCD_LanFaturamento().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rEvento.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.nr_lanctofiscal", vOperador = "=", vVL_Busca = rEvento.Nr_lanctofiscalstr }, new TpBusca() { vNM_Campo = "a.tp_emissaonfe", vOperador = "<>", vVL_Busca = "'1'" } }, "1") != null; } XmlNode retorno = ConectarWebService(doc.DocumentElement, rEvento.Tp_evento, rCfgNfe); //Tratar retorno if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("128")) { if (retorno["retEvento"]["infEvento"]["cStat"].InnerText.Trim().Equals("135") || retorno["retEvento"]["infEvento"]["cStat"].InnerText.Trim().Equals("136")) { rEvento.St_registro = "T"; try { rEvento.Nr_protocolo = decimal.Parse(retorno["retEvento"]["infEvento"]["nProt"].InnerText); } catch { } rEvento.Xml_evento = xmlassinado; rEvento.Xml_retevento = retorno.InnerXml; CamadaNegocio.Faturamento.NFE.TCN_EventoNFe.Gravar(rEvento, null); return(string.Empty); } else { return(retorno["retEvento"]["infEvento"]["xMotivo"].InnerText); } } else { return(retorno["xMotivo"].InnerText); } } else { throw new Exception("Ocorreu um erro ao enviar EVENTO para receita."); } }
private static XmlNode ConectarWebService(XmlNode cceDadosMsg, TRegistro_CfgNfe rCfgNfe) { switch (rCfgNfe.Cd_uf_empresa.Trim()) { case ("31"): //Minas Gerais { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.mg.fazenda.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.mg.fazenda.nfe.RecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new srvNFE.br.gov.mg.fazenda.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else { return(null); } } case ("35"): //Sao Paulo { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.sp.fazenda.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.sp.fazenda.nfe.RecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new srvNFE.br.gov.sp.fazenda.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else { return(null); } } case ("41"): //Parana { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.rs.sefaz.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.rs.sefaz.nfe.RecEvento.RecepcaoEvento(); cce.Url = "https://nfe2.fazenda.pr.gov.br/nfe-evento/NFeRecepcaoEvento"; cce.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //Homologacao { br.gov.rs.sefaz.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.rs.sefaz.nfe.RecEvento.RecepcaoEvento(); cce.Url = "https://homologacao.nfe2.fazenda.pr.gov.br/nfe-evento/NFeRecepcaoEvento"; //br.gov.pr.fazenda.nfe2.homologacao.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.pr.fazenda.nfe2.homologacao.RecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } } case ("43"): //Rio Grande do Sul { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.rs.sefaz.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.rs.sefaz.nfe.RecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new srvNFE.br.gov.rs.sefaz.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else { return(null); } } case ("50"): //Mato Grosso do Sul { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.ms.fazenda.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.ms.fazenda.nfe.RecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new srvNFE.br.gov.ms.fazenda.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else { return(null); } } case ("51"): //Mato Grosso { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.mt.sefaz.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.mt.sefaz.nfe.RecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new srvNFE.br.gov.mt.sefaz.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else { return(null); } } case ("52"): //Goias { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.go.sefaz.nfe.RecEvento.RecepcaoEvento cce = new srvNFE.br.gov.go.sefaz.nfe.RecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new srvNFE.br.gov.go.sefaz.nfe.RecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoCCe }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else { return(null); } } default: { return(null); } } }
public static string EnviarCCe(CamadaDados.Faturamento.NFE.TRegistro_EventoNFe cce, TRegistro_CfgNfe rCfgNfe) { //Validar certificado ConsultaStatusServico.ConsultaStatusServico2.ValidarCertificado(rCfgNfe); StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<envEvento xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaoCCe.Trim() + "\">\n"); xml.Append("<idLote>"); xml.Append(cce.Id_eventostr); xml.Append("</idLote>\n"); #region Grupo Evento xml.Append("<evento xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaoCCe.Trim() + "\">\n"); #region Grupo infEvento xml.Append("<infEvento Id=\"ID" + rCfgNfe.Cd_eventoCCe.Value.ToString() + cce.Chave_acesso_nfe.Trim() + cce.Id_eventostr.FormatSringEsquerda(2, '0') + "\">\n"); xml.Append("<cOrgao>"); xml.Append(rCfgNfe.Cd_uf_empresa.Trim()); xml.Append("</cOrgao>\n"); xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>\n"); xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>\n"); xml.Append("<chNFe>"); xml.Append(cce.Chave_acesso_nfe.Trim()); xml.Append("</chNFe>\n"); xml.Append("<dhEvento>"); xml.Append(cce.Dt_evento.Value.ToString("yyyy-MM-dd") + "T" + cce.Dt_evento.Value.ToString("HH:mm:ss") + "-03:00"); xml.Append("</dhEvento>\n"); xml.Append("<tpEvento>"); xml.Append(rCfgNfe.Cd_eventoCCe.Value.ToString()); xml.Append("</tpEvento>\n"); xml.Append("<nSeqEvento>"); xml.Append(cce.Id_eventostr); xml.Append("</nSeqEvento>\n"); xml.Append("<verEvento>"); xml.Append(rCfgNfe.Cd_versaoCCe.Trim()); xml.Append("</verEvento>\n"); #region Grupo detEvento xml.Append("<detEvento versao=\"" + rCfgNfe.Cd_versaoCCe.Trim() + "\">\n"); xml.Append("<descEvento>"); xml.Append("Carta de Correcao"); xml.Append("</descEvento>\n"); xml.Append("<xCorrecao>"); xml.Append(cce.Ds_evento.Trim()); xml.Append("</xCorrecao>\n"); xml.Append("<xCondUso>"); xml.Append(rCfgNfe.Ds_condusoCCe.Trim()); xml.Append("</xCondUso>\n"); xml.Append("</detEvento>\n"); #endregion xml.Append("</infEvento>\n"); #endregion xml.Append("</evento>\n"); #endregion xml.Append("</envEvento>\n"); //Assinar documento XML string xmlassinado = new Utils.Assinatura.TAssinatura2(rCfgNfe.Nr_certificado_nfe, Utils.Assinatura.TAssinatura2.TTpArq.tpCCe, xml.ToString()).Assinar(); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado, rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "envCCe_v" + rCfgNfe.Cd_versaoCCe.Trim() + ".xsd", false); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar arquivo para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlassinado); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); //Tratar retorno if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("128")) { if (retorno["retEvento"]["infEvento"]["cStat"].InnerText.Trim().Equals("135")) { cce.St_registro = "T"; try { cce.Nr_protocolo = decimal.Parse(retorno["retEvento"]["infEvento"]["nProt"].InnerText); } catch { } CamadaNegocio.Faturamento.NFE.TCN_EventoNFe.Gravar(cce, null); return(string.Empty); } else { return(retorno["retEvento"]["infEvento"]["xMotivo"].InnerText); } } else { return(retorno["xMotivo"].InnerText); } } else { throw new Exception("Ocorreu um erro ao enviar Carta Correção."); } }
public static TList_ConsultaDest DistribuicaoDFe(TRegistro_CfgNfe rCfgNfe, TRegistro_CadEmpresa rEmp, string NSU, string UltimoNSU, string ChaveAcesso) { StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<distDFeInt xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.01\">\n"); //Ambiente xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>\n"); //UF Autor xml.Append("<cUFAutor>"); xml.Append(rEmp.rEndereco.Cd_uf); xml.Append("</cUFAutor>\n"); //CNPJ Destinatario xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>\n"); if (!string.IsNullOrEmpty(NSU)) { xml.Append("<consNSU>\n"); xml.Append("<NSU>" + NSU.Trim() + "</NSU>\n"); xml.Append("</consNSU>\n"); } else if (!string.IsNullOrEmpty(ChaveAcesso) && ChaveAcesso.Trim().Length.Equals(44)) { xml.Append("<consChNFe>\n"); xml.Append("<chNFe>" + ChaveAcesso.Trim() + "</chNFe>\n"); xml.Append("</consChNFe>\n"); } else { xml.Append("<distNSU>\n"); xml.Append("<ultNSU>" + (string.IsNullOrEmpty(UltimoNSU) ? "000000000000000": UltimoNSU.FormatStringEsquerda(15, '0')) + "</ultNSU>\n"); xml.Append("</distNSU>\n"); } xml.Append("</distDFeInt>\n"); //Validar schema xml Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "distDFeInt_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd", "MDFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno); } //Conectar Web Service XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); //Tratar retorno if (retorno != null) { //para abrir o arquivo para o usuario if (retorno["cStat"].InnerText.Trim().Equals("138")) { TList_ConsultaDest lRet = new TList_ConsultaDest(); foreach (XmlNode n in retorno["loteDistDFeInt"].ChildNodes) { TRegistro_ConsultaDest registro = new TRegistro_ConsultaDest(); registro.Cd_empresa = rEmp.Cd_empresa; registro.Loginconsulta = Parametros.pubLogin; registro.Dt_consulta = DateTime.Now; registro.Nsu = decimal.Parse(n.Attributes.GetNamedItem("NSU").InnerText); if (!string.IsNullOrWhiteSpace(ChaveAcesso)) { registro.St_nfe = "1"; } XmlDocument d = new XmlDocument(); d.LoadXml(Compact_Data.Descompactar(Convert.FromBase64String(n.InnerText))); if (d.GetElementsByTagName("chNFe").Count > 0) { registro.chave_acesso = d.GetElementsByTagName("chNFe")[0].InnerText; } if (d.GetElementsByTagName("CNPJ").Count > 0) { registro.Cnpj_emitente = d.GetElementsByTagName("CNPJ")[0].InnerText; } if (d.GetElementsByTagName("xNome").Count > 0) { registro.Nm_emitente = d.GetElementsByTagName("xNome")[0].InnerText; } if (d.GetElementsByTagName("IE").Count > 0) { registro.Insc_Emitente = d.GetElementsByTagName("IE")[0].InnerText; } if (d.GetElementsByTagName("dhEmi").Count > 0) { registro.Dt_eminfe = DateTime.Parse(d.GetElementsByTagName("dhEmi")[0].InnerText); } if (d.GetElementsByTagName("tpNF").Count > 0) { registro.Tp_movimento = d.GetElementsByTagName("tpNF")[0].InnerText; } if (d.GetElementsByTagName("vNF").Count > 0) { registro.Vl_nfe = decimal.Parse(d.GetElementsByTagName("vNF")[0].InnerText, new System.Globalization.CultureInfo("en-US")); } if (d.GetElementsByTagName("digVal").Count > 0) { registro.digVal = d.GetElementsByTagName("digVal")[0].InnerText; } if (d.GetElementsByTagName("dhRecbto").Count > 0) { registro.Dh_recbto = DateTime.Parse(d.GetElementsByTagName("dhRecbto")[0].InnerText); } if (d.GetElementsByTagName("nProt").Count > 0) { registro.nProt = decimal.Parse(d.GetElementsByTagName("nProt")[0].InnerText); } if (d.GetElementsByTagName("cSitNFe").Count > 0) { registro.St_nfe = d.GetElementsByTagName("cSitNFe")[0].InnerText; } lRet.Add(registro); } return(lRet); } else { throw new Exception(retorno["xMotivo"].InnerText); } } else { throw new Exception("Erro executar WebService."); } }
private static XmlNode ConectarWebService(XmlNode cceDadosMsg, string Tp_evento, TRegistro_CfgNfe rCfgNfe) { if (Tp_evento.Trim().ToUpper().Equals("MF"))//Manifesto { //Ambiente Nacional if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.fazenda.nfe.RecepcaoEvento.RecepcaoEvento evento = new br.gov.fazenda.nfe.RecepcaoEvento.RecepcaoEvento(); evento.nfeCabecMsgValue = new br.gov.fazenda.nfe.RecepcaoEvento.nfeCabecMsg() { cUF = "91", versaoDados = rCfgNfe.Cd_versaoEvento }; evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } else//4.00 { br.gov.fazenda.nfe.RecepcaoEvento4.NFeRecepcaoEvento4 evento = new br.gov.fazenda.nfe.RecepcaoEvento4.NFeRecepcaoEvento4(); evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEventoNF(cceDadosMsg)); } } else if (Tp_evento.Trim().ToUpper().Equals("CA") && rCfgNfe.St_nfecontingencia) { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Tp_ambientecont.Trim().ToUpper().Equals("N")) //Ambiente Nacional { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.fazenda.svc.RecepcaoEvento.RecepcaoEvento evento = new br.gov.fazenda.svc.RecepcaoEvento.RecepcaoEvento(); evento.nfeCabecMsgValue = new br.gov.fazenda.svc.RecepcaoEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } else//4.00 { br.gov.fazenda.svc.RecepcaoEvento4.NFeRecepcaoEvento4 evento = new br.gov.fazenda.svc.RecepcaoEvento4.NFeRecepcaoEvento4(); evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } } else//Virtual Rio Grande do Sul { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.rs.sefaz.nfe.RSRecEvento.RecepcaoEvento evento = new br.gov.rs.sefaz.nfe.RSRecEvento.RecepcaoEvento(); evento.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSRecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } else { br.gov.rs.svrs.nfe.RecepcaoEvento4.NFeRecepcaoEvento4 evento = new br.gov.rs.svrs.nfe.RecepcaoEvento4.NFeRecepcaoEvento4(); evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } } } else//Homologacao { if (rCfgNfe.Tp_ambientecont.Trim().ToUpper().Equals("N"))//Ambiente Nacional { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.fazenda.svc.hom.ANRecEvento.RecepcaoEvento evento = new br.gov.fazenda.svc.hom.ANRecEvento.RecepcaoEvento(); evento.nfeCabecMsgValue = new br.gov.fazenda.svc.hom.ANRecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } else//4.00 { br.gov.fazenda.sefazvirtual.hom.RecepcaoEvento4.NFeRecepcaoEvento4 evento = new br.gov.fazenda.sefazvirtual.hom.RecepcaoEvento4.NFeRecepcaoEvento4(); evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } } else//Virtual Rio Grande do Sul { br.gov.rs.sefazvirtual.nfe.homologacao.RSRecEvento.RecepcaoEvento evento = new br.gov.rs.sefazvirtual.nfe.homologacao.RSRecEvento.RecepcaoEvento(); evento.nfeCabecMsgValue = new br.gov.rs.sefazvirtual.nfe.homologacao.RSRecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } } } else { switch (rCfgNfe.Cd_uf_empresa.Trim()) { case ("31"): //Minas Gerais { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.ms.sefaz.nfe.MSEvento4.NFeRecepcaoEvento4 evento = new br.gov.ms.sefaz.nfe.MSEvento4.NFeRecepcaoEvento4(); evento.Url = "https://nfe.fazenda.mg.gov.br/nfe2/services/NFeRecepcaoEvento4"; evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento( new br.gov.ms.sefaz.nfe.MSEvento4.nfeResultMsg { Any = new XmlNode[] { cceDadosMsg } }).Any[0]); } else { br.gov.ms.sefaz.nfe.hom.MSEvento4.NFeRecepcaoEvento4 evento = new br.gov.ms.sefaz.nfe.hom.MSEvento4.NFeRecepcaoEvento4(); evento.Url = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NFeRecepcaoEvento4"; evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento( new br.gov.ms.sefaz.nfe.hom.MSEvento4.nfeResultMsg { Any = new XmlNode[] { cceDadosMsg } }).Any[0]); } } case ("35"): //Sao Paulo { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.sp.fazenda.nfe.SPRecepcao3.RecepcaoEvento cce = new br.gov.sp.fazenda.nfe.SPRecepcao3.RecepcaoEvento(); cce.nfeCabecMsgValue = new br.gov.sp.fazenda.nfe.SPRecepcao3.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //4.00 { br.gov.sp.fazenda.nfe.RecepcaoEvento4.NFeRecepcaoEvento4 evento = new br.gov.sp.fazenda.nfe.RecepcaoEvento4.NFeRecepcaoEvento4(); evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento(cceDadosMsg)); } } else { return(null); } } case ("41"): //Parana { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.pr.fazenda.nfe.RecepcaoEvento.RecepcaoEvento cce = new br.gov.pr.fazenda.nfe.RecepcaoEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new br.gov.pr.fazenda.nfe.RecepcaoEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //4.00 { br.gov.pr.sefa.nfe.RecepcaoEvento4.NFeRecepcaoEvento4 cce = new br.gov.pr.sefa.nfe.RecepcaoEvento4.NFeRecepcaoEvento4(); cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEventoNF(cceDadosMsg)); } } else //Homologacao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.pr.fazenda.nfe.homologacao.RecepcaoEvento.RecepcaoEvento cce = new br.gov.pr.fazenda.nfe.homologacao.RecepcaoEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new br.gov.pr.fazenda.nfe.homologacao.RecepcaoEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //4.00 { br.gov.pr.sefa.nfe.homologacao.RecepcaoEvento4.NFeRecepcaoEvento4 cce = new br.gov.pr.sefa.nfe.homologacao.RecepcaoEvento4.NFeRecepcaoEvento4(); cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEventoNF(cceDadosMsg)); } } } case ("42"): //Santa Catarina { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.rs.sefaz.nfe.RSRecEvento.RecepcaoEvento cce = new br.gov.rs.sefaz.nfe.RSRecEvento.RecepcaoEvento(); cce.Url = "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx"; cce.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSRecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //4.00 { br.gov.rs.svrs.nfe.RecepcaoEvento4.NFeRecepcaoEvento4 cce = new br.gov.rs.svrs.nfe.RecepcaoEvento4.NFeRecepcaoEvento4(); cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } } else { return(null); } } case ("43"): //Rio Grande do Sul { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.rs.sefaz.nfe.RSRecEvento.RecepcaoEvento cce = new br.gov.rs.sefaz.nfe.RSRecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSRecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //4.00 { br.gov.rs.sefazrs.nfe.RecepcaoEvento4.NFeRecepcaoEvento4 cce = new br.gov.rs.sefazrs.nfe.RecepcaoEvento4.NFeRecepcaoEvento4(); cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } } else { return(null); } } case ("50"): //Mato Grosso do Sul { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.ms.sefaz.nfe.MSEvento4.NFeRecepcaoEvento4 evento = new br.gov.ms.sefaz.nfe.MSEvento4.NFeRecepcaoEvento4(); evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento( new br.gov.ms.sefaz.nfe.MSEvento4.nfeResultMsg { Any = new XmlNode[] { cceDadosMsg } }).Any[0]); } else { br.gov.ms.sefaz.nfe.hom.MSEvento4.NFeRecepcaoEvento4 evento = new br.gov.ms.sefaz.nfe.hom.MSEvento4.NFeRecepcaoEvento4(); evento.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; evento.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(evento.nfeRecepcaoEvento( new br.gov.ms.sefaz.nfe.hom.MSEvento4.nfeResultMsg { Any = new XmlNode[] { cceDadosMsg } }).Any[0]); } } case ("51"): //Mato Grosso { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.mt.sefaz.nfe.MTRecEvento.RecepcaoEvento cce = new br.gov.mt.sefaz.nfe.MTRecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new br.gov.mt.sefaz.nfe.MTRecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //4.00 { br.gov.mt.sefaz.nfe.RecepcaoEvento4.RecepcaoEvento4 cce = new br.gov.mt.sefaz.nfe.RecepcaoEvento4.RecepcaoEvento4(); cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } } else { return(null); } } case ("52"): //Goias { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.go.sefaz.nfe.GORecEvento.RecepcaoEvento cce = new br.gov.go.sefaz.nfe.GORecEvento.RecepcaoEvento(); cce.nfeCabecMsgValue = new br.gov.go.sefaz.nfe.GORecEvento.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versaoEvento }; cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } else //4.00 { br.gov.go.sefaz.nfe.RecepcaoEvento4.NFeRecepcaoEvento4 cce = new br.gov.go.sefaz.nfe.RecepcaoEvento4.NFeRecepcaoEvento4(); cce.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; cce.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(cce.nfeRecepcaoEvento(cceDadosMsg)); } } else { return(null); } } default: { return(null); } } } }
private static XmlNode ConectarWebService2(XmlNode nfeDadosMsg, TRegistro_CfgNfe rCfgNfe) { switch (rCfgNfe.Cd_uf_empresa.Trim()) { case ("31"): //Minas Gerais { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.ms.sefaz.nfe.MSInutiliza4.NFeInutilizacao4 nfe = new br.gov.ms.sefaz.nfe.MSInutiliza4.NFeInutilizacao4(); nfe.Url = "https://nfe.fazenda.mg.gov.br/nfe2/services/NFeInutilizacao4"; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF( new br.gov.ms.sefaz.nfe.MSInutiliza4.nfeResultMsg { Any = new XmlNode[] { nfeDadosMsg } }).Any[0]); } else { br.gov.ms.sefaz.nfe.hom.MSInutiliza4.NFeInutilizacao4 nfe = new br.gov.ms.sefaz.nfe.hom.MSInutiliza4.NFeInutilizacao4(); nfe.Url = "https://hnfe.fazenda.mg.gov.br/nfe2/services/NFeInutilizacao4"; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF( new br.gov.ms.sefaz.nfe.hom.MSInutiliza4.nfeResultMsg { Any = new XmlNode[] { nfeDadosMsg } }).Any[0]); } } case ("35"): //Sao Paulo { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.sp.fazenda.nfe.SPInutilizacao3.NfeInutilizacao2 nfe = new br.gov.sp.fazenda.nfe.SPInutilizacao3.NfeInutilizacao2(); nfe.nfeCabecMsgValue = new br.gov.sp.fazenda.nfe.SPInutilizacao3.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF2(nfeDadosMsg)); } else //4.00 { br.gov.sp.fazenda.nfe.SPInutilizacao4.NFeInutilizacao4 nfe = new br.gov.sp.fazenda.nfe.SPInutilizacao4.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } } else { return(null); } } case ("41"): //Parana { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.pr.fazenda.nfe.PRInutilizacao3.NfeInutilizacao3 nfe = new br.gov.pr.fazenda.nfe.PRInutilizacao3.NfeInutilizacao3(); nfe.nfeCabecMsgValue = new br.gov.pr.fazenda.nfe.PRInutilizacao3.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } else //4.00 { br.gov.pr.sefa.nfe.PRInutilizacao4.NFeInutilizacao4 nfe = new br.gov.pr.sefa.nfe.PRInutilizacao4.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } } else { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.pr.fazenda.nfe.homologacao.PRInutilizacao3.NfeInutilizacao3 nfe = new br.gov.pr.fazenda.nfe.homologacao.PRInutilizacao3.NfeInutilizacao3(); nfe.nfeCabecMsgValue = new br.gov.pr.fazenda.nfe.homologacao.PRInutilizacao3.nfeCabecMsg { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } else //4.00 { br.gov.pr.sefa.nfe.homologacao.PRInutilizacao41.NFeInutilizacao4 nfe = new br.gov.pr.sefa.nfe.homologacao.PRInutilizacao41.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } } } case ("42"): //Santa Catarina { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Produção { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.rs.sefaz.nfe.RSInutilizacao2.NfeInutilizacao2 nfe = new br.gov.rs.sefaz.nfe.RSInutilizacao2.NfeInutilizacao2(); nfe.Url = "https://nfe.svrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"; nfe.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSInutilizacao2.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF2(nfeDadosMsg)); } else //4.00 { br.gov.rs.svrs.nfe.Inutilizacao4.NFeInutilizacao4 nfe = new br.gov.rs.svrs.nfe.Inutilizacao4.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } } else //Homologacao { br.gov.rs.sefaz.nfe.RSInutilizacao2.NfeInutilizacao2 nfe = new br.gov.rs.sefaz.nfe.RSInutilizacao2.NfeInutilizacao2(); nfe.Url = "https://nfe-homologacao.svrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"; nfe.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSInutilizacao2.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF2(nfeDadosMsg)); } } case ("43"): //Rio Grande do Sul { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.rs.sefaz.nfe.RSInutilizacao2.NfeInutilizacao2 nfe = new br.gov.rs.sefaz.nfe.RSInutilizacao2.NfeInutilizacao2(); nfe.nfeCabecMsgValue = new br.gov.rs.sefaz.nfe.RSInutilizacao2.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF2(nfeDadosMsg)); } else //4.00 { br.gov.rs.sefazrs.nfe.RSInutilizacao4.NFeInutilizacao4 nfe = new br.gov.rs.sefazrs.nfe.RSInutilizacao4.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } } else { return(null); } } case ("50"): //Mato Grosso do Sul { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { br.gov.ms.sefaz.nfe.MSInutiliza4.NFeInutilizacao4 nfe = new br.gov.ms.sefaz.nfe.MSInutiliza4.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF( new br.gov.ms.sefaz.nfe.MSInutiliza4.nfeResultMsg { Any = new XmlNode[] { nfeDadosMsg } }).Any[0]); } else { br.gov.ms.sefaz.nfe.hom.MSInutiliza4.NFeInutilizacao4 nfe = new br.gov.ms.sefaz.nfe.hom.MSInutiliza4.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF( new br.gov.ms.sefaz.nfe.hom.MSInutiliza4.nfeResultMsg { Any = new XmlNode[] { nfeDadosMsg } }).Any[0]); } } case ("51"): //Mato Grosso { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.mt.sefaz.nfe.MTInutilizacao2.NfeInutilizacao2 nfe = new br.gov.mt.sefaz.nfe.MTInutilizacao2.NfeInutilizacao2(); nfe.nfeCabecMsgValue = new br.gov.mt.sefaz.nfe.MTInutilizacao2.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF2(nfeDadosMsg)); } else //4.00 { br.gov.mt.sefaz.nfe.MTInutilizacao4.NfeInutilizacao4 nfe = new br.gov.mt.sefaz.nfe.MTInutilizacao4.NfeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } } else { return(null); } } case ("52"): //Goias { if (rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P")) //Producao { if (rCfgNfe.Cd_versao.Trim().Equals("3.10")) { br.gov.go.sefaz.nfe.GOInutilizacao2.NfeInutilizacao2 nfeInutilizar = new br.gov.go.sefaz.nfe.GOInutilizacao2.NfeInutilizacao2(); nfeInutilizar.nfeCabecMsgValue = new br.gov.go.sefaz.nfe.GOInutilizacao2.nfeCabecMsg() { cUF = rCfgNfe.Cd_uf_empresa, versaoDados = rCfgNfe.Cd_versao }; nfeInutilizar.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfeInutilizar.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfeInutilizar.nfeInutilizacaoNF2(nfeDadosMsg)); } else //4.00 { br.gov.go.sefaz.nfe.GOInutilizacao4.NFeInutilizacao4 nfe = new br.gov.go.sefaz.nfe.GOInutilizacao4.NFeInutilizacao4(); nfe.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap12; nfe.ClientCertificates.Add(Utils.Assinatura.TAssinatura2.BuscaNroSerie(rCfgNfe.Nr_certificado_nfe)); return(nfe.nfeInutilizacaoNF(nfeDadosMsg)); } } else { return(null); } } default: { return(null); } } }
public static string ConsultaNFDest(TRegistro_CfgNfe rCfgNfe) { StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<consNFeDest xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaocondest.Trim() + "\">\n"); //Ambiente xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>\n"); //Serviço Solicitado xml.Append("<xServ>CONSULTAR NFE DEST</xServ>\n"); //CNPJ Destinatario xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>\n"); //Indicador de NFe xml.Append("<indNFe>"); xml.Append("0"); xml.Append("</indNFe>\n"); //Indicador de Emissor xml.Append("<indEmi>"); xml.Append("0"); xml.Append("</indEmi>\n"); //NSU xml.Append("<ultNSU>"); xml.Append("0"); xml.Append("</ultNSU>\n"); xml.Append("</consNFeDest>\n"); try { //Validar schema xml Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "consNFeDest_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd", "NFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { return(Utils.ValidaSchema.ValidaXML2.Retorno); } //Conectar Web Service XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); //Tratar retorno if (retorno != null) { if (retorno["cStat"].InnerText.Trim().Equals("128")) { if (retorno["retEvento"]["infEvento"]["cStat"].InnerText.Trim().Equals("135")) { //rEvento.St_registro = "T"; //try //{ // rEvento.Nr_protocolo = decimal.Parse(retorno["retEvento"]["infEvento"]["nProt"].InnerText); //} //catch { } //CamadaNegocio.Faturamento.NFE.TCN_EventoNFe.Gravar(rEvento, null); return(string.Empty); } else { return(retorno["retEvento"]["infEvento"]["xMotivo"].InnerText); } } else { return(retorno["xMotivo"].InnerText); } } else { throw new Exception("Ocorreu um erro ao enviar EVENTO para receita."); } } catch (Exception ex) { return(ex.Message.Trim()); } }
public static bool GerarXMLLMC(TRegistro_LMC val, TRegistro_CfgNfe rCfgNfe, ref string Msg) { bool ret = false; val.Chaveacesso = CamadaNegocio.PostoCombustivel.TCN_LMC.GerarChaveLMC(val); //Validar certificado srvNFE.ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(rCfgNfe); StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?> "); #region autorizacao xml.Append("<autorizacao xmlns=\"http://www.fazenda.pr.gov.br/sefaws\">"); #region LivroCombustivel xml.Append("<livroCombustivel xmlns=\"http://www.fazenda.pr.gov.br/sefaws\">"); #region infLivroCombustivel xml.Append("<infLivroCombustivel versao=\"" + rCfgNfe.Cd_versaoLMC.Trim() + "\" Id=\"LMC" + val.Chaveacesso.Trim() + "\">"); #region Ambiente xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente_lmc); xml.Append("</tpAmb>"); #endregion #region Codigo LMC xml.Append("<cNumerico>"); xml.Append(val.Id_lmcstr.FormatStringEsquerda(5, '0')); xml.Append("</cNumerico>"); #endregion #region Codigo Digito Verificador Chave Acesso xml.Append("<cDV>"); xml.Append(val.Chaveacesso.Substring(val.Chaveacesso.Length - 1, 1)); xml.Append("</cDV>"); #endregion #region Emitente LMC xml.Append("<emit>"); #region Insc. Estadual xml.Append("<IE>"); xml.Append(val.IE_empresa.SoNumero()); xml.Append("</IE>"); #endregion #region CNPJ xml.Append("<CNPJ>"); xml.Append(val.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>"); #endregion #region Nome Emitente xml.Append("<xNome>"); xml.Append(val.Nm_empresa.Trim().SubstCaracteresEsp()); xml.Append("</xNome>"); #endregion xml.Append("</emit>"); #endregion #region Movimento xml.Append("<movimento dEmissao=\"" + val.Dt_emissao.Value.ToString("yyyy-MM-dd") + "\">"); #region infMovimento CamadaNegocio.PostoCombustivel.TCN_MovLMC.Buscar(val.Cd_empresa, val.Id_lmcstr, string.Empty, null).ForEach(p => { xml.Append("<infMovimento nrProduto=\"" + p.Tp_combustivel + "\">"); //Volume Abertura xml.Append("<volEstoqueAbertura>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", p.Volumeabertura)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volEstoqueAbertura>"); #region volumeRecebido p.lRec = CamadaNegocio.PostoCombustivel.TCN_MovRec.Buscar(p.Cd_empresa, p.Id_lmcstr, p.Id_movtostr, null); if (p.lRec.Count > 0) { p.lRec.ForEach(v => { xml.Append("<volumeRecebido>"); //CNPJ xml.Append("<CNPJ>"); xml.Append(v.Cnpj_fornecedor.SoNumero()); xml.Append("</CNPJ>"); //Nota Fiscal xml.Append("<nNF>"); xml.Append(v.Nr_notafiscalstr); xml.Append("</nNF>"); //Data Nota xml.Append("<dNF>"); xml.Append(v.Dt_saient.Value.ToString("yyyy-MM-dd")); xml.Append("</dNF>"); //Volume Recebido xml.Append("<volVolume>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.VolumeRecebido)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volVolume>"); //Tanque xml.Append("<xTanque>"); xml.Append(v.Id_tanquestr); xml.Append("</xTanque>"); xml.Append("</volumeRecebido>"); }); } #endregion #region volumeVendido p.lVend = CamadaNegocio.PostoCombustivel.TCN_MovVend.Buscar(p.Cd_empresa, p.Id_lmcstr, p.Id_movtostr, null); if (p.lVend.Count > 0) { p.lVend.ForEach(v => { xml.Append("<volumeVendido>"); //Tanque xml.Append("<xTanque>"); xml.Append(v.Id_tanquestr); xml.Append("</xTanque>"); //Bico xml.Append("<nrBico>"); xml.Append(v.Ds_labelbico); xml.Append("</nrBico>"); //Fechamento xml.Append("<volFechamento>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.Volfechamento)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volFechamento>"); //Abertura xml.Append("<volAbertura>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.Volabertura)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volAbertura>"); //Afericoes xml.Append("<volAfericoes>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", v.Volafericao)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volAfericoes>"); xml.Append("</volumeVendido>"); }); } #endregion //Estoque Fechamento xml.Append("<volEstoqueFechamento>"); xml.Append(Convert.ToDecimal(string.Format("{0:N3}", p.Volumefechamento)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</volEstoqueFechamento>"); //Valor Vendas Dia xml.Append("<valVendasDiaBomba>"); xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.Vl_vendasdia)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</valVendasDiaBomba>"); //Vendas Acumuladas Mes xml.Append("<valAcumuladoMes>"); xml.Append(Convert.ToDecimal(string.Format("{0:N2}", p.Vl_vendasdia)).ToString(new System.Globalization.CultureInfo("en-US", true))); xml.Append("</valAcumuladoMes>"); //Observacoes xml.Append("<observacoes>"); xml.Append(p.Obs.Trim().SubstCaracteresEsp()); xml.Append("</observacoes>"); xml.Append("</infMovimento>"); }); #endregion xml.Append("</movimento>"); #endregion xml.Append("</infLivroCombustivel>"); #endregion xml.Append("</livroCombustivel>"); #endregion xml.Append("</autorizacao>"); #endregion //Assinar documento XML string xmlassinado = new Utils.Assinatura.TAssinatura2(rCfgNfe.Nr_certificado_nfe, Utils.Assinatura.TAssinatura2.TTpArq.tpLMCe, xml.ToString()).Assinar(); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado, rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "autorizacao_v" + rCfgNfe.Cd_versaoLMC.Trim() + ".xsd", "LMC"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar arquivo para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlassinado); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); if (retorno != null) { if (retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText.Trim().Equals("100") || retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText.Trim().Equals("101") || retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText.Trim().Equals("1001")) { try { CamadaDados.TDataQuery query = new CamadaDados.TDataQuery(); System.Collections.Hashtable hs = new System.Collections.Hashtable(); hs.Add("@P_CHAVE", val.Chaveacesso); hs.Add("@P_RECEBIMENTO", DateTime.Parse(retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["dhRecbto"].InnerText)); hs.Add("@P_STATUS", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText); hs.Add("@P_XMOTIVO", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText); hs.Add("@P_NPROT", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["nProt"].InnerText); hs.Add("@P_DIGVAL", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["digVal"].InnerText); hs.Add("@P_XML", xmlassinado); hs.Add("@P_EMPRESA", val.Cd_empresa); hs.Add("@P_LMC", val.Id_lmc); query.executarSql("update tb_pdc_lmc set " + "chaveacesso = @P_CHAVE, " + "dt_recebimento = @P_RECEBIMENTO, " + "status = @P_STATUS, " + "xMotivo = @P_XMOTIVO, " + "nProt = @P_NPROT, " + "digVal = @P_DIGVAL, " + "xml_lmc = @P_XML, " + "dt_alt = getdate() " + "where cd_empresa = @P_EMPRESA and id_lmc = @P_LMC", hs); ret = true; Msg = retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText; } catch (Exception ex) { throw new Exception("Erro gravar chave acesso LMC-e: " + ex.Message.Trim()); } } else { try { CamadaDados.TDataQuery query = new CamadaDados.TDataQuery(); System.Collections.Hashtable hs = new System.Collections.Hashtable(); hs.Add("@P_STATUS", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["cStat"].InnerText); hs.Add("@P_XMOTIVO", retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText); hs.Add("@P_EMPRESA", val.Cd_empresa); hs.Add("@P_LMC", val.Id_lmc); query.executarSql("update tb_pdc_lmc set " + "status = @P_STATUS, " + "xMotivo = @P_XMOTIVO, " + "dt_alt = getdate() " + "where cd_empresa = @P_EMPRESA and id_lmc = @P_LMC", hs); } catch (Exception ex) { throw new Exception("Erro gravar chave acesso LMC-e: " + ex.Message.Trim()); } Msg = retorno["autorizacaoRetorno"]["livroCombustivelRetorno"]["protLivroCombustivel"]["infProt"]["xMotivo"].InnerText; } } return(ret); }
public static string InutilizarNfe2(string Cd_uf, string Cnpj, string Nr_serie, string Cd_modelo, string Ano, decimal Nfe_inicial, decimal nfe_final, string Justificativa, TRegistro_CfgNfe rCfgNfe) { //Validar certificado ConsultaStatusServico.ConsultaStatusServico.ValidarCertificado(rCfgNfe); StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<inutNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versao.Trim() + "\">\n"); xml.Append("<infInut Id=\"ID" + Cd_uf.FormatStringEsquerda(2, '0') + Ano.FormatStringEsquerda(2, '0') + Regex.Replace(Cnpj.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty).FormatStringEsquerda(14, '0') + Cd_modelo.FormatStringEsquerda(2, '0') + Nr_serie.FormatStringEsquerda(3, '0') + Nfe_inicial.ToString().FormatStringEsquerda(9, '0') + nfe_final.ToString().FormatStringEsquerda(9, '0') + "\">\n"); xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>\n"); xml.Append("<xServ>"); xml.Append("INUTILIZAR"); xml.Append("</xServ>\n"); xml.Append("<cUF>"); xml.Append(Cd_uf.FormatStringEsquerda(2, '0')); xml.Append("</cUF>\n"); xml.Append("<ano>"); xml.Append(Ano.FormatStringEsquerda(2, '0')); xml.Append("</ano>\n"); xml.Append("<CNPJ>"); xml.Append(Regex.Replace(Cnpj.Trim(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty).FormatStringEsquerda(14, '0')); xml.Append("</CNPJ>\n"); xml.Append("<mod>"); xml.Append(Cd_modelo.FormatStringEsquerda(2, '0')); xml.Append("</mod>\n"); xml.Append("<serie>"); xml.Append(Nr_serie.Trim()); xml.Append("</serie>\n"); xml.Append("<nNFIni>"); xml.Append(Nfe_inicial.ToString()); xml.Append("</nNFIni>\n"); xml.Append("<nNFFin>"); xml.Append(nfe_final.ToString()); xml.Append("</nNFFin>\n"); xml.Append("<xJust>"); xml.Append(Regex.Replace(Justificativa.Trim().RemoverCaracteres(), "[!@#$%&*()-/;:?,.\r\n]", string.Empty)); xml.Append("</xJust>\n"); xml.Append("</infInut>\n"); xml.Append("</inutNFe>\n"); //Assinar documento XML string xmlassinado = new Utils.Assinatura.TAssinatura2(rCfgNfe.Nr_certificado_nfe, Utils.Assinatura.TAssinatura2.TTpArq.tpInutiliza, xml.ToString()).Assinar(); //Validar Schema XML Utils.ValidaSchema.ValidaXML2.validaXML(xmlassinado, rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "inutNFe_v" + rCfgNfe.Cd_versao.Trim() + ".xsd", "NFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim()); } //Enviar arquivo para Receita XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlassinado); XmlNode retorno = ConectarWebService2(doc.DocumentElement, rCfgNfe); if (retorno["infInut"]["cStat"].InnerText.Trim().Equals("102")) { //Gravar registro Inutilizacao try { CamadaNegocio.Faturamento.Cadastros.TCN_SeqInutNFe.Gravar( new TRegistro_SeqInutNFe() { Cd_empresa = rCfgNfe.Cd_empresa, Nr_serie = Nr_serie.Trim(), Cd_modelo = Cd_modelo.Trim(), Nr_nfinicial = Nfe_inicial, Nr_nffinal = nfe_final, Ano = Convert.ToInt32(Ano), Dh_processamento = DateTime.Parse(retorno["infInut"]["dhRecbto"].InnerText), Nr_protocolo = decimal.Parse(retorno["infInut"]["nProt"].InnerText) }, null); } catch { } return(retorno["infInut"]["cStat"].InnerText.Trim() + " - " + retorno["infInut"]["xMotivo"].InnerText.Trim()); } else { throw new Exception(retorno["infInut"]["cStat"].InnerText.Trim() + " - " + retorno["infInut"]["xMotivo"].InnerText.Trim()); } }
public static string DownloadXML(TRegistro_CfgNfe rCfgNfe, TRegistro_CadEmpresa rEmp, string Chave) { StringBuilder xml = new StringBuilder(); xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); xml.Append("<distDFeInt xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.01\">\n"); //Ambiente xml.Append("<tpAmb>"); xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2"); xml.Append("</tpAmb>\n"); //UF Autor xml.Append("<cUFAutor>"); xml.Append(rEmp.rEndereco.Cd_uf); xml.Append("</cUFAutor>\n"); //CNPJ Destinatario xml.Append("<CNPJ>"); xml.Append(rCfgNfe.Cnpj_empresa.SoNumero()); xml.Append("</CNPJ>\n"); xml.Append("<consChNFe>\n"); xml.Append("<chNFe>" + Chave.Trim() + "</chNFe>\n"); xml.Append("</consChNFe>\n"); xml.Append("</distDFeInt>\n"); //Validar schema xml Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(), rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "distDFeInt_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd", "MDFE"); if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno)) { throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno); } //Conectar Web Service XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.ToString()); XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe); //Tratar retorno if (retorno != null) { //para abrir o arquivo para o usuario if (retorno["cStat"].InnerText.Trim().Equals("138")) { if (retorno["loteDistDFeInt"].ChildNodes.Count > 0) { return(Compact_Data.Descompactar(Convert.FromBase64String(retorno["loteDistDFeInt"].ChildNodes[0].InnerText))); } else { return(string.Empty); } } else { throw new Exception(retorno["xMotivo"].InnerText); } } else { throw new Exception("Erro executar WebService."); } }