Exemple #1
0
 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.";
                 }
             }
         }
     }
 }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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();
                        }
                    }
                }
            }
        }
Exemple #4
0
        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.");
            }
        }
Exemple #5
0
 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));
 }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
 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));
 }
Exemple #8
0
 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));
 }
Exemple #9
0
        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()); }
        }
Exemple #10
0
        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();
                }
            }
        }
Exemple #11
0
        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.");
            }
        }
Exemple #12
0
        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.");
            }
        }
Exemple #13
0
        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); }
            }
        }
Exemple #14
0
        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.");
            }
        }
Exemple #15
0
        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.");
            }
        }
Exemple #16
0
        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); }
                }
            }
        }
Exemple #17
0
        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);
            }
            }
        }
Exemple #18
0
        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()); }
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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());
            }
        }
Exemple #21
0
        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.");
            }
        }