예제 #1
0
        public string concatNire_NunArquivamento(ReleaseJucecProperties releaseJucec, ProjetoProperties projeto)
        {
            string NireNunArquivamento = string.Empty;

            if (projeto.nmProjeto.ToUpper() != "JUCEC - CADASTRO SINCRONIZADO")
            {
                if (releaseJucec.numProtocolo != string.Empty)
                {
                    NireNunArquivamento = NireNunArquivamento + "\\" + releaseJucec.numProtocolo;
                }
                else if (releaseJucec.nire != string.Empty && releaseJucec.numArquivamento != string.Empty)
                {
                    string text2 = NireNunArquivamento;

                    NireNunArquivamento = string.Concat(new string[] { text2, "\\", releaseJucec.nire, "\";\"", releaseJucec.numArquivamento });
                }
                else
                {
                    NireNunArquivamento += "\\000\";\"000000";
                }
            }
            else
            {
                string text3 = NireNunArquivamento;
                NireNunArquivamento = string.Concat(new string[] { text3, "\\", releaseJucec.nire, "\";\"", releaseJucec.numProtocolo });
            }

            return(NireNunArquivamento);
        }
예제 #2
0
        public void geraArqvuivoCSV(string caminhoArquivoCSV, ReleaseJucecProperties releaseJucec, DirectoryInfo pathDestino, CaixaProperties caixa)
        {
            StreamWriter sw = null;

            try
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(caminhoArquivoCSV.Substring(0, caminhoArquivoCSV.LastIndexOf("\\")));

                if (!directoryInfo.Exists)
                {
                    directoryInfo.Create();
                }

                sw = new StreamWriter(caminhoArquivoCSV, false, Encoding.Default);

                sw.WriteLine("CAIXA;NUMERO_DO_PROTOCOLO;CAMINHO_IMAGEM");
                sw.Write(caixa.DsCaixa);
                sw.Write(";");
                sw.Write(releaseJucec.numProtocolo);
                sw.Write(";");
                sw.Write(pathDestino.FullName + "\\" + releaseJucec.numProtocolo + ".pdf");
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (sw != null)
                {
                    sw.Close();
                    sw.Dispose();
                }
            }
        }
예제 #3
0
        // Autor:Eduardo Nofre
        // Date: 04/04/2017
        // Motivação: solicitação do cliente para o Rafael Lira que esteve no cliente em Recifie
        // action: move os arquivos pdf sem assinatura para um diretorio definido pelo cliente
        // essa configuração fica no appConfig ou melhor appConfig.ini

        public Boolean moverPdfSemAssinaturaSRM(FileInfo arquivoMover, ReleaseJucecProperties releaseJucec, DocumentosProperties documento, ConfiguracaoProperties configApp)
        {
            RegrasDocumentos regrasDocumentos = new RegrasDocumentos();

            bool isJucec = regrasDocumentos.tipoIndexDocumento_Jucec_Sesaz(documento);

            if (isJucec)
            {
                if (arquivoMover.FullName != "")
                {
                    FileInfo dirOrigemPdf = new FileInfo(arquivoMover.FullName);

                    if (Directory.Exists(configApp.caminhoPdfSemAssinatura))
                    {
                        if (!File.Exists(configApp.caminhoPdfSemAssinatura + "\\" + releaseJucec.numProtocolo + ".pdf"))
                        {
                            System.IO.File.Copy(arquivoMover.FullName, configApp.caminhoPdfSemAssinatura + "\\" + releaseJucec.numProtocolo + ".pdf");

                            log.escreveLog(".PDF sem assinatura enviado para o SRM " + arquivoMover.Name, configApp);

                            regrasDocumentos.LogDocumento(documento, Constantes.ENVIADO_SRM);

                            return(true);
                        }
                        else
                        {
                            log.escreveLog("Aviso: Não foi possivel enviar para o SRM porque talvez o arquivo pdf ja exista neste diretorio " + configApp.caminhoPdfSemAssinatura + "\\" + releaseJucec.numProtocolo + ".pdf", configApp);
                            return(true);
                        }
                    }
                    else
                    {
                        log.escreveLog("Aviso: Diretorio não existe " + configApp.caminhoPdfSemAssinatura, configApp);

                        System.IO.Directory.CreateDirectory(configApp.caminhoPdfSemAssinatura);

                        if (Directory.Exists(configApp.caminhoPdfSemAssinatura))
                        {
                            log.escreveLog("Aviso: Diretorio criado comsucesso " + configApp.caminhoPdfSemAssinatura, configApp);

                            System.IO.File.Copy(arquivoMover.FullName, configApp.caminhoPdfSemAssinatura + "\\" + releaseJucec.numProtocolo + ".pdf");

                            log.escreveLog("Aviso: Enviado SRM " + arquivoMover.Name, configApp);

                            regrasDocumentos.LogDocumento(documento, Constantes.ENVIADO_SRM);

                            return(true);
                        }
                        else
                        {
                            log.escreveLog("Não foi possivel criar o diretorio verifique a permissão na pasta protocolo SRM" + releaseJucec.numProtocolo, configApp);
                            return(false);
                        }
                    }
                }
            }
            return(false);
        }
예제 #4
0
        public bool arquivoParaAssinar(FileInfo filePdf, ReleaseJucecProperties releaseJucec, ConfiguracaoProperties configApp)
        {
            bool pdfisOk = true;

            try
            {
                if (filePdf.Exists)
                {
                    log.escreveLog("inicio da assinatura do PDF: " + filePdf.FullName, configApp);

                    this.assinarArquivo(filePdf, releaseJucec, configApp);
                }
            }
            catch (Exception ex)
            {
                pdfisOk = false;

                log.escreveLog("Erro : " + ex.Message + Environment.NewLine + ex.StackTrace, configApp);

                filePdf.Delete();
            }

            return(pdfisOk);
        }
예제 #5
0
        public DirectoryInfo trataCaixa(CaixaProperties caixa, ConfiguracaoProperties configApp, ReleaseJucecProperties releaseJucec, string path, ProjetoProperties projetoObj, DocumentosProperties documento)
        {
            String        subStringCaixa = string.Empty;
            String        destino        = string.Empty;
            DirectoryInfo dirDestino;

            if (caixa.DsCaixa.Length >= 9)
            {
                subStringCaixa = caixa.DsCaixa.Substring(caixa.DsCaixa.Length - 9);
            }

            subStringCaixa = subStringCaixa.Replace(".", "");

            DateTime dataAtual = DateTime.Now;

            string dataAtualFormatada = dataAtual.ToString("yyyyMMdd");

            string pathDestino = string.Concat(new string[] { configApp.pastaPrincipal, "TCIReleaseJucec_2017\\", "Data_" + dataAtualFormatada, "\\", "Caixa_" + subStringCaixa, "\\", "Protocolo_" + Util.Util.ajustaDiretorio(releaseJucec.numProtocolo), "\\", "Processo_" + documento.idProcesso.ToString(), "\\", "Documento_" + documento.idDocumento.ToString() });

            if (path.Contains(";") && projetoObj.nmProjeto.ToUpper() != "JUCEC - CADASTRO SINCRONIZADO")
            {
                pathDestino = pathDestino.Replace("NUMERO_PROTOCOLO\\", "NIRE_ARQUIVAMENTO\\");
            }

            dirDestino = new DirectoryInfo(pathDestino);

            return(dirDestino);
        }
예제 #6
0
        public ReleaseJucecProperties getIndexerProcesso(DocumentosProperties documento, ProjetoProperties projetoObj, ProtocoloProperties protocolo, ConfiguracaoProperties configApp)
        {
            try
            {
                List <ValorIndiceProcessoProperties> listaIndexerProcesso = dao.indexerProcesso(documento);

                if (listaIndexerProcesso.Count > 0)
                {
                    releaseJucec = new ReleaseJucecProperties();

                    foreach (ValorIndiceProcessoProperties indexerProcesso in listaIndexerProcesso)
                    {
                        // siarco consulta para carregar os indices

                        if (indexerProcesso.indiceObject.NmIndiceSistema != null)
                        {
                            if (!(indexerProcesso.indiceObject.NmIndiceSistema == "NUMERO_PROTOCOLO"))
                            {
                                if (!(indexerProcesso.indiceObject.NmIndiceSistema == "NIRE"))
                                {
                                    if (!(indexerProcesso.indiceObject.NmIndiceSistema == "CNPJ"))
                                    {
                                        if (!(indexerProcesso.indiceObject.NmIndiceSistema == "NOME_EMPRESARIAL"))
                                        {
                                            if (!(indexerProcesso.indiceObject.NmIndiceSistema == "ATO"))
                                            {
                                                if (!(indexerProcesso.indiceObject.NmIndiceSistema == "EVENTO"))
                                                {
                                                    if (!(indexerProcesso.indiceObject.NmIndiceSistema == "DESCRICAO"))
                                                    {
                                                        if (!(indexerProcesso.indiceObject.NmIndiceSistema == "MUNICIPIO"))
                                                        {
                                                            if (indexerProcesso.indiceObject.NmIndiceSistema == "NUMERO_ARQUIVAMENTO")
                                                            {
                                                                if (!string.IsNullOrEmpty(indexerProcesso.NmValorIndiceProcesso.ToString().Trim()))
                                                                {
                                                                    releaseJucec.numArquivamento = indexerProcesso.NmValorIndiceProcesso;
                                                                }
                                                                else
                                                                {
                                                                    releaseJucec.numArquivamento = "000000";
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            releaseJucec.municipio = indexerProcesso.NmValorIndiceProcesso.ToString();
                                                        }
                                                    }
                                                    else
                                                    {
                                                        releaseJucec.descricao = indexerProcesso.NmValorIndiceProcesso.ToString();
                                                    }
                                                }
                                                else
                                                {
                                                    releaseJucec.evento = indexerProcesso.NmValorIndiceProcesso.ToString();
                                                }
                                            }
                                            else
                                            {
                                                releaseJucec.ato = indexerProcesso.NmValorIndiceProcesso.ToString();
                                            }
                                        }
                                        else
                                        {
                                            releaseJucec.nomeempresarial = indexerProcesso.NmValorIndiceProcesso.ToString();
                                        }
                                    }
                                    else
                                    {
                                        releaseJucec.cnpj = indexerProcesso.NmValorIndiceProcesso.ToString();
                                    }
                                }
                                else if (!string.IsNullOrEmpty(indexerProcesso.NmValorIndiceProcesso.ToString().Trim()))
                                {
                                    releaseJucec.nire = indexerProcesso.NmValorIndiceProcesso.ToString();
                                }
                            }
                            else
                            {
                                releaseJucec.numProtocolo = indexerProcesso.NmValorIndiceProcesso.ToString();
                            }
                        }
                    }
                }

                if (projetoObj.nmProjeto.ToUpper() != "JUCEC - CADASTRO SINCRONIZADO")
                {
                    if (projetoObj.nmProjeto != string.Empty)
                    {
                        releaseJucec.nireConcatnumArquivamento = releaseJucec.nireConcatnumArquivamento + "\\" + protocolo.dsProtocolo;
                    }
                    else if (releaseJucec.nire != string.Empty && releaseJucec.numArquivamento != string.Empty)
                    {
                        string concat = releaseJucec.nireConcatnumArquivamento;
                        releaseJucec.nireConcatnumArquivamento = string.Concat(new string[] { concat, "\\", releaseJucec.nire, "\";\"", releaseJucec.numArquivamento });
                    }
                    else
                    {
                        releaseJucec.nireConcatnumArquivamento += "\\000\";\"000000";
                    }
                }
                else
                {
                    string text3 = releaseJucec.nireConcatnumArquivamento;
                    releaseJucec.nireConcatnumArquivamento = string.Concat(new string[] { text3, "\\", releaseJucec.nire, "\";\"", releaseJucec.numArquivamento });
                }
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("Quantidade de Indices"))
                {
                    log.escreveLog(ex.Message + Environment.NewLine + ex.StackTrace, configApp);

                    return(null);
                }
                throw new Exception("Erro em obterNumProtocolo:" + ex.Message + "\n" + ex.StackTrace);
            }

            releaseJucec.nireConcatnumArquivamento = releaseJucec.nireConcatnumArquivamento.Replace("\\", "").Replace("/", "").Replace("-", "").Replace("_", "");

            return(releaseJucec);
        }
예제 #7
0
        public ReleaseJucecProperties getImagem(DocumentosProperties documento, ReleaseJucecProperties releaseJucec, ConfiguracaoProperties configApp, ParametroProdutoProjetoProperties parametroProdutoProjetoPropertie, DirectoryInfo pathDestino, ProjetoProperties projetoObj)
        {
            ImagemDao dao = new ImagemDaoImpl();

            try
            {
                List <ImagemProperties> listaImagems = dao.ImagemProcessa(documento);

                log.escreveLog("Quantidade de imagem para o documento " + documento.idDocumento.ToString() + listaImagems.Count.ToString(), configApp);

                if (listaImagems.Count > 0)
                {
                    //releaseJucec.penultimaImg = listaImagems[listaImagems.Count - 2].NmImagem;

                    //log.escreveLog("PenultimaImg " + releaseJucec.penultimaImg, configApp);

                    releaseJucec.flagSemImagem = true;
                }
                else
                {
                    //releaseJucec.penultimaImg = string.Empty;

                    //log.escreveLog("PenultimaImg " + releaseJucec.penultimaImg, configApp);

                    releaseJucec.flagSemImagem = true;
                }
                if (releaseJucec.flagSemImagem)
                {
                    releaseJucec.ultimaImg = listaImagems[listaImagems.Count - 1].NmImagem;

                    log.escreveLog("UltimaImg " + releaseJucec.ultimaImg, configApp);

                    FileInfo fileDestinoPdf = null;

                    foreach (ImagemProperties imagem in listaImagems)
                    {
                        log.escreveLog("lendo a imagem  id " + imagem.IdImagem + " Nome imagem " + imagem.NmImagem, configApp);

                        log.escreveLog("Caminho da imagem no banco " + imagem.NmCaminhoImagem, configApp);

                        FileInfo fileOrigem = new FileInfo(parametroProdutoProjetoPropertie.NmValorParametro + imagem.NmCaminhoImagem);

                        log.escreveLog("Origem da imagem .Tiff " + fileOrigem.FullName.ToString(), configApp);

                        log.escreveLog("Destino do .CSV, .PDF sem assinatura, .PDF assinado " + pathDestino.FullName, configApp);

                        fileDestinoPdf = new FileInfo(pathDestino.FullName + "\\");

                        log.escreveLog("Destino com PDF " + fileDestinoPdf.FullName.ToString(), configApp);

                        if (!fileDestinoPdf.Directory.Exists)
                        {
                            fileDestinoPdf.Directory.Create();
                        }
                        if (new FileInfo(fileOrigem.FullName).Exists)
                        {
                            if (projetoObj.nmProjeto.ToUpper() != Constantes.DESCRICSO_PROJETO)
                            {
                                fileOrigem.CopyTo(fileDestinoPdf.FullName, true);
                            }
                            else
                            {
                                fileDestinoPdf = new FileInfo(string.Concat(new object[] { fileDestinoPdf.FullName, "\\", releaseJucec.numProtocolo, "_.pdf" }));

                                this.processaImagem(fileOrigem, fileDestinoPdf, listaImagems.Count, configApp);

                                dao.logImagem(imagem, Constantes.ENVIADO_FTP);
                            }

                            log.escreveLog("A Imagem [" + fileOrigem.FullName + "] copiada para o diretorio " + fileDestinoPdf.FullName, configApp);
                        }
                        else
                        {
                            log.escreveLog("A Imagem [" + fileOrigem.FullName + "] não existe no diretorio", configApp);
                        }
                    }
                }

                // processo
                //dao.atualizaStatus(imagem, Constantes.PDF_GERADO);

                releaseJucec.flag = true;
            }
            catch (Exception ex)
            {
                log.escreveLog("Erro ao tentar processaImagem:" + ex.Message + "\n" + ex.StackTrace, configApp);
                throw new Exception(ex.Message + "\n" + ex.StackTrace);
            }

            return(releaseJucec);
        }
예제 #8
0
        private void assinarArquivo(FileInfo arquivoAssinar, ReleaseJucecProperties releaseJucec, ConfiguracaoProperties configApp)
        {
            clsPDF clsPDF            = new clsPDF();
            string xml               = string.Empty;
            string idCertificadoNOde = string.Empty;

            try
            {
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.LoadXml(new clsCertificados
                {
                    Licenca = this.pegaCodLicenca()
                }.ListarCertificadosPessoais());

                if (string.IsNullOrEmpty(configApp.NomeCertificado))
                {
                    throw new Exception("Tag [nomeCertificado] não configurada no arquivo .config.");
                }

                log.escreveLog("Buscando Certificado" + "Nome do Certificado " + configApp.NomeCertificado, configApp);

                foreach (XmlNode xmlNode in xmlDocument.SelectNodes("//Certificado"))
                {
                    log.escreveLog("XML Node: " + xmlNode.InnerText.ToUpper(), configApp);

                    if (xmlNode.InnerText.ToUpper().Contains(configApp.NomeCertificado.ToUpper()))
                    {
                        idCertificadoNOde = xmlNode.SelectSingleNode("IDCertificado").FirstChild.InnerText;

                        log.escreveLog(string.Format("Id do Certificado {0} encontrado para {1}:...", configApp.NomeCertificado.ToString(), idCertificadoNOde), configApp);

                        break;
                    }
                }

                if (string.IsNullOrEmpty(idCertificadoNOde))
                {
                    throw new Exception(string.Format("Certificado não encontrado nesta maquina [{0}]!.{1}É preciso existir um certificado válido para [{2}]", Environment.MachineName, Environment.NewLine, idCertificadoNOde));
                }

                clsPDF.Licenca = this.pegaCodLicenca();

                xml = clsPDF.Assinar(this.carregaXML(arquivoAssinar, idCertificadoNOde));

                log.escreveLog("Aviso: " + xml.ToString(), configApp);
                log.escreveLog("Aviso: Caminho: " + arquivoAssinar.FullName, configApp);

                xmlDocument.LoadXml(xml);

                string xmlErro = xmlDocument.SelectSingleNode("//DeskSignerSDKPDF/CodErro").FirstChild.InnerText;

                if (xmlErro != "0")
                {
                    log.escreveLog("Erro ao assinar o Arquivo " + this.traducaoErro(xmlErro).ToString(), configApp);
                }
            }
            catch (Exception ex)
            {
                log.escreveLog("Erro ao assinar o Arquivo " + ex.ToString(), configApp);
                throw ex;
            }
            finally
            {
                clsPDF = null;
            }
        }
예제 #9
0
        public string montagemXML(CaixaProperties caixa, DocumentosProperties documento, ReleaseJucecProperties releaseJucec, ProtocoloProperties protocolo)
        {
            StringBuilder stringBuilder = new StringBuilder();

            string arg_0B_0 = string.Empty;
            string arg_11_0 = string.Empty;
            string arg_17_0 = string.Empty;
            string arg_1D_0 = string.Empty;
            string arg_23_0 = string.Empty;
            string arg_29_0 = string.Empty;
            string arg_2F_0 = string.Empty;

            stringBuilder.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            stringBuilder.AppendLine("<ARQUIVOINDEX>");
            stringBuilder.AppendLine("\t<CAIXA>{0}</CAIXA>");
            stringBuilder.AppendLine("\t<PROTOCOLO>{1}</PROTOCOLO>");
            stringBuilder.AppendLine("\t<NR_PROTOCOLO>{2}</NR_PROTOCOLO>");
            stringBuilder.AppendLine("\t<NR_NIRE>{3}</NR_NIRE>");
            stringBuilder.AppendLine("\t<NR_ARQUIVAMENTO>{4}</NR_ARQUIVAMENTO>");
            stringBuilder.AppendLine("\t<DATA_GERACAO>{5}</DATA_GERACAO>");
            stringBuilder.AppendLine("\t<IMAGEM>{6}</IMAGEM>");
            stringBuilder.AppendLine("</ARQUIVOINDEX>");

            return(string.Format(stringBuilder.ToString(), new object[]
            {
                caixa.DsCaixa,
                protocolo.dsProtocolo,
                releaseJucec.numProtocolo.PadLeft(9, '0'),
                releaseJucec.nire,
                releaseJucec.numArquivamento,
                DateTime.Now.ToString("dd/MM/yyyy"),
                documento.idProcesso + ".pdf"
            }));

            return(null);
        }
예제 #10
0
        public void processamento()
        {
            log.escreveLog("Inicio ", configApp);

            while (!Constantes.THREAD_PARADA_SOLICITADO)
            {
                try
                {
                    RegrasProjeto regraProjeto = new RegrasProjeto();

                    RegrasProtocolo regraProtocolo = new RegrasProtocolo();

                    // carrega as informaçoes do projeto
                    projetoObj = regraProjeto.getProjeto(configApp);

                    // Busca protocolo liberados
                    List <ProtocoloProperties> listaProtocolosLiberado = regraProtocolo.getProtocoloProtocolosLiberado(configApp);

                    log.escreveLog("Quantidade de protocolo disponível " + listaProtocolosLiberado.Count, configApp);

                    foreach (ProtocoloProperties protocolo in listaProtocolosLiberado)
                    {
                        RegrasDocumentos regrasDocumentos = new RegrasDocumentos();

                        // lista de documentos liberados
                        List <DocumentosProperties> listaDocumentosLiberados = regrasDocumentos.getDocumentosLiberado(protocolo);

                        log.escreveLog("Quantidade de documentos disponível " + listaProtocolosLiberado.Count, configApp);

                        foreach (DocumentosProperties documento in listaDocumentosLiberados)
                        {
                            log.escreveLog("Lendo o documento " + documento.idDocumento, configApp);

                            RegrasIndexer regrasIndexer = new RegrasIndexer();

                            // Recupera os indices e valorIndice
                            ReleaseJucecProperties releaseJucec = regrasIndexer.getIndexerProcesso(documento, projetoObj, protocolo, configApp);

                            //Concatena Nire e NumeroArquivamento
                            NireNunArquivamento = regrasIndexer.concatNire_NunArquivamento(releaseJucec, projetoObj);

                            if (NireNunArquivamento != null)
                            {
                                RegrasCaixa  regrasCaixa  = new RegrasCaixa();
                                RegrasImagem regrasImagem = new RegrasImagem();
                                RegrasParametroProdutoProjeto regrasParametroProdutoProjeto = new RegrasParametroProdutoProjeto();
                                Servicos servicos = new Servicos();

                                // Busca caixa com base no numero arquivamento
                                CaixaProperties caixa = regrasCaixa.getCaixaProcesso(documento);
                                log.escreveLog("Pegou a caixa " + caixa.IdCaixa, configApp);

                                // caminho onde será depositado os arquivos .pdf
                                DirectoryInfo pathDestino = regrasCaixa.trataCaixa(caixa, configApp, releaseJucec, NireNunArquivamento, projetoObj, documento);

                                // retorna um projeto produto
                                ParametroProdutoProjetoProperties parametroProdutoProjetoProperties = regrasParametroProdutoProjeto.getParametroProdutoProjeto(projetoObj, configApp);

                                // pega todas as imagens referente ao  idDocumento passado como parametro e diferente de excluida.
                                // busca a origem do arquivo .tiff
                                // cria o _.pdf no destino passado como parametro
                                releaseJucec = regrasImagem.getImagem(documento, releaseJucec, configApp, parametroProdutoProjetoProperties, pathDestino, projetoObj);

                                documentoSemTiff = releaseJucec.flagSemImagem;

                                if (documentoSemTiff)
                                {
                                    if (releaseJucec.flag)
                                    {
                                        // Gera o arquivo csv no mesmo diretorio do PDF
                                        log.escreveLog("Gerando arquivo .CSV ", configApp);
                                        servicos.geraArqvuivoCSV(pathDestino.ToString() + "\\" + documento.idProcesso.ToString() + ".csv", releaseJucec, pathDestino, caixa);

                                        log.escreveLog("Gerando arquivo .CSV para o carga generica ", configApp);
                                        // Enviando cvs para o sistema carga Generica
                                        servicos.geraArqvuivoCSV(ConfigurationSettings.AppSettings["diretorioCsvContentProcessar"].ToString() + "\\" + documento.idProcesso.ToString() + ".csv", releaseJucec, pathDestino, caixa);
                                    }
                                    else
                                    {
                                        log.escreveLog("Quantidade de Indices [0] no Processo [" + documento.idProcesso + "] não é o mesmo na estrutura do arquivo", configApp);
                                    }

                                    log.escreveLog("Pesquisando as imagens no diretorio para assinatura do Protocolo [" + protocolo.dsProtocolo + "] na estrutura do arquivo", configApp);

                                    // retorna uma lista de pdf que termine com _.pdf
                                    FileInfo[] filesPdf = servicos.getPdfs(configApp, caixa, pathDestino);

                                    log.escreveLog("Foram encontrados .Pdf's com _.PDF [" + filesPdf.Length + "]", configApp);

                                    // move os pdfs sem assinatura para o diretorio informado  na tag do app.config  <caminhoPdfSemAssinatura>
                                    servicos.moverPdfSemAssinaturaSRM(filesPdf[0], releaseJucec, documento, configApp);

                                    // serviço que assina os pdfs de acordo com a certificado da maquina
                                    pdfisOk = servicos.arquivoParaAssinar(filesPdf[0], releaseJucec, configApp);
                                }
                                if (documentoSemTiff)
                                {
                                    // documento log e status
                                    regrasDocumentos = new RegrasDocumentos();
                                    regrasDocumentos.LogDocumento(documento, Constantes.ENVIADO_FTP);
                                    regrasDocumentos.atualizaSatusDocumento(documento, Constantes.ENVIADO_FTP);
                                }
                                else
                                {
                                    // documento log e status
                                    regrasDocumentos = new RegrasDocumentos();
                                    regrasDocumentos.LogDocumento(documento, Constantes.DOCUMENTO_SEM_TIFF);
                                    regrasDocumentos.atualizaSatusDocumento(documento, Constantes.DOCUMENTO_SEM_TIFF);
                                }
                            }
                        }
                        // processo e status
                        regrasProtocolo = new RegrasProtocolo();
                        regrasProtocolo.atualizaProcesso(protocolo, Constantes.ENVIADO_FTP);
                        regrasProtocolo.logProcesso(protocolo, Constantes.ENVIADO_FTP);
                    }
                }
                catch (Exception ex)
                {
                    log.escreveLog("\n Erro: " + ex.Message + "\n" + ex.ToString() + "\n", configApp);

                    // MessageBox.Show(ex.StackTrace);
                }
            }
        }