public static void GeraHeartBeat(bool emExecucao, string empresa)
        {
            try
            {
                RDI.NFe2.SchemaXML.TIntegracao oIntegracao = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao        = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao.versao = TIntegracaoVersao.Item100;
                oIntegracao.item   = new RDI.NFe2.SchemaXML.THeartBeat();
                ((RDI.NFe2.SchemaXML.THeartBeat)oIntegracao.item).horario = DateTime.Now;

                if (emExecucao)
                {
                    ((RDI.NFe2.SchemaXML.THeartBeat)oIntegracao.item).emExecucao               = RDI.NFe2.SchemaXML.TSimNao.Sim;
                    ((RDI.NFe2.SchemaXML.THeartBeat)oIntegracao.item).horarioExecucao          = DateTime.Now;
                    ((RDI.NFe2.SchemaXML.THeartBeat)oIntegracao.item).horarioExecucaoSpecified = true;
                }
                else
                {
                    ((RDI.NFe2.SchemaXML.THeartBeat)oIntegracao.item).emExecucao = RDI.NFe2.SchemaXML.TSimNao.Nao;
                }

                XMLUtils.SalvaXML("heartbeat_" + empresa + ".xml", oIntegracao, VersaoXML.Integracao);
            }
            catch { }
        }
        public static void GeraRetornoInutilizacaoNFe(string inutID, string cStat, string xMotivo, string dirCaixaSaida)
        {
            try
            {
                RDI.NFe2.SchemaXML.TIntegracao oIntegracao = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao        = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao.versao = TIntegracaoVersao.Item100;
                var item = new RDI.NFe2.SchemaXML.TRetornoInutilizacao();
                item.inutID      = inutID;
                item.cStat       = cStat;
                item.xMotivo     = xMotivo;
                item.aprovado    = (cStat == "102");
                oIntegracao.item = item;

                if (!dirCaixaSaida.EndsWith("\\"))
                {
                    dirCaixaSaida += "\\";
                }

                var stNomeArq = dirCaixaSaida + inutID + "-retornoInutilizacao.xml";
                if (File.Exists(stNomeArq))
                {
                    File.Delete(stNomeArq);
                }

                XMLUtils.SalvaXML(stNomeArq, oIntegracao, VersaoXML.Integracao);
            }
            catch { }
        }
        public static void GeraRetornoCancelamentoNFe(string chNFe, string cStat, string xMotivo, string dirCaixaSaida, string origem = "")
        {
            try
            {
                if (!dirCaixaSaida.EndsWith("\\"))
                {
                    dirCaixaSaida += "\\";
                }

                var stNomeArq = dirCaixaSaida + chNFe + "-retornoCancelamento.xml";

                //remover prefixo
                if (!string.IsNullOrEmpty(chNFe))
                {
                    chNFe = chNFe.Replace("NFe", "");
                }
                else
                {
                    var nome = origem.Replace("evtCanc_", "").Replace(".xml", "");
                    stNomeArq = dirCaixaSaida + nome + "-retornoCancelamento.xml";
                }

                RDI.NFe2.SchemaXML.TIntegracao oIntegracao = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao        = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao.versao = TIntegracaoVersao.Item100;
                var item = new RDI.NFe2.SchemaXML.TRetornoCancelamento();
                item.chNFe       = chNFe;
                item.cStat       = cStat;
                item.xMotivo     = xMotivo;
                item.aprovado    = (cStat == "135" || cStat == "136" || cStat == "155");
                item.origem      = origem;
                oIntegracao.item = item;


                if (File.Exists(stNomeArq))
                {
                    File.Delete(stNomeArq);
                }

                XMLUtils.SalvaXML(stNomeArq, oIntegracao, VersaoXML.Integracao);
            }
            catch { }
        }
        public static void GeraRejeicaoNFe(string chNFe, string cStat, string xMotivo, string dirCaixaSaida)
        {
            try
            {
                if (!dirCaixaSaida.EndsWith("\\"))
                {
                    dirCaixaSaida += "\\";
                }

                var stNomeArq = dirCaixaSaida + chNFe + "-rejeicaoNFe.xml";

                //remover prefixo
                if (!string.IsNullOrEmpty(chNFe))
                {
                    chNFe = chNFe.Replace("NFe", "");
                }
                else
                {
                    //chave não veio
                    var nome = DateTime.Now.Ticks.ToString();
                    stNomeArq = dirCaixaSaida + nome + "-rejeicaoNFe.xml";
                }

                RDI.NFe2.SchemaXML.TIntegracao oIntegracao = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao        = new RDI.NFe2.SchemaXML.TIntegracao();
                oIntegracao.versao = TIntegracaoVersao.Item100;
                var item = new RDI.NFe2.SchemaXML.TRejeicao();
                item.chNFe       = chNFe;
                item.cStat       = cStat;
                item.xMotivo     = xMotivo;
                oIntegracao.item = item;

                if (File.Exists(stNomeArq))
                {
                    File.Delete(stNomeArq);
                }

                XMLUtils.SalvaXML(stNomeArq, oIntegracao, VersaoXML.Integracao);
            }
            catch { }
        }