/// <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
            }
        }
Esempio n. 3
0
        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();
            }
        }