public static void ImprimeDANFe(NotaFiscal oNotaProc, Parametro oParam, ClientEnvironment manager)
        {
            var stVersao = "_v2.00";

            if (oNotaProc.versao == VersaoXML.NFe_v310)
            {
                stVersao = "_v3.10";
            }

            String nomeArquivo         = oNotaProc.nProt + stVersao + "-procNFe.xml";
            string nomeArquivoProcesso = oParam.pastaSaida + nomeArquivo;

            NFeUtils.GeraArquivoProcNFe(oNotaProc, nomeArquivoProcesso, oParam.versaoDados);

            if (!File.Exists(nomeArquivoProcesso))
            {
                throw new Exception("Não foi possível localizar o arquivo de processo : " + oParam.pastaSaida + nomeArquivo);
            }

            File.Copy(nomeArquivoProcesso, oParam.pastaImpressao + nomeArquivo, true);

            oNotaProc.codigoSituacao    = TipoSituacaoNota.Impressa;// 15;//impressa
            oNotaProc.descricaoSituacao = "Nota Impressa";
            oNotaProc.dataSituacao      = DateTime.Now;

            oNotaProc.Save(manager);

            //integracao
            try
            {
                MMCustom.MMUtils.ImprimeDanfe(oNotaProc.chaveNota,
                                              (int)oNotaProc.codigoSituacao,
                                              oNotaProc.descricaoSituacao,
                                              oNotaProc.cStat,
                                              oNotaProc.xMotivo,
                                              oNotaProc.nProt,
                                              nomeArquivoProcesso);
            }
            catch { }
        }