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 { } }
public static void ThreadMasterExecution(Object oThreadIdetificada) { ThreadIdetificada oTh = (ThreadIdetificada)oThreadIdetificada; String ConAux = (String)oTh.args[0]; String empresa = (String)oTh.args[1]; bool enviarErro = false; if (oTh.args.Length > 2) { enviarErro = (bool)oTh.args[2]; } ClientEnvironment manager = null; FuncaoAutomacao oFuncao = null; try { oTh.executando = true; oTh.DoOnStart(null, new StatusEventArgs() { empresa = empresa }); manager = Conexao.CreateManager(ConAux); oFuncao = new FuncaoAutomacao(empresa, manager, enviarErro); oFuncao.CriaLog(998, "Serviço de monitoramento inicializado com sucesso."); DateTime dataUltimaExecucao = DateTime.Now; Int32 totalMilliSecondsTime = 1000; while (!oTh.finalizar) { TimeSpan elapsed = DateTime.Now.Subtract(dataUltimaExecucao); if (elapsed.TotalMilliseconds < totalMilliSecondsTime) { Double delay = totalMilliSecondsTime - elapsed.TotalMilliseconds; try { Thread.Sleep((int)delay); } catch { } } else { //verificar estado da conexao if (manager.connection.State != System.Data.ConnectionState.Open) { //conexao não esta aberta manager = Conexao.CreateManager(ConAux); oFuncao.UpdateManager(manager); } dataUltimaExecucao = DateTime.Now; NFeUtils.GeraHeartBeat(true, empresa); oFuncao.DoOnLoop(false, ""); } } oTh.executando = false; oTh.DoOnStop(null, new StatusEventArgs() { empresa = empresa }); oFuncao.CriaLog(997, "Serviço de monitoramento paralizado com sucesso."); } catch (Exception ex) { ExceptionEventArgs ev = new ExceptionEventArgs(); ev.error = ex; oTh.DoOnError(null, ev); } finally { oFuncao = null; oTh.executando = false; oTh.finalizado = true; Conexao.DisposeManager(manager); } }