From 92889f4dc3f0ea6477b5313b37afe9b219512d45 Mon Sep 17 00:00:00 2001 From: Nei Jobson Date: Sat, 12 May 2018 11:35:41 -0300 Subject: [PATCH] Versão pré 3.0.6 do Módulo de Pesquisa Pública, para, caso tenha o Módulo de Pesquisa Pública instalado na versão igual ou superior a 2.0.0, proteger documento público relacionado com Intimaçao ainda não cumprida --- README.md | 32 +++++++++++++++++++------------- sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php | 34 ++++++++++------------------------ sei/web/modulos/pesquisa/md_pesq_documento_consulta_externa.php | 36 ++++++++++++++++++------------------ sei/web/modulos/pesquisa/md_pesq_processo_exibir.php | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------ sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php | 60 ++++++++++++++++++++++++++++++++++++++---------------------- 5 files changed, 147 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index fb7ad99..b197982 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,17 @@ -# Módulo de Pesquisa Pública +# Módulo de Pesquisa Pública ## Requisitos: -- SEI 3.0.0 instalado ou atualizado (verificar valor da constante de versão do SEI no arquivo /sei/web/SEI.php). -- Instalar nas máquinas que rodam o SEI a biblioteca php-mcrypt. -- Antes de executar os scripts de instalação (itens 4 e 5 abaixo), o usuário de acesso aos bancos de dados do SEI e do SIP, constante nos arquivos ConfiguracaoSEI.php e ConfiguracaoSip.php, deverá ter permissão de acesso total ao banco de dados, permitindo, por exemplo, criação e exclusão de tabelas. +- SEI 3.0.10 instalado ou atualizado (verificar valor da constante de versão do SEI no arquivo /sei/web/SEI.php). +- Instalar nas máquinas que rodam o SEI a biblioteca "php-mcrypt". +- Antes de executar os scripts de instalação (itens 4 e 5 abaixo), o usuário de acesso aos bancos de dados do SEI e do SIP, constante nos arquivos ConfiguracaoSEI.php e ConfiguracaoSip.php, deverá ter permissão de acesso total ao banco de dados, permitindo, por exemplo, criação e exclusão de tabelas. -## Procedimentos para Instalação: +## Procedimentos para Instalação: 1. Fazer backup dos bancos de dados do SEI e do SIP. -2. Carregar no servidor os arquivos do módulo localizados na pasta "/sei/web/modulos/pesquisa" e os scripts de instalação/atualização "/sei/scripts/sei_instalar_modulo_pesquisa.php" e "/sip/scripts/sip_instalar_modulo_pesquisa.php". +2. Carregar no servidor os arquivos do módulo localizados na pasta "/sei/web/modulos/pesquisa" e os scripts de instalação/atualização "/sei/scripts/sei_instalar_modulo_pesquisa.php" e "/sip/scripts/sip_instalar_modulo_pesquisa.php". -3. Editar o arquivo "/sei/config/ConfiguracaoSEI.php", tomando o cuidado de usar editor que não altere o charset do arquivo, para adicionar a referência à classe de integração do módulo e seu caminho relativo dentro da pasta "/sei/web/modulos" na array 'Modulos' da chave 'SEI': +3. Editar o arquivo "/sei/config/ConfiguracaoSEI.php", tomando o cuidado de usar editor que não altere o charset do arquivo, para adicionar a referência à classe de integração do módulo e seu caminho relativo dentro da pasta "/sei/web/modulos" na array 'Modulos' da chave 'SEI': 'SEI' => array( 'URL' => 'http://[Servidor_PHP]/sei', @@ -20,18 +20,24 @@ 'Modulos' => array('PesquisaIntegracao' => 'pesquisa',) ), -4. Rodar o script de banco "/sei/scripts/sei_instalar_modulo_pesquisa.php" em linha de comando no servidor do SEI, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: +4. Rodar o script de banco "/sei/scripts/sei_instalar_modulo_pesquisa.php" em linha de comando no servidor do SEI, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: /usr/bin/php -c /etc/php.ini /var/www/html/sei/scripts/sei_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sei.log -5. Rodar o script de banco "/sip/scripts/sip_instalar_modulo_pesquisa.php" em linha de comando no servidor do SIP, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: +5. Rodar o script de banco "/sip/scripts/sip_instalar_modulo_pesquisa.php" em linha de comando no servidor do SIP, verificando se não houve erro em sua execução, em que ao final do log deverá ser informado "FIM". Exemplo de comando de execução: /usr/bin/php -c /etc/php.ini /var/www/html/sip/scripts/sip_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sip.log -6. Após a execução com sucesso, com um usuário com permissão de Administrador no SEI, abra o menu de configuração do módulo no SEI (Administração > Pesquisa Pública > Parâmetros Pesquisa Pública) e verifique as opções de configuração da Pesquisa Pública. +6. Após a execução com sucesso dos dois scripts de banco acima, com um usuário com permissão de Administrador no SEI, abra o menu de configuração do módulo no SEI (Administração > Pesquisa Pública > Parâmetros Pesquisa Pública) e verifique as opções de configuração. -7. Após a configuração, a página de Pesquisa Pública estará acessível pelo endereço a seguir: +7. Após a configuração, a página de Pesquisa Pública estará acessível pelo endereço a seguir: http://[Servidor_PHP]/sei/modulos/pesquisa/md_pesq_processo_pesquisar.php?acao_externa=protocolo_pesquisar&acao_origem_externa=protocolo_pesquisar&id_orgao_acesso_externo=0 -8. Em caso de erro durante a execução do script verificar (lendo as mensagens de erro e no SEI em Infra > Log e no SIP em Infra > Log) se a causa é algum problema na infra-estrutura local. Neste caso, após a correção, restaurar o backup do banco de dados e executar novamente os scripts indicados nos itens 4 e 5 acima. - - Caso não seja possível identificar a causa, abrir Issue no projeto do módulo no Gitlab do Portal do SPB: https://softwarepublico.gov.br/gitlab/cade/mod-sei-pesquisa \ No newline at end of file +8. Em caso de erro durante a execução dos dois script de banco verificar (lendo as mensagens de erro,no SEI em Infra > Log e no SIP em Infra > Log) se a causa foi algum problema na infra-estrutura local. Neste caso, após a correção, restaurar o backup do banco de dados e executar novamente os scripts indicados nos itens 4 e 5 acima. + - Caso não seja possível identificar a causa, abrir Issue no projeto do módulo no Gitlab do Portal do SPB: https://softwarepublico.gov.br/gitlab/cade/mod-sei-pesquisa + +## Orientações Negociais: + +1. A partir da versão 3.0.6 do Módulo de Pesquisa Pública existe integração com o Módulo de Peticionamento e Intimação Eletrônicos, em que a Pesquisa Pública percebe se existe o mencionado módulo na versão 2.0.0 ou superior instalado no SEI e, com isso, tem comportamento próprio na tela de acesso ao processo pela Pesquisa Pública para **proteger o acesso a documento público que esteja relacionado com Intimação Eletrônica ainda não cumprida**. + - Este comportamento visa a proteger o conhecimento do teor do documento por meios diversos do Cumprimento da Intimação Eletrônica. + - Após o Cumprimento da Intimação Eletrônica pelos destinatários, por ser documento público, o acesso a seu teor por meio da Pesquisa Pública passa a estar liberado. \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php b/sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php index 05c08a9..bd2a1ca 100644 --- a/sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php +++ b/sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php @@ -38,6 +38,7 @@ class MdPesqBuscaProtocoloExterno { public static function executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, $numMaxResultados, $strParticipanteSolr, $md5Captcha = null) { //carrega configurações pesquisa + $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); $objParametroPesquisaDTO->retStrNome(); $objParametroPesquisaDTO->retStrValor(); @@ -55,10 +56,8 @@ class MdPesqBuscaProtocoloExterno { $parametros = new stdClass(); $filtro = new stdClass(); - $partialfields = ''; - // Parametros peticionamento elerônico - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); + $partialfields = ''; //die($_REQUEST["partialfields"]); @@ -424,23 +423,14 @@ class MdPesqBuscaProtocoloExterno { die; } - // Protege Intimação eletônica - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objProtocoloDTO->getDblIdProtocolo())) == false){ - $titulo .= " "; - $titulo .= $dados["identificacao_protocolo"]; - $snippet = 'Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida'; - - - }else{ - $titulo .= " "; - $parametrosCriptografadosDocumentos = MdPesqCriptografia::criptografa('acao_externa=md_pesq_documento_exibir&id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento()); - $endereco = 'md_pesq_documento_consulta_externa.php?'.$parametrosCriptografadosDocumentos; - $titulo .= "(formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\""; - $titulo .= " class=\"protocoloNormal\""; - $titulo .= ">" . $dados["identificacao_protocolo"] . ")"; - } - + $titulo .= " "; + $parametrosCriptografadosDocumentos = MdPesqCriptografia::criptografa('acao_externa=md_pesq_documento_exibir&id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento()); + $endereco = 'md_pesq_documento_consulta_externa.php?'.$parametrosCriptografadosDocumentos; + $titulo .= "(formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\""; + $titulo .= " class=\"protocoloNormal\""; + $titulo .= ">" . $dados["identificacao_protocolo"] . ")"; + + //$tituloProtocolo = "formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\" class=\"protocoloNormal\" >".$dados["protocolo_documento_formatado"]. ""; } @@ -500,10 +490,6 @@ class MdPesqBuscaProtocoloExterno { } - - - - // Protege contra a não idexação no solr quando o processo passa de público para restrito. if(($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && !$bolPesquisaProcessoRestrito) || ($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() == ProtocoloRN::$NA_SIGILOSO)){ diff --git a/sei/web/modulos/pesquisa/md_pesq_documento_consulta_externa.php b/sei/web/modulos/pesquisa/md_pesq_documento_consulta_externa.php index 4a885fd..146f56d 100644 --- a/sei/web/modulos/pesquisa/md_pesq_documento_consulta_externa.php +++ b/sei/web/modulos/pesquisa/md_pesq_documento_consulta_externa.php @@ -21,11 +21,13 @@ try { //InfraDebug::getInstance()->setBolDebugInfra(false); //InfraDebug::getInstance()->limpar(); ////////////////////////////////////////////////////////////////////////////// - - - MdPesqConverteURI::converterURI(); - MdPesqPesquisaUtil::valiadarLink(); - + MdPesqConverteURI::converterURI(); + MdPesqPesquisaUtil::valiadarLink(); +// if (isset($_GET['id_acesso_externo'])){ +// SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink(); +// }else{ +// // SessaoSEIExterna::getInstance()->validarLink(); +// } $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); $objParametroPesquisaDTO->retStrNome(); @@ -39,9 +41,6 @@ try { $bolListaDocumentoProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; - // Parametros peticionamento elerônico - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); - $objDocumentoDTO = new DocumentoDTO(); $objDocumentoDTO->retDblIdDocumento(); $objDocumentoDTO->retDblIdProcedimento(); @@ -104,17 +103,18 @@ try { } } - - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objDocumentoDTO->getDblIdDocumento())) == false){ - - die("Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida"); - - } - - // Exibe apenas documentos de processos públicos. - + //Protege acesso à documento público de intimação eletrônica + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); + if( !is_null($objInfraParametroDTO) ){ + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true)) ){ + die("Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida"); + } + } + + // Exibe apenas documentos de processos públicos. + //Carregar dados do cabeçalho $objProcedimentoDTO = new ProcedimentoDTO(); $objProcedimentoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); diff --git a/sei/web/modulos/pesquisa/md_pesq_processo_exibir.php b/sei/web/modulos/pesquisa/md_pesq_processo_exibir.php index b42c80a..18eea87 100644 --- a/sei/web/modulos/pesquisa/md_pesq_processo_exibir.php +++ b/sei/web/modulos/pesquisa/md_pesq_processo_exibir.php @@ -36,10 +36,6 @@ try { $objParametroPesquisaRN = new MdPesqParametroPesquisaRN(); $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); - - // Parametros peticionamento elerônico - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); - $bolPesquisaProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_PROCESSO_RESTRITO] == 'S' ? true : false; $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; @@ -321,21 +317,25 @@ try { $objDocumentoDTO = $objProtocoloPesquisaPublicaDTO->getObjDocumentoDTO(); $urlCripografadaDocumeto = MdPesqCriptografia::criptografa('acao_externa=documento_exibir&id_documento='.$objDocumentoDTO->getDblIdDocumento().'&id_orgao_acesso_externo=0'); $strLinkDocumento = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink('md_pesq_documento_consulta_externa.php?'.$urlCripografadaDocumeto)); - - //Protege acesso à documento público de intimação eletrônica - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); - $bolValidaIntimacaoEletronica = false; - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objDocumentoDTO->getDblIdDocumento())) == false){ - $bolValidaIntimacaoEletronica = true; - } - - $strResultado .= ''; - + + //Protege acesso à documento público de intimação eletrônica + $bolValidaIntimacaoEletronica = true; + + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); + if( !is_null($objInfraParametroDTO) ){ + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true) ) ){ + $bolValidaIntimacaoEletronica = false; + } + } + + $strResultado .= ''; + //Cria checkbox para gerar PDF, verifica se o Processo é público e o Acesso Local do Protocolo é Público - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO){ - if($objDocumentoRN->verificarSelecaoGeracaoPdf($objDocumentoDTO) && !$bolValidaIntimacaoEletronica){ - $strResultado .= ''.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).''; - }else{ + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO){ + if($objDocumentoRN->verificarSelecaoGeracaoPdf($objDocumentoDTO) && $bolValidaIntimacaoEletronica){ + $strResultado .= ''.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).''; + }else{ $strResultado .= ' '; } }else{ @@ -344,19 +344,18 @@ try { //Exibe link de documentos com nivel de acesso local Público de processo público - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ - - if($bolValidaIntimacaoEletronica){ - $strResultado .= ''.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().''; - $strResultado .= ''; - $strResultado .= ''; - }else{ - $strResultado .= ''.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().''; - } - - - }else{ - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ + + if($bolValidaIntimacaoEletronica){ + $strResultado .= ''.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().''; + }else{ + $strResultado .= ''.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().''; + $strResultado .= ''; + $strResultado .= ''; + } + + }else{ + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ //necessario para retornar id hipotese legal do documento $strHipoteseLegalDocumento = ''; @@ -575,10 +574,9 @@ try { PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.'); }else { - - $objDocumentoRN = new DocumentoRN(); - + $objDocumentoRN = new DocumentoRN(); + $parArrObjDocumentoDTO = InfraArray::converterArrInfraDTO(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()),'IdDocumento'); $objDocumentoDTO = new DocumentoDTO(); $objDocumentoDTO->retDblIdDocumento(); @@ -586,17 +584,29 @@ try { $objDocumentoDTO->retDblIdProcedimento(); $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo(); $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo(); - $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); - - foreach ($arrObjDocumentoDTO as $objDocumentoDTO){ - + $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); + + $arrSelecionados = PaginaSEIExterna::getInstance()->getArrStrItensSelecionados(); + + foreach ($arrObjDocumentoDTO as $objDocumentoDTO){ + //Alterardo para atender o pedido da anatel para gerar pdf de documentos de nivel de acesso local = Público e de Procedimentos Públicos mesmo se o nivel global for restrito if($bolListaDocumentoProcessoRestrito){ if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){ die ("Erro ao Gerar Pdf"); } - }else if($bolListaDocumentoProcessoPublico){ - if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_PUBLICO){ + + //Protege acesso à documento público de intimação eletrônica + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); + if( !is_null($objInfraParametroDTO) ){ + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true) ) ){ + $idx_documento = array_search($objDocumentoDTO->getDblIdDocumento(), $arrSelecionados); + unset($arrSelecionados[$idx_documento]); + } + } + }else if($bolListaDocumentoProcessoPublico){ + if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_PUBLICO){ die ("Erro ao Gerar Pdf"); } }else{ @@ -604,13 +614,18 @@ try { } - } - - - $objDocumentoRN = new DocumentoRN(); - $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados())); - - $bolGeracaoOK = true; + } + + if (count($arrSelecionados)==0){ + die ("Sem documento a gerar"); + } + + $arrSelecionados = array_values($arrSelecionados); + + $objDocumentoRN = new DocumentoRN(); + $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',$arrSelecionados)); + + $bolGeracaoOK = true; } @@ -778,7 +793,6 @@ window.onclick = function(event) { ?> function gerarPdf() { - if (document.getElementById('hdnInfraItensSelecionados').value==''){ alert('Nenhum documento selecionado.'); return; diff --git a/sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php b/sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php index 70dae50..491eb13 100644 --- a/sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php +++ b/sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php @@ -36,12 +36,12 @@ class MdPesqParametroPesquisaRN extends InfraRN { protected function consultarConectado(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO){ try { - //Valida Permissao - SessaoSEI::getInstance()->validarPermissao('md_pesq_parametro_consultar',__METHOD__,$objParametroPesquisaDTO); - - //Regras de Negocio - //$objInfraException = new InfraException(); - + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_pesq_parametro_consultar',__METHOD__,$objParametroPesquisaDTO); + + //Regras de Negocio + //$objInfraException = new InfraException(); + //$objInfraException->lancarValidacoes(); $objParametroPesquisaBD = new MdPesqParametroPesquisaBD($this->getObjInfraIBanco()); @@ -122,24 +122,40 @@ class MdPesqParametroPesquisaRN extends InfraRN { throw new InfraException('Erro listando Parâmetro da Pesquisas.',$e); } } - - - protected function consultarVersaoPeticionamentoConectado(){ - - $objInfraParametroDTO = new InfraParametroDTO(); - $objInfraParametroDTO->setStrNome('VERSAO_MODULO_PETICIONAMENTO'); - $objInfraParametroDTO->retStrValor(); - - $objInfraParametroBD = new InfraParametroBD($this->getObjInfraIBanco()); - $objInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); - - return $objInfraParametroDTO; + + + protected function consultarVersaoPeticionamentoConectado($versao=null){ + $arrModulos = ConfiguracaoSEI::getInstance()->getValor('SEI','Modulos'); + if(is_array($arrModulos) && array_key_exists('PeticionamentoIntegracao', $arrModulos)){ + $objInfraParametroDTO = new InfraParametroDTO(); + $objInfraParametroDTO->setStrNome('VERSAO_MODULO_PETICIONAMENTO'); + $objInfraParametroDTO->retStrValor(); + + $objInfraParametroBD = new InfraParametroBD($this->getObjInfraIBanco()); + $arrObjInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); + + //versão do parametro é igual ou maior que a enviada + if (!is_null($versao)){ + if (count($arrObjInfraParametroDTO)>0){ + $arr_versao_parametro = explode('.',$arrObjInfraParametroDTO->getStrValor()); + $arr_versao = explode('.',$versao); + for ($i=0;$i intval($arr_versao[$i]) ){ + return $arrObjInfraParametroDTO; + } + } + } + } + } + return $arrObjInfraParametroDTO; + }else{ + return null; + } } - - - - private function validarStrNome(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO, InfraException $objInfraException){ if (InfraString::isBolVazia($objParametroPesquisaDTO->getStrNome())){ $objInfraException->adicionarValidacao('Nome não informado.'); -- libgit2 0.21.2