Commit 92889f4dc3f0ea6477b5313b37afe9b219512d45
1 parent
24f39a27
Exists in
master
and in
1 other branch
Versão pré 3.0.6 do Módulo de Pesquisa Pública, para, caso tenha o Módulo de Pes…
…quisa 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
Showing
5 changed files
with
147 additions
and
125 deletions
Show diff stats
README.md
1 | -# Módulo de Pesquisa Pública | |
1 | +# Módulo de Pesquisa Pública | |
2 | 2 | |
3 | 3 | ## Requisitos: |
4 | -- SEI 3.0.0 instalado ou atualizado (verificar valor da constante de versão do SEI no arquivo /sei/web/SEI.php). | |
5 | -- Instalar nas máquinas que rodam o SEI a biblioteca php-mcrypt. | |
6 | -- 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. | |
4 | +- SEI 3.0.10 instalado ou atualizado (verificar valor da constante de versão do SEI no arquivo /sei/web/SEI.php). | |
5 | +- Instalar nas máquinas que rodam o SEI a biblioteca "php-mcrypt". | |
6 | +- 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. | |
7 | 7 | |
8 | -## Procedimentos para Instalação: | |
8 | +## Procedimentos para Instalação: | |
9 | 9 | |
10 | 10 | 1. Fazer backup dos bancos de dados do SEI e do SIP. |
11 | 11 | |
12 | -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". | |
12 | +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". | |
13 | 13 | |
14 | -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': | |
14 | +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': | |
15 | 15 | |
16 | 16 | 'SEI' => array( |
17 | 17 | 'URL' => 'http://[Servidor_PHP]/sei', |
... | ... | @@ -20,18 +20,24 @@ |
20 | 20 | 'Modulos' => array('PesquisaIntegracao' => 'pesquisa',) |
21 | 21 | ), |
22 | 22 | |
23 | -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: | |
23 | +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: | |
24 | 24 | |
25 | 25 | /usr/bin/php -c /etc/php.ini /var/www/html/sei/scripts/sei_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sei.log |
26 | 26 | |
27 | -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: | |
27 | +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: | |
28 | 28 | |
29 | 29 | /usr/bin/php -c /etc/php.ini /var/www/html/sip/scripts/sip_instalar_modulo_pesquisa.php > atualizacao_modulo_pesquisa_sip.log |
30 | 30 | |
31 | -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. | |
31 | +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. | |
32 | 32 | |
33 | -7. Após a configuração, a página de Pesquisa Pública estará acessível pelo endereço a seguir: | |
33 | +7. Após a configuração, a página de Pesquisa Pública estará acessÃvel pelo endereço a seguir: | |
34 | 34 | 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 |
35 | 35 | |
36 | -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. | |
37 | - - 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 | |
38 | 36 | \ No newline at end of file |
37 | +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. | |
38 | + - 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 | |
39 | + | |
40 | +## Orientações Negociais: | |
41 | + | |
42 | +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**. | |
43 | + - Este comportamento visa a proteger o conhecimento do teor do documento por meios diversos do Cumprimento da Intimação Eletrônica. | |
44 | + - 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. | |
39 | 45 | \ No newline at end of file | ... | ... |
sei/web/modulos/pesquisa/MdPesqBuscaProtocoloExterno.php
... | ... | @@ -38,6 +38,7 @@ class MdPesqBuscaProtocoloExterno { |
38 | 38 | public static function executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, $numMaxResultados, $strParticipanteSolr, $md5Captcha = null) { |
39 | 39 | |
40 | 40 | //carrega configurações pesquisa |
41 | + | |
41 | 42 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); |
42 | 43 | $objParametroPesquisaDTO->retStrNome(); |
43 | 44 | $objParametroPesquisaDTO->retStrValor(); |
... | ... | @@ -55,10 +56,8 @@ class MdPesqBuscaProtocoloExterno { |
55 | 56 | |
56 | 57 | $parametros = new stdClass(); |
57 | 58 | $filtro = new stdClass(); |
58 | - $partialfields = ''; | |
59 | 59 | |
60 | - // Parametros peticionamento elerônico | |
61 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | |
60 | + $partialfields = ''; | |
62 | 61 | |
63 | 62 | //die($_REQUEST["partialfields"]); |
64 | 63 | |
... | ... | @@ -424,23 +423,14 @@ class MdPesqBuscaProtocoloExterno { |
424 | 423 | die; |
425 | 424 | } |
426 | 425 | |
427 | - // Protege Intimação eletônica | |
428 | - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
429 | - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objProtocoloDTO->getDblIdProtocolo())) == false){ | |
430 | - $titulo .= " "; | |
431 | - $titulo .= $dados["identificacao_protocolo"]; | |
432 | - $snippet = 'Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida'; | |
433 | - | |
434 | - | |
435 | - }else{ | |
436 | - $titulo .= " "; | |
437 | - $parametrosCriptografadosDocumentos = MdPesqCriptografia::criptografa('acao_externa=md_pesq_documento_exibir&id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento()); | |
438 | - $endereco = 'md_pesq_documento_consulta_externa.php?'.$parametrosCriptografadosDocumentos; | |
439 | - $titulo .= "(<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\""; | |
440 | - $titulo .= " class=\"protocoloNormal\""; | |
441 | - $titulo .= ">" . $dados["identificacao_protocolo"] . "</a>)"; | |
442 | - } | |
443 | - | |
426 | + $titulo .= " "; | |
427 | + $parametrosCriptografadosDocumentos = MdPesqCriptografia::criptografa('acao_externa=md_pesq_documento_exibir&id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento()); | |
428 | + $endereco = 'md_pesq_documento_consulta_externa.php?'.$parametrosCriptografadosDocumentos; | |
429 | + $titulo .= "(<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\""; | |
430 | + $titulo .= " class=\"protocoloNormal\""; | |
431 | + $titulo .= ">" . $dados["identificacao_protocolo"] . "</a>)"; | |
432 | + | |
433 | + //$tituloProtocolo = "<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\" class=\"protocoloNormal\" >".$dados["protocolo_documento_formatado"]. "</a>"; | |
444 | 434 | |
445 | 435 | } |
446 | 436 | |
... | ... | @@ -500,10 +490,6 @@ class MdPesqBuscaProtocoloExterno { |
500 | 490 | |
501 | 491 | } |
502 | 492 | |
503 | - | |
504 | - | |
505 | - | |
506 | - | |
507 | 493 | // Protege contra a não idexação no solr quando o processo passa de público para restrito. |
508 | 494 | if(($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && !$bolPesquisaProcessoRestrito) || ($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() == ProtocoloRN::$NA_SIGILOSO)){ |
509 | 495 | ... | ... |
sei/web/modulos/pesquisa/md_pesq_documento_consulta_externa.php
... | ... | @@ -21,11 +21,13 @@ try { |
21 | 21 | //InfraDebug::getInstance()->setBolDebugInfra(false); |
22 | 22 | //InfraDebug::getInstance()->limpar(); |
23 | 23 | ////////////////////////////////////////////////////////////////////////////// |
24 | - | |
25 | - | |
26 | - MdPesqConverteURI::converterURI(); | |
27 | - MdPesqPesquisaUtil::valiadarLink(); | |
28 | - | |
24 | + MdPesqConverteURI::converterURI(); | |
25 | + MdPesqPesquisaUtil::valiadarLink(); | |
26 | +// if (isset($_GET['id_acesso_externo'])){ | |
27 | +// SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink(); | |
28 | +// }else{ | |
29 | +// // SessaoSEIExterna::getInstance()->validarLink(); | |
30 | +// } | |
29 | 31 | |
30 | 32 | $objParametroPesquisaDTO = new MdPesqParametroPesquisaDTO(); |
31 | 33 | $objParametroPesquisaDTO->retStrNome(); |
... | ... | @@ -39,9 +41,6 @@ try { |
39 | 41 | $bolListaDocumentoProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; |
40 | 42 | $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; |
41 | 43 | |
42 | - // Parametros peticionamento elerônico | |
43 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | |
44 | - | |
45 | 44 | $objDocumentoDTO = new DocumentoDTO(); |
46 | 45 | $objDocumentoDTO->retDblIdDocumento(); |
47 | 46 | $objDocumentoDTO->retDblIdProcedimento(); |
... | ... | @@ -104,17 +103,18 @@ try { |
104 | 103 | |
105 | 104 | } |
106 | 105 | } |
107 | - | |
108 | - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
109 | - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objDocumentoDTO->getDblIdDocumento())) == false){ | |
110 | - | |
111 | - die("Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida"); | |
112 | - | |
113 | - } | |
114 | - | |
115 | - // Exibe apenas documentos de processos públicos. | |
116 | - | |
117 | 106 | |
107 | + //Protege acesso à documento público de intimação eletrônica | |
108 | + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); | |
109 | + if( !is_null($objInfraParametroDTO) ){ | |
110 | + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
111 | + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true)) ){ | |
112 | + die("Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida"); | |
113 | + } | |
114 | + } | |
115 | + | |
116 | + // Exibe apenas documentos de processos públicos. | |
117 | + | |
118 | 118 | //Carregar dados do cabeçalho |
119 | 119 | $objProcedimentoDTO = new ProcedimentoDTO(); |
120 | 120 | $objProcedimentoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); | ... | ... |
sei/web/modulos/pesquisa/md_pesq_processo_exibir.php
... | ... | @@ -36,10 +36,6 @@ try { |
36 | 36 | $objParametroPesquisaRN = new MdPesqParametroPesquisaRN(); |
37 | 37 | $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); |
38 | 38 | $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); |
39 | - | |
40 | - // Parametros peticionamento elerônico | |
41 | - $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento(); | |
42 | - | |
43 | 39 | |
44 | 40 | $bolPesquisaProcessoRestrito = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_PROCESSO_RESTRITO] == 'S' ? true : false; |
45 | 41 | $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[MdPesqParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; |
... | ... | @@ -321,21 +317,25 @@ try { |
321 | 317 | $objDocumentoDTO = $objProtocoloPesquisaPublicaDTO->getObjDocumentoDTO(); |
322 | 318 | $urlCripografadaDocumeto = MdPesqCriptografia::criptografa('acao_externa=documento_exibir&id_documento='.$objDocumentoDTO->getDblIdDocumento().'&id_orgao_acesso_externo=0'); |
323 | 319 | $strLinkDocumento = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink('md_pesq_documento_consulta_externa.php?'.$urlCripografadaDocumeto)); |
324 | - | |
325 | - //Protege acesso à documento público de intimação eletrônica | |
326 | - $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
327 | - $bolValidaIntimacaoEletronica = false; | |
328 | - if($objInfraParametroDTO != null && $objInfraParametroDTO->getStrValor() >= '2.0.0' && $objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida(array($objDocumentoDTO->getDblIdDocumento())) == false){ | |
329 | - $bolValidaIntimacaoEletronica = true; | |
330 | - } | |
331 | - | |
332 | - $strResultado .= '<tr class="infraTrClara">'; | |
333 | - | |
320 | + | |
321 | + //Protege acesso à documento público de intimação eletrônica | |
322 | + $bolValidaIntimacaoEletronica = true; | |
323 | + | |
324 | + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); | |
325 | + if( !is_null($objInfraParametroDTO) ){ | |
326 | + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
327 | + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true) ) ){ | |
328 | + $bolValidaIntimacaoEletronica = false; | |
329 | + } | |
330 | + } | |
331 | + | |
332 | + $strResultado .= '<tr class="infraTrClara">'; | |
333 | + | |
334 | 334 | //Cria checkbox para gerar PDF, verifica se o Processo é público e o Acesso Local do Protocolo é Público |
335 | - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO){ | |
336 | - if($objDocumentoRN->verificarSelecaoGeracaoPdf($objDocumentoDTO) && !$bolValidaIntimacaoEletronica){ | |
337 | - $strResultado .= '<td align="center">'.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).'</td>'; | |
338 | - }else{ | |
335 | + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO){ | |
336 | + if($objDocumentoRN->verificarSelecaoGeracaoPdf($objDocumentoDTO) && $bolValidaIntimacaoEletronica){ | |
337 | + $strResultado .= '<td align="center">'.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).'</td>'; | |
338 | + }else{ | |
339 | 339 | $strResultado .= '<td> </td>'; |
340 | 340 | } |
341 | 341 | }else{ |
... | ... | @@ -344,19 +344,18 @@ try { |
344 | 344 | |
345 | 345 | |
346 | 346 | //Exibe link de documentos com nivel de acesso local Público de processo público |
347 | - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ | |
348 | - | |
349 | - if($bolValidaIntimacaoEletronica){ | |
350 | - $strResultado .= '<td align="center"><span class="retiraAncoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</span>'; | |
351 | - $strResultado .= '<img src="/infra_css/imagens/espaco.gif">'; | |
352 | - $strResultado .= '<img src="../peticionamento/imagens/intimacao_nao_cumprida_doc_anexo.png" align="absbottom" title="Acesso Restrito.
'.'Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida">'; | |
353 | - }else{ | |
354 | - $strResultado .= '<td align="center" style="padding-right:22px"><a href="javascript:void(0);" onclick="window.open(\''.$strLinkDocumento.'\');" alt="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" title="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" class="ancoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</a></td>'; | |
355 | - } | |
356 | - | |
357 | - | |
358 | - }else{ | |
359 | - if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ | |
347 | + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ | |
348 | + | |
349 | + if($bolValidaIntimacaoEletronica){ | |
350 | + $strResultado .= '<td align="center" style="padding-right:22px"><a href="javascript:void(0);" onclick="window.open(\''.$strLinkDocumento.'\');" alt="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" title="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" class="ancoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</a></td>'; | |
351 | + }else{ | |
352 | + $strResultado .= '<td align="center"><span class="retiraAncoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</span>'; | |
353 | + $strResultado .= '<img src="/infra_css/imagens/espaco.gif">'; | |
354 | + $strResultado .= '<img src="../peticionamento/imagens/intimacao_nao_cumprida_doc_anexo.png" align="absbottom" title="Acesso Restrito.
'.'Documento com acesso restrito provisoriamente em razão de Intimação Eletrônica ainda não cumprida">'; | |
355 | + } | |
356 | + | |
357 | + }else{ | |
358 | + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ | |
360 | 359 | |
361 | 360 | //necessario para retornar id hipotese legal do documento |
362 | 361 | $strHipoteseLegalDocumento = ''; |
... | ... | @@ -575,10 +574,9 @@ try { |
575 | 574 | PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.'); |
576 | 575 | |
577 | 576 | }else { |
578 | - | |
579 | 577 | |
580 | - $objDocumentoRN = new DocumentoRN(); | |
581 | - | |
578 | + $objDocumentoRN = new DocumentoRN(); | |
579 | + | |
582 | 580 | $parArrObjDocumentoDTO = InfraArray::converterArrInfraDTO(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()),'IdDocumento'); |
583 | 581 | $objDocumentoDTO = new DocumentoDTO(); |
584 | 582 | $objDocumentoDTO->retDblIdDocumento(); |
... | ... | @@ -586,17 +584,29 @@ try { |
586 | 584 | $objDocumentoDTO->retDblIdProcedimento(); |
587 | 585 | $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo(); |
588 | 586 | $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo(); |
589 | - $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); | |
590 | - | |
591 | - foreach ($arrObjDocumentoDTO as $objDocumentoDTO){ | |
592 | - | |
587 | + $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); | |
588 | + | |
589 | + $arrSelecionados = PaginaSEIExterna::getInstance()->getArrStrItensSelecionados(); | |
590 | + | |
591 | + foreach ($arrObjDocumentoDTO as $objDocumentoDTO){ | |
592 | + | |
593 | 593 | //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 |
594 | 594 | if($bolListaDocumentoProcessoRestrito){ |
595 | 595 | if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){ |
596 | 596 | die ("Erro ao Gerar Pdf"); |
597 | 597 | } |
598 | - }else if($bolListaDocumentoProcessoPublico){ | |
599 | - if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_PUBLICO){ | |
598 | + | |
599 | + //Protege acesso à documento público de intimação eletrônica | |
600 | + $objInfraParametroDTO = $objParametroPesquisaRN->consultarVersaoPeticionamento('2.0.0'); | |
601 | + if( !is_null($objInfraParametroDTO) ){ | |
602 | + $objMdPetIntCertidaoRN = new MdPetIntCertidaoRN(); | |
603 | + if( !$objMdPetIntCertidaoRN->verificaDocumentoEAnexoIntimacaoNaoCumprida( array($objDocumentoDTO->getDblIdDocumento(),false,false,true) ) ){ | |
604 | + $idx_documento = array_search($objDocumentoDTO->getDblIdDocumento(), $arrSelecionados); | |
605 | + unset($arrSelecionados[$idx_documento]); | |
606 | + } | |
607 | + } | |
608 | + }else if($bolListaDocumentoProcessoPublico){ | |
609 | + if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_PUBLICO){ | |
600 | 610 | die ("Erro ao Gerar Pdf"); |
601 | 611 | } |
602 | 612 | }else{ |
... | ... | @@ -604,13 +614,18 @@ try { |
604 | 614 | } |
605 | 615 | |
606 | 616 | |
607 | - } | |
608 | - | |
609 | - | |
610 | - $objDocumentoRN = new DocumentoRN(); | |
611 | - $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados())); | |
612 | - | |
613 | - $bolGeracaoOK = true; | |
617 | + } | |
618 | + | |
619 | + if (count($arrSelecionados)==0){ | |
620 | + die ("Sem documento a gerar"); | |
621 | + } | |
622 | + | |
623 | + $arrSelecionados = array_values($arrSelecionados); | |
624 | + | |
625 | + $objDocumentoRN = new DocumentoRN(); | |
626 | + $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',$arrSelecionados)); | |
627 | + | |
628 | + $bolGeracaoOK = true; | |
614 | 629 | |
615 | 630 | } |
616 | 631 | |
... | ... | @@ -778,7 +793,6 @@ window.onclick = function(event) { |
778 | 793 | ?> |
779 | 794 | |
780 | 795 | function gerarPdf() { |
781 | - | |
782 | 796 | if (document.getElementById('hdnInfraItensSelecionados').value==''){ |
783 | 797 | alert('Nenhum documento selecionado.'); |
784 | 798 | return; | ... | ... |
sei/web/modulos/pesquisa/rn/MdPesqParametroPesquisaRN.php
... | ... | @@ -36,12 +36,12 @@ class MdPesqParametroPesquisaRN extends InfraRN { |
36 | 36 | protected function consultarConectado(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO){ |
37 | 37 | try { |
38 | 38 | |
39 | - //Valida Permissao | |
40 | - SessaoSEI::getInstance()->validarPermissao('md_pesq_parametro_consultar',__METHOD__,$objParametroPesquisaDTO); | |
41 | - | |
42 | - //Regras de Negocio | |
43 | - //$objInfraException = new InfraException(); | |
44 | - | |
39 | + //Valida Permissao | |
40 | + SessaoSEI::getInstance()->validarPermissao('md_pesq_parametro_consultar',__METHOD__,$objParametroPesquisaDTO); | |
41 | + | |
42 | + //Regras de Negocio | |
43 | + //$objInfraException = new InfraException(); | |
44 | + | |
45 | 45 | //$objInfraException->lancarValidacoes(); |
46 | 46 | |
47 | 47 | $objParametroPesquisaBD = new MdPesqParametroPesquisaBD($this->getObjInfraIBanco()); |
... | ... | @@ -122,24 +122,40 @@ class MdPesqParametroPesquisaRN extends InfraRN { |
122 | 122 | throw new InfraException('Erro listando Parâmetro da Pesquisas.',$e); |
123 | 123 | } |
124 | 124 | } |
125 | - | |
126 | - | |
127 | - protected function consultarVersaoPeticionamentoConectado(){ | |
128 | - | |
129 | - $objInfraParametroDTO = new InfraParametroDTO(); | |
130 | - $objInfraParametroDTO->setStrNome('VERSAO_MODULO_PETICIONAMENTO'); | |
131 | - $objInfraParametroDTO->retStrValor(); | |
132 | - | |
133 | - $objInfraParametroBD = new InfraParametroBD($this->getObjInfraIBanco()); | |
134 | - $objInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); | |
135 | - | |
136 | - return $objInfraParametroDTO; | |
125 | + | |
126 | + | |
127 | + protected function consultarVersaoPeticionamentoConectado($versao=null){ | |
128 | + $arrModulos = ConfiguracaoSEI::getInstance()->getValor('SEI','Modulos'); | |
129 | + if(is_array($arrModulos) && array_key_exists('PeticionamentoIntegracao', $arrModulos)){ | |
130 | + $objInfraParametroDTO = new InfraParametroDTO(); | |
131 | + $objInfraParametroDTO->setStrNome('VERSAO_MODULO_PETICIONAMENTO'); | |
132 | + $objInfraParametroDTO->retStrValor(); | |
133 | + | |
134 | + $objInfraParametroBD = new InfraParametroBD($this->getObjInfraIBanco()); | |
135 | + $arrObjInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); | |
136 | + | |
137 | + //versão do parametro é igual ou maior que a enviada | |
138 | + if (!is_null($versao)){ | |
139 | + if (count($arrObjInfraParametroDTO)>0){ | |
140 | + $arr_versao_parametro = explode('.',$arrObjInfraParametroDTO->getStrValor()); | |
141 | + $arr_versao = explode('.',$versao); | |
142 | + for ($i=0;$i<count($arr_versao_parametro);$i++){ | |
143 | + if (isset($arr_versao[$i])) { | |
144 | + if( intval($arr_versao_parametro[$i]) < intval($arr_versao[$i]) ){ | |
145 | + return null; | |
146 | + }else if( intval($arr_versao_parametro[$i]) > intval($arr_versao[$i]) ){ | |
147 | + return $arrObjInfraParametroDTO; | |
148 | + } | |
149 | + } | |
150 | + } | |
151 | + } | |
152 | + } | |
153 | + return $arrObjInfraParametroDTO; | |
154 | + }else{ | |
155 | + return null; | |
156 | + } | |
137 | 157 | } |
138 | - | |
139 | - | |
140 | 158 | |
141 | - | |
142 | - | |
143 | 159 | private function validarStrNome(MdPesqParametroPesquisaDTO $objParametroPesquisaDTO, InfraException $objInfraException){ |
144 | 160 | if (InfraString::isBolVazia($objParametroPesquisaDTO->getStrNome())){ |
145 | 161 | $objInfraException->adicionarValidacao('Nome não informado.'); | ... | ... |