Example #1
0
        public CaixaProperties caixaProcesso(DocumentosProperties documento)
        {
            SqlConnection   con   = ConnectionFactory.ConnectionFactory.getConnection();
            CaixaProperties caixa = new CaixaProperties();

            try
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("select b.IdCaixa,b.dscaixa,b.IdStatus from tb_processo a with(nolock)");
                sb.AppendLine("inner join tb_caixa b with(nolock) on a.idcaixa = b.idcaixa and a.idprocesso = " + documento.idProcesso);

                con.Open();
                SqlCommand cmd = new SqlCommand(sb.ToString(), con);
                cmd.CommandType    = CommandType.Text;
                cmd.CommandTimeout = 120;
                IDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    caixa.IdCaixa  = reader.GetInt32(reader.GetOrdinal("IdCaixa"));
                    caixa.DsCaixa  = reader.GetString(reader.GetOrdinal("dscaixa"));
                    caixa.IdStatus = reader.GetInt32(reader.GetOrdinal("IdStatus"));
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Caixa não encontrada para o processo " + documento.idProcesso + ex.ToString());
            }
            finally
            {
                ConnectionFactory.ConnectionFactory.fechaConexão(con);
            }
            return(caixa);
        }
Example #2
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);
        }
Example #3
0
        public FileInfo[] getPdfs(ConfiguracaoProperties configApp, CaixaProperties caixa, DirectoryInfo pathDestino)
        {
            FileInfo[] filesPdf = new DirectoryInfo(pathDestino.FullName).GetFiles("*_.*pdf", SearchOption.AllDirectories);

            log.escreveLog("Arquivos para assinar no diretorio: ", configApp);

            return(filesPdf);
        }
Example #4
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);
        }
Example #5
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();
                }
            }
        }
Example #6
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);
                }
            }
        }