/// <summary> /// Procurar os arquivos XML´s a serem enviados aos web-services ou para ser executado alguma rotina /// </summary> /// <param name="pTipoArq">Mascara dos arquivos as serem pesquisados. Ex: *.xml *-nfe.xml</param> public override void BuscaXML(object parametroThread) { ParametroThread param = (ParametroThread)parametroThread; ServicoNFe oNfe = new ServicoNFe(); //Criar XML de controle de fluxo de envios de Notas Fiscais FluxoNfe oFluxoNfe = new FluxoNfe(); try { oFluxoNfe.CriarXml(true); } catch (Exception ex) { //danasa 27-2-2011 string exMessage = "Ocorreu um erro ao tentar criar o XML para o controle do fuxo do envio dos documentos eletrônicos.\r\n\r\nErro:" + ex.Message; new Auxiliar().GravarArqErroERP(string.Format(InfoApp.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddThhmmss")), exMessage); //MessageBox.Show("Ocorreu um erro ao tentar criar o XML para o controle do fuxo do envio dos documentos eletrônicos.\r\n\r\nErro:" + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } while (true) { this.ProcessaXML(oNfe, param.Servico); Thread.Sleep(1000); //Pausa na Thread de 1000 milissegundos ou 1 segundo } }
/// <summary> /// Procurar os arquivos XML´s a serem enviados aos web-services ou para ser executado alguma rotina /// </summary> /// <param name="pTipoArq">Mascara dos arquivos as serem pesquisados. Ex: *.xml *-nfe.xml</param> public override void BuscaXML(object parametroThread) { ParametroThread param = (ParametroThread)parametroThread; ServicoNFe oNfe = new ServicoNFe(); //Criar XML de controle de fluxo de envios de Notas Fiscais FluxoNfe oFluxoNfe = new FluxoNfe(); try { oFluxoNfe.CriarXml(true); } catch (Exception ex) { MessageBox.Show("Ocorreu um erro ao tentar criar o XML para o controle do fuxo do envio dos documentos eletrônicos.\r\n\r\nErro:" + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } while (true) { this.ProcessaXML(oNfe, param.Servico); Thread.Sleep(1000); //Pausa na Thread de 1000 milissegundos ou 1 segundo } }
public override void ProcessaArquivo(object paramThread) { int emp = new FindEmpresaThread(Thread.CurrentThread).Index; ParametroThread param = (ParametroThread)paramThread; Servicos servico = param.Servico; try { string arquivo = param.Arquivo; #region Executar o serviço switch (servico) { case Servicos.PedidoConsultaSituacaoNFe: Empresa.Configuracoes[emp].PoolPedidoConsultaSituacaoNFe.WaitOne(); CertVencido(emp); IsConnectedToInternet(); PedidoConsultaSituacaoNFe(new ServicoNFe(), arquivo); break; case Servicos.PedidoConsultaStatusServicoNFe: Empresa.Configuracoes[emp].PoolDiversos.WaitOne(); CertVencido(emp); IsConnectedToInternet(); PedidoConsultaStatusServicoNFe(new ServicoNFe(), arquivo); break; case Servicos.ConsultaCadastroContribuinte: Empresa.Configuracoes[emp].PoolDiversos.WaitOne(); CertVencido(emp); IsConnectedToInternet(); ConsultaCadastroContribuinte(new ServicoNFe(), arquivo); break; case Servicos.CancelarNFe: Empresa.Configuracoes[emp].PoolDiversos.WaitOne(); CertVencido(emp); IsConnectedToInternet(); CancelarNFe(new ServicoNFe(), arquivo); break; case Servicos.InutilizarNumerosNFe: Empresa.Configuracoes[emp].PoolDiversos.WaitOne(); CertVencido(emp); IsConnectedToInternet(); InutilizarNumerosNFe(new ServicoNFe(), arquivo); break; case Servicos.PedidoSituacaoLoteNFe: Empresa.Configuracoes[emp].PoolPedidoSituacaoLoteNFe.WaitOne(); CertVencido(emp); IsConnectedToInternet(); PedidoSituacaoLoteNFe(new ServicoNFe(), arquivo); break; case Servicos.MontarLoteUmaNFe: CertVencido(emp); IsConnectedToInternet(); MontarLoteUmaNFe(new ServicoNFe(), arquivo); break; case Servicos.EnviarLoteNfe: Empresa.Configuracoes[emp].PoolEnviarLoteNfe.WaitOne(); EnviarLoteNfe(new ServicoNFe(), arquivo); break; case Servicos.GerarChaveNFe: GerarChaveNFe(arquivo); break; case Servicos.EnviarDPEC: Empresa.Configuracoes[emp].PoolEnviarDPEC.WaitOne(); CertVencido(emp); IsConnectedToInternet(); EnviarDPEC(new ServicoNFe(), arquivo); break; case Servicos.ConsultarDPEC: Empresa.Configuracoes[emp].PoolDiversos.WaitOne(); CertVencido(emp); IsConnectedToInternet(); ConsultarDPEC(new ServicoNFe(), arquivo); break; case Servicos.AssinarValidar: CertVencido(emp); AssinarValidar(arquivo); break; case Servicos.ConverterTXTparaXML: ConverterTXTparaXML(arquivo); break; case Servicos.ConsultaInformacoesUniNFe: ConsultaInformacoesUniNFe(arquivo); break; case Servicos.AlterarConfiguracoesUniNFe: AlterarConfiguracoesUniNFe(arquivo); break; case Servicos.AssinarValidarNFe: CertVencido(emp); AssinarValidarNFe(new ServicoNFe(), arquivo, true); break; case Servicos.MontarLoteVariasNFe: CertVencido(emp); IsConnectedToInternet(); MontarLoteVariasNFe(new ServicoNFe(), arquivo); break; case Servicos.EnviarCCe: Empresa.Configuracoes[emp].PoolCCe.WaitOne(); CertVencido(emp); IsConnectedToInternet(); //EnviarEvento(new ServicoNFe(), arquivo); break; default: break; } #endregion } catch (ExceptionSemInternet ex) { GravaErroERP(param.Arquivo, servico, ex, ex.ErrorCode); } catch (ExceptionCerticicadoDigital ex) { GravaErroERP(param.Arquivo, servico, ex, ex.ErrorCode); } catch { } finally { #region Atualizar Pool de Threads switch (servico) { case Servicos.EnviarLoteNfe: Empresa.Configuracoes[emp].PoolEnviarLoteNfe.Release(); break; case Servicos.PedidoConsultaSituacaoNFe: Empresa.Configuracoes[emp].PoolPedidoConsultaSituacaoNFe.Release(); break; case Servicos.PedidoConsultaStatusServicoNFe: Empresa.Configuracoes[emp].PoolDiversos.Release(); break; case Servicos.CancelarNFe: Empresa.Configuracoes[emp].PoolDiversos.Release(); break; case Servicos.ConsultaCadastroContribuinte: Empresa.Configuracoes[emp].PoolDiversos.Release(); break; case Servicos.InutilizarNumerosNFe: Empresa.Configuracoes[emp].PoolDiversos.Release(); break; case Servicos.PedidoSituacaoLoteNFe: Empresa.Configuracoes[emp].PoolPedidoSituacaoLoteNFe.Release(); break; case Servicos.EnviarDPEC: Empresa.Configuracoes[emp].PoolEnviarDPEC.Release(); break; case Servicos.ConsultarDPEC: Empresa.Configuracoes[emp].PoolDiversos.Release(); break; case Servicos.EnviarCCe: Empresa.Configuracoes[emp].PoolCCe.Release(); break; default: break; } #endregion Thread.CurrentThread.Interrupt(); } }