From 21e2b9a56db6dcf94ee3110e369c90fd4e985dd9 Mon Sep 17 00:00:00 2001 From: neijobson Date: Sat, 10 Dec 2016 12:17:47 -0200 Subject: [PATCH] Códigos adequados para o SEI 3.0.0 --- README.md | 36 ++++++++++++++++++++++++++++++++++++ sei/scripts/sei_instalar_modulo_pesquisa.php | 23 +++++++++++++++++++++++ sei/web/modulos/pesquisa/BuscaProtocoloExterno.php | 572 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/ConverteURI.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/Criptografia.php | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/PesquisaCADE.php | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/PesquisaIntegracao.php | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/PesquisaUtil.php | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/SolrUtilExterno.php | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/ajuda_exibir_externo.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/bd/ParametroPesquisaBD.php | 19 +++++++++++++++++++ sei/web/modulos/pesquisa/bd/ProcedimentoSiscadeBD.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/bd/ProcessoBD.php | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/controlador_ajax_externo.php | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/css/infra-esquema-local.css | 243 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/documento_consulta_externa.php | 280 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/dto/ParametroPesquisaDTO.php | 33 +++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/dto/ProtocoloPesquisaPublicaDTO.php | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/favicon.ico | Bin 0 -> 1406 bytes sei/web/modulos/pesquisa/field.js | 275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/imagens/bg_barra_sistema.jpg | Bin 0 -> 842 bytes sei/web/modulos/pesquisa/imagens/cade_cadastro.gif | Bin 0 -> 180 bytes sei/web/modulos/pesquisa/imagens/sei_chave_restrito.gif | Bin 0 -> 587 bytes sei/web/modulos/pesquisa/imagens/sei_logo_azul_celeste.jpg | Bin 0 -> 9938 bytes sei/web/modulos/pesquisa/imagens/sei_logo_verde_limao.jpg | Bin 0 -> 9036 bytes sei/web/modulos/pesquisa/imagens/sei_logo_vermelho.jpg | Bin 0 -> 9514 bytes sei/web/modulos/pesquisa/int/DocumentoExternoINT.php | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/parametro_pesquisa_lista.php | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/pesquisa.sql | 18 ++++++++++++++++++ sei/web/modulos/pesquisa/processo_exibe_arquivo.php | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/processo_exibir.php | 903 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/processo_pesquisar.php | 701 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/rn/InstaladorModuloPesquisaPublicaRN.php | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/rn/ParametroPesquisaRN.php | 314 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sei/web/modulos/pesquisa/solr/img/arvore.png | Bin 0 -> 711 bytes sei/web/modulos/pesquisa/solr/js/sistema.js | 716 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sip/scripts/sip_instalar_modulo_pesquisa.php | 569 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 37 files changed, 6718 insertions(+), 0 deletions(-) create mode 100644 README.md create mode 100644 sei/scripts/sei_instalar_modulo_pesquisa.php create mode 100644 sei/web/modulos/pesquisa/BuscaProtocoloExterno.php create mode 100644 sei/web/modulos/pesquisa/ConverteURI.php create mode 100644 sei/web/modulos/pesquisa/Criptografia.php create mode 100644 sei/web/modulos/pesquisa/PesquisaCADE.php create mode 100644 sei/web/modulos/pesquisa/PesquisaIntegracao.php create mode 100644 sei/web/modulos/pesquisa/PesquisaUtil.php create mode 100644 sei/web/modulos/pesquisa/SolrUtilExterno.php create mode 100644 sei/web/modulos/pesquisa/ajuda_exibir_externo.php create mode 100644 sei/web/modulos/pesquisa/bd/ParametroPesquisaBD.php create mode 100644 sei/web/modulos/pesquisa/bd/ProcedimentoSiscadeBD.php create mode 100644 sei/web/modulos/pesquisa/bd/ProcessoBD.php create mode 100644 sei/web/modulos/pesquisa/controlador_ajax_externo.php create mode 100644 sei/web/modulos/pesquisa/css/infra-esquema-local.css create mode 100644 sei/web/modulos/pesquisa/documento_consulta_externa.php create mode 100644 sei/web/modulos/pesquisa/dto/ParametroPesquisaDTO.php create mode 100644 sei/web/modulos/pesquisa/dto/ProtocoloPesquisaPublicaDTO.php create mode 100644 sei/web/modulos/pesquisa/favicon.ico create mode 100644 sei/web/modulos/pesquisa/field.js create mode 100644 sei/web/modulos/pesquisa/imagens/bg_barra_sistema.jpg create mode 100644 sei/web/modulos/pesquisa/imagens/cade_cadastro.gif create mode 100644 sei/web/modulos/pesquisa/imagens/sei_chave_restrito.gif create mode 100644 sei/web/modulos/pesquisa/imagens/sei_logo_azul_celeste.jpg create mode 100644 sei/web/modulos/pesquisa/imagens/sei_logo_verde_limao.jpg create mode 100644 sei/web/modulos/pesquisa/imagens/sei_logo_vermelho.jpg create mode 100644 sei/web/modulos/pesquisa/int/DocumentoExternoINT.php create mode 100644 sei/web/modulos/pesquisa/parametro_pesquisa_lista.php create mode 100644 sei/web/modulos/pesquisa/pesquisa.sql create mode 100644 sei/web/modulos/pesquisa/processo_exibe_arquivo.php create mode 100644 sei/web/modulos/pesquisa/processo_exibir.php create mode 100644 sei/web/modulos/pesquisa/processo_pesquisar.php create mode 100644 sei/web/modulos/pesquisa/rn/InstaladorModuloPesquisaPublicaRN.php create mode 100644 sei/web/modulos/pesquisa/rn/ParametroPesquisaRN.php create mode 100644 sei/web/modulos/pesquisa/solr/img/arvore.png create mode 100644 sei/web/modulos/pesquisa/solr/js/sistema.js create mode 100644 sip/scripts/sip_instalar_modulo_pesquisa.php diff --git a/README.md b/README.md new file mode 100644 index 0000000..2d1bfc0 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# 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). +- 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: + +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". + +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', + 'Producao' => false, + 'RepositorioArquivos' => '/var/sei/arquivos', + '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: + + /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: + + /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. + +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/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 diff --git a/sei/scripts/sei_instalar_modulo_pesquisa.php b/sei/scripts/sei_instalar_modulo_pesquisa.php new file mode 100644 index 0000000..4883e5a --- /dev/null +++ b/sei/scripts/sei_instalar_modulo_pesquisa.php @@ -0,0 +1,23 @@ +instalar(); + + exit; + + } catch (Exception $e) { + + echo(InfraException::inspecionar($e)); + try{LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); }catch (Exception $e){} + } + + +?> diff --git a/sei/web/modulos/pesquisa/BuscaProtocoloExterno.php b/sei/web/modulos/pesquisa/BuscaProtocoloExterno.php new file mode 100644 index 0000000..ad0c1d1 --- /dev/null +++ b/sei/web/modulos/pesquisa/BuscaProtocoloExterno.php @@ -0,0 +1,572 @@ + + */ + +/** + * Classe de Busca na solução de indexação solr. + * + * + * @package institucional_pesquisa_BuscaProtocoloExterno + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * a @author e @copyright que devem ser mantidas inalteradas! + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + + +require_once("SolrUtilExterno.php"); +require_once ("Criptografia.php"); + +class BuscaProtocoloExterno { + + public static function executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, $numMaxResultados, $strParticipanteSolr, $md5Captcha = null) { + + //carrega configurações pesquisa + + $objParametroPesquisaDTO = new ParametroPesquisaDTO(); + $objParametroPesquisaDTO->retStrNome(); + $objParametroPesquisaDTO->retStrValor(); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); + + $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); + + $bolPesquisaDocumentoProcessoPublico = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; + $bolPesquisaProcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_PROCESSO_RESTRITO] == 'S' ? true : false; + $bolLinkMetadadosProcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_METADADOS_PROCESSO_RESTRITO] == 'S' ? true : false; + $txtDescricaoProcedimentoAcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_DESCRICAO_PROCEDIMENTO_ACESSO_RESTRITO]; + $bolAutocompletarInterressado = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_AUTO_COMPLETAR_INTERESSADO] == 'S' ? true : false; + + $parametros = new stdClass(); + $filtro = new stdClass(); + + $partialfields = ''; + + //die($_REQUEST["partialfields"]); + + if(!$bolAutocompletarInterressado){ + $partialfields = $strParticipanteSolr; + } + + + + if (!InfraString::isBolVazia($_REQUEST["partialfields"])){ + $partialfields = $partialfields.$_REQUEST["partialfields"]; + + + $checkbox = array(); + if (preg_match("/sta_prot:([A-Z;]+)/i", $partialfields, $checkbox) > 0) { + $checkbox = explode(";", $checkbox[1]); + } + + + + }else{ + $checkbox = array('P','G','R'); + } + + $grupo = array(); + + // PESQUISAR EM: PROCESSOS + if (in_array("P", $checkbox)) { + + if($bolPesquisaProcessoRestrito){ + array_push($grupo, "(sta_prot:P)"); + }else{ + array_push($grupo, "(sta_prot:P AND tipo_aces:P)"); + } + + } + + // PESQUISAR EM: DOCUMENTOS EXTERNOS + + if($bolPesquisaDocumentoProcessoPublico){ + + if (in_array("R", $checkbox)) { + + array_push($grupo, "(sta_prot:R AND tipo_aces:P)"); + + + } + + // PESQUISAR EM: DOCUMENTOS GERADOS + $filtroDocumentoInternoAssinado = ''; + if (in_array("G", $checkbox)) { + + array_push($grupo, "(sta_prot:G AND tipo_aces:P)"); + + + } + } + + + + if (count($grupo)>0){ + //Alteração para consulta externa sem login + $staProtocolo = '('.implode(" OR ", $grupo).')'; + //$staProtocolo = '('.implode(" OR ", $grupo).') AND tipo_acesso:P'; + + + + + if (preg_match("/sta_prot:([A-Z;]+)/i", $partialfields)){ + $partialfields = preg_replace("/sta_prot:[A-Z;]+/i", $staProtocolo, $partialfields); + }else{ + $partialfields .= $staProtocolo; + } + } + + + + /** + * ELABORA A URL + */ + + $parametros->q = SolrUtilExterno::formatarOperadores($q); + + if ($strDescricaoPesquisa!=''){ + + if ($parametros->q != ''){ + $parametros->q .= ' AND '; + } + + $parametros->q .= '('.SolrUtilExterno::formatarOperadores($strDescricaoPesquisa, 'desc').')'; + } + + if ($strObservacaoPesquisa!=''){ + if ($parametros->q != ''){ + $parametros->q .= ' AND '; + } + $parametros->q .= '('.SolrUtilExterno::formatarOperadores($strObservacaoPesquisa,'desc'.SessaoSEI::getInstance()->getNumIdUnidadeAtual()).')'; + } + + $parametros->start = $inicio; + + if ($parametros->q != '' && $partialfields != ''){ + $parametros->q .= ' AND ' .$partialfields; + }else if ($partialfields != ''){ + $parametros->q = $partialfields; + } + + $parametros->sort = 'dta_ger desc'; + + + //////////////////////////// +// print_r($parametros); +// die; + ////////////////////////// + + + $parametros->q = utf8_encode($parametros->q); + + + + //Monta url de busca + $urlBusca = ConfiguracaoSEI::getInstance()->getValor('Solr','Servidor') . '/'.ConfiguracaoSEI::getInstance()->getValor('Solr','CoreProtocolos') .'/select?' . http_build_query($parametros).'&hl=true&hl.snippets=2&hl.fl=content&hl.fragsize=100&hl.maxAnalyzedChars=1048576&hl.alternateField=content&hl.maxAlternateFieldLength=100&hl.maxClauseCount=2000&fl=id,id_prot,id_proc,id_doc,id_tipo_proc,id_serie,id_anexo,id_uni_ger,prot_doc,prot_proc,numero,id_usu_ger,dta_ger,desc'; + //$urlBusca = ConfiguracaoSEI::getInstance()->getValor('Solr','Servidor') . '/'.ConfiguracaoSEI::getInstance()->getValor('Solr','CoreProtocolos') .'/select?' . http_build_query($parametros).'&hl=true&hl.snippets=2&hl.fl=content&hl.fragsize=100&hl.maxAnalyzedChars=1048576&hl.alternateField=content&hl.maxAlternateFieldLength=100&hl.maxClauseCount=2000&fl=id,tipo_acesso,id_unidade_acesso,id_unidade_geradora,id_unidade_aberto,identificacao_protocolo,nome_tipo_processo,protocolo_documento_formatado,protocolo_processo_formatado,sigla_unidade_geradora,descricao_unidade_geradora,sigla_usuario_gerador,nome_usuario_gerador,dta_geracao,link_arvore,id_protocolo'; + + //////////////////////////// +// print_r($urlBusca); +// die; + ////////////////////////// + + + // @DEBUG + + //echo 'URL:'.$urlBusca; + //echo "PARÂMETROS: " . print_r($parametros, true); + + //Objeto que contera o xml do resultado de busca + //$resultados = new SolrXmlResults($urlBusca, $numMaximoResultados); + + //$numSeg = InfraUtil::verificarTempoProcessamento(); + $resultados = file_get_contents($urlBusca, false); + //$numSeg = InfraUtil::verificarTempoProcessamento($numSeg); + + if ($resultados == ''){ + throw new InfraException('Nenhum retorno encontrado no resultado da pesquisa.'); + } + + $xml = simplexml_load_string($resultados); + + $html = ''; + + $arrRet = $xml->xpath('/response/result/@numFound'); + + $itens = array_shift($arrRet); + + + + + + if ($itens == 0){ + + $html .= "
"; + $html .= "Sua pesquisa pelo termo " . PaginaSEI::tratarHTML($_POST["q"]) . " não encontrou nenhum protocolo correspondente."; + $html .= "
"; + $html .= "
"; + $html .= "Sugestões:"; + $html .= "
    "; + $html .= "
  • Certifique-se de que todas as palavras estejam escritas corretamente.
  • "; + $html .= "
  • Tente palavras-chave diferentes.
  • "; + $html .= "
  • Tente palavras-chave mais genéricas.
  • "; + $html .= "
"; + $html .= "
"; + + + }else{ + + $html = SolrUtilExterno::criarBarraEstatisticas($itens,$inicio,($inicio+10)); + + $registros = $xml->xpath('/response/result/doc'); + + $numRegistros = sizeof($registros); + + for ($i = 0; $i < $numRegistros; $i++) { + + $dados = array(); + $titulo = ""; + $regResultado = $registros[$i]; + + $dados["tipo_acesso"] = SolrUtil::obterTag($regResultado, 'tipo_aces', 'str'); + $dados["id_unidade_acesso"] = SolrUtil::obterTag($regResultado, 'id_uni_aces', 'str'); + $dados["id_unidade_geradora"] = SolrUtil::obterTag($regResultado, 'id_uni_ger', 'int'); + //$dados["id_unidade_aberto"] = $registros[$i]->xpath("str[@name='id_unidade_aberto']"); + //$dados["identificacao_protocolo"] = $registros[$i]->xpath("str[@name='identificacao_protocolo']"); + //$dados["nome_tipo_processo"] = $registros[$i]->xpath("str[@name='nome_tipo_processo']"); + $dados["protocolo_documento_formatado"] = SolrUtil::obterTag($regResultado, 'prot_doc', 'str'); + $dados["protocolo_processo_formatado"] = SolrUtil::obterTag($regResultado, 'prot_proc', 'str'); + $dados["id_usuario_gerador"] = SolrUtil::obterTag($regResultado, 'id_usu_ger', 'int'); + $dados['id_tipo_processo'] = SolrUtil::obterTag($regResultado, 'id_tipo_proc', 'int'); + $dados["identificacao_protocolo"] = SolrUtil::obterTag($regResultado, 'numero', 'str'); + $dados["descricao_protocolo"] = SolrUtil::obterTag($regResultado, 'desc', 'str'); + + + $arrMetatags = array(); + $strSiglaUnidadeGeradora=""; + $strDescricaoUnidadeGeradora=""; + + if (isset($dados["id_unidade_geradora"])){ + $objUnidadeDTO = new UnidadeDTO(); + $objUnidadeDTO->setNumIdUnidade($dados["id_unidade_geradora"]); + $objUnidadeDTO->retStrSigla(); + $objUnidadeDTO->retStrDescricao(); + + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + + if($objUnidadeDTO != null){ + $strSiglaUnidadeGeradora = $objUnidadeDTO->getStrSigla(); + $strDescricaoUnidadeGeradora = $objUnidadeDTO->getStrDescricao(); + + } + } + + + $arrMetatags['Unidade Geradora'] = ''.$strSiglaUnidadeGeradora.''; + + $dtaGeracao = SolrUtil::obterTag($regResultado, 'dta_ger', 'date'); + $dtaGeracao = preg_replace("/(\d{4})-(\d{2})-(\d{2})(.*)/", "$3/$2/$1", $dtaGeracao); + + $arrMetatags['Data'] = $dtaGeracao; + + // SNIPPET + $numId = $registros[$i]->xpath("str[@name='id']"); + $numId = utf8_decode($numId[0]); + $temp = $xml->xpath("/response/lst[@name='highlighting']/lst[@name='".$numId."']/arr[@name='content']/str"); + + $snippet = ''; + for($j=0;$j/i", "
", $snippetTemp); + $snippetTemp = preg_replace("/<.*?>/", "", $snippetTemp); + $snippet .= $snippetTemp.'  ...  '; + } + + + + // PROTOCOLO + $idProtocolo = SolrUtil::obterTag($regResultado, 'id_prot', 'long'); + $objProtocoloRN = new ProtocoloRN(); + $objProtocoloDTO = new ProtocoloDTO(); + $objProtocoloDTO->setDblIdProtocolo($idProtocolo); + $objProtocoloDTO->retDblIdProtocolo(); + $objProtocoloDTO->retStrStaProtocolo(); + $objProtocoloDTO->retStrStaNivelAcessoGlobal(); + $objProtocoloDTO->retStrProtocoloFormatado(); + $objProtocoloDTO->retNumIdHipoteseLegal(); + $objProtocoloDTO = $objProtocoloRN->consultarRN0186($objProtocoloDTO); + $idProcedimento = ''; + if($objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO){ + $objDocumentoRN = new DocumentoRN(); + $objDocumentoDTO = new DocumentoDTO(); + $objDocumentoDTO->setDblIdDocumento($idProtocolo); + $objDocumentoDTO->retDblIdDocumento(); + $objDocumentoDTO->retDblIdProcedimento(); + $objDocumentoDTO->retNumIdSerie(); + $objDocumentoDTO->retStrNomeSerie(); + $objDocumentoDTO->retStrNumero(); + $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); + $idProcedimento = $objDocumentoDTO->getDblIdProcedimento(); + + $dados["identificacao_protocolo"] = $objDocumentoDTO->getStrNomeSerie() . ' '. $objDocumentoDTO->getStrNumero(); + + // INCLUIDO 21/12/2015 Substitui data de geração para data de assinatura de documentos gerados + if($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_DOCUMENTO_GERADO){ + + $objAssinaturaDTO = new AssinaturaDTO(); + $objAssinaturaDTO->setDblIdDocumento($idProtocolo); + $objAssinaturaDTO->setOrdDthAberturaAtividade(InfraDTO::$TIPO_ORDENACAO_ASC); + $objAssinaturaDTO->retDthAberturaAtividade(); + + $objAssinaturaRN = new AssinaturaRN(); + $arrObjAssinaturaDTO = $objAssinaturaRN->listarRN1323($objAssinaturaDTO); + + if(is_array($arrObjAssinaturaDTO) && count($arrObjAssinaturaDTO) > 0) { + + $objAssinaturaDTO = $arrObjAssinaturaDTO[0]; + if($objAssinaturaDTO != null && $objAssinaturaDTO->isSetDthAberturaAtividade()){ + + $dtaGeracao = substr($objAssinaturaDTO->getDthAberturaAtividade(),0,10); + + $arrMetatags['Data'] = $dtaGeracao; + + } + } + + + + } + + if($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){ + + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setDblIdProtocoloAtividade($idProcedimento); + $objAtributoAndamentoDTO->setNumIdTarefaAtividade(TarefaRN::$TI_RECEBIMENTO_DOCUMENTO); + $objAtributoAndamentoDTO->setStrNome("DOCUMENTO"); + $objAtributoAndamentoDTO->setStrIdOrigem($idProtocolo); + + $objAtributoAndamentoDTO->retDthAberturaAtividade(); + + $objAtributoAndamentoRN = new AtributoAndamentoRN(); + + $objAtributoAndamentoDTO = $objAtributoAndamentoRN->consultarRN1366($objAtributoAndamentoDTO); + + if($objAtributoAndamentoDTO != null && $objAtributoAndamentoDTO->isSetDthAberturaAtividade()){ + + $dtaGeracao = substr($objAtributoAndamentoDTO->getDthAberturaAtividade(),0,10); + + $arrMetatags['Data'] = $dtaGeracao; + + } + } + + }else{ + $idProcedimento = $objProtocoloDTO->getDblIdProtocolo(); + } + + $parametrosCriptografadosProcesso = Criptografia::criptografa('acao_externa=processo_exibir&id_orgao_acesso_externo=0&id_procedimento='.$idProcedimento); + $urlPesquisaProcesso = 'processo_exibir.php?'.$parametrosCriptografadosProcesso; + $arvore = $urlPesquisaProcesso; + + + $tituloLinkNumeroProcesso = "formatarXHTML(SessaoSEI::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($arvore))) . "\" target=\"_blank\" class=\"protocoloNormal\">"; + $tituloLinkNumeroProcesso .= $dados["protocolo_processo_formatado"]; + $tituloLinkNumeroProcesso .= ""; + + $tituloProtocolo = $tituloLinkNumeroProcesso; + + //Tipo do Processo + $strNomeTipoProcedimento = ""; + if (isset($dados["id_tipo_processo"])){ + $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); + $objTipoProcedimentoDTO->setNumIdTipoProcedimento($dados["id_tipo_processo"]); + $objTipoProcedimentoDTO->retStrNome(); + + $objTipoProcedimentoRN = new TipoProcedimentoRN(); + $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); + + if($objTipoProcedimentoDTO != null){ + $strNomeTipoProcedimento = $objTipoProcedimentoDTO->getStrNome(); + + } + } + + + + + $titulo = $strNomeTipoProcedimento . " N° " . $tituloLinkNumeroProcesso; + + if (empty($dados["protocolo_documento_formatado"]) == false) { + if($objDocumentoDTO == null){ + print_r($idProtocolo); + echo ' '; + print_r($dados["protocolo_documento_formatado"]); + die; + } + + $titulo .= " "; + $parametrosCriptografadosDocumentos = Criptografia::criptografa('acao_externa=documento_exibir&id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento()); + $endereco = '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"]. ""; + + } + + + + + $tituloCompleto = "formatarXHTML(SessaoSEI::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($arvore))) . "\" target=\"_blank\" class=\"arvore\">"; + $tituloCompleto .= "\"\""; + $tituloCompleto .= ""; + + $tituloCompleto .= $titulo; + + // REMOVE TAGS DO TÍTULO + $tituloCompleto = preg_replace("/<.*?>/", "", $tituloCompleto); + + + + + if($objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && $bolPesquisaProcessoRestrito){ + + if(!$bolLinkMetadadosProcessoRestrito || $objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO){ + $tituloCompleto = $objProtocoloDTO->getStrProtocoloFormatado(); + $titulo = $objProtocoloDTO->getStrProtocoloFormatado(); + $tituloProtocolo = $objProtocoloDTO->getStrProtocoloFormatado(); + //$tituloProtocolo = 'N° SEI (Documento/Processo)'; + + $objHipoteseLegalDTO = new HipoteseLegalDTO(); + $objHipoteseLegalDTO->retTodos(false); + $objHipoteseLegalDTO->setNumIdHipoteseLegal($objProtocoloDTO->getNumIdHipoteseLegal()); + + $objHipoteseLegalRN = new HipoteseLegalRN(); + $objHipoteseLegalDTO = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO); + + if($objHipoteseLegalDTO != null){ + $snippet = 'Hipótese Legal de Restrição de Acesso: '.$objHipoteseLegalDTO->getStrNome().' ('.$objHipoteseLegalDTO->getStrBaseLegal().')'; + $txtDescricaoProcedimentoAcessoRestrito = trim($txtDescricaoProcedimentoAcessoRestrito); + if( !empty($txtDescricaoProcedimentoAcessoRestrito)){ + $snippet .= '
'; + $snippet .= $txtDescricaoProcedimentoAcessoRestrito; + } + }else{ + if( !empty($txtDescricaoProcedimentoAcessoRestrito)){ + $snippet = $txtDescricaoProcedimentoAcessoRestrito; + }else{ + $snippet = 'Processo de Acesso Restrito'; + } + + } + + unset($arrMetatags['Usuário'] ); + unset($arrMetatags['Unidade Geradora']); + unset($arrMetatags['Data']); + } + + + + + } + + // 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)){ + + $tituloCompleto = 'ACESSO RESTRITO'; + $titulo = 'ACESSO RESTRITO'; + $tituloProtocolo = 'ACESSO RESTRITO'; + unset($arrMetatags['Usuário'] ); + unset($arrMetatags['Unidade Geradora']); + unset($arrMetatags['Data']); + $snippet = 'ACESSO RESTRITO'; + + + } + + // Protege contra a não idexação no solr quando o documento passa de público para restrito. + //if($objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && !$bolPesquisaDocumentoProcessoRestrito){ + if($objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO){ + + $tituloCompleto = 'ACESSO RESTRITO'; + $titulo = 'ACESSO RESTRITO'; + $tituloProtocolo = 'ACESSO RESTRITO'; + unset($arrMetatags['Usuário'] ); + unset($arrMetatags['Unidade Geradora']); + unset($arrMetatags['Data']); + $snippet = 'ACESSO RESTRITO'; + + + } + + $html .= "\n"; + $html .= "\n"; + $html .= "\n"; + $html .= "\n"; + $html .= "\n"; + + if (empty($snippet) == false) + $html .= "\n + \n + \n"; + + if (count($arrMetatags)) { + $html .= "\n"; + $html .= "\n"; + $html .= "\n"; + } + + $html .= "
"; + $html .= $tituloCompleto; + $html .= ""; + $html .= $tituloProtocolo; + $html .= "
+ " . $snippet . " +
\n"; + $html .= "\n"; + $html .= "\n"; + $html .= "\n"; + + foreach($arrMetatags as $nomeMetaTag => $valorMetaTag){ + + $html .= "\n"; + + + } + + $html .= "\n"; + $html .= "\n"; + $html .= "
"; + $html .= "" . $nomeMetaTag . ": " . $valorMetaTag; + $html .= "
\n"; + $html .= "
\n"; + } + + + $html .= SolrUtilExterno::criarBarraNavegacao($itens, $inicio, 10, PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(),$md5Captcha); + } + + return $html; + } +} +?> diff --git a/sei/web/modulos/pesquisa/ConverteURI.php b/sei/web/modulos/pesquisa/ConverteURI.php new file mode 100644 index 0000000..bbd1336 --- /dev/null +++ b/sei/web/modulos/pesquisa/ConverteURI.php @@ -0,0 +1,60 @@ + + */ + +/** + * Arquivo para conversão de url. + * + * + * @package institucional_pesquisa_controlador_ajax_externo + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * a @author e @copyright que devem ser mantidas inalteradas! + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + +require_once ("Criptografia.php"); + class ConverteURI{ + + public static function converterURI(){ + + try { + $arr = explode('?', $_SERVER['REQUEST_URI']); + $arrParametros = Criptografia::descriptografa($arr[1]); + //$parametros = explode('&', $arrParametros[0]); + $parametros = explode('&', $arrParametros); + $chaves = array(); + $valores = array(); + foreach ($parametros as $parametro){ + $arrChaveValor = explode('=', $parametro); + $chaves[] = $arrChaveValor[0]; + $valores[] = $arrChaveValor[1]; + + } + $novosParametros = array_combine($chaves, array_values($valores)); + $new_query_string = http_build_query($novosParametros); + $_SERVER['REQUEST_URI'] = $arr[0].'?'.$new_query_string; + $_GET = $novosParametros; + }catch (Exception $e){ + throw new InfraException('Erro validando url.', $e); + } + } + } + +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/Criptografia.php b/sei/web/modulos/pesquisa/Criptografia.php new file mode 100644 index 0000000..9201dd1 --- /dev/null +++ b/sei/web/modulos/pesquisa/Criptografia.php @@ -0,0 +1,152 @@ + + */ + +/** + * Arquivo para realizar criptografia de parametros. + * + * + * @package institucional_pesquisa_controlador_ajax_externo + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * a @author e @copyright que devem ser mantidas inalteradas! + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + +/** + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA +* +* 01/09/2014 - criado por alex braga +* +* Versão do Gerador de Código: +* +* Versão no CVS: +*/ + + + class Criptografia{ + + private static $KEY = 'c@d3s3mp@p3l'; + + public static function criptografa($texto){ + try { + + return strtr(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(Criptografia::getChaveCriptografia()), serialize($texto), MCRYPT_MODE_CBC, md5(md5(Criptografia::getChaveCriptografia())))), '+/=', '-_,'); + + + } catch (Exception $e) { + + throw new InfraException('Erro validando link externo.',$e); + } + } + + public static function descriptografa($texto){ + try { + + return unserialize(rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(Criptografia::getChaveCriptografia()), base64_decode(strtr($texto, '-_,', '+/=')), MCRYPT_MODE_CBC, md5(md5(Criptografia::getChaveCriptografia()))), "\0")); + } catch (Exception $e) { + + throw new InfraException('Erro validando link externo.',$e); + } + } + + private static function getChaveCriptografia(){ + + $objParametroPesquisaDTO = new ParametroPesquisaDTO(); + $objParametroPesquisaDTO->setStrNome(ParametroPesquisaRN::$TA_CHAVE_CRIPTOGRAFIA); + $objParametroPesquisaDTO->retStrValor(); + $objParametroPesquisaDTO->retStrNome(); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + + $objParametroPesquisaDTO = $objParametroPesquisaRN->consultar($objParametroPesquisaDTO); + + if($objParametroPesquisaDTO != null && !empty($objParametroPesquisaDTO->getStrValor())){ + + return $objParametroPesquisaDTO->getStrValor(); + } + + return $KEY; + } + + //Esta criptografia é usada no site do cade; + //Alterar metodo de criptografia por uma criptografia php. + public static function criptografaSiteCade($texto){ + + $caminho = dirname(__FILE__).'/criptografia/mascaraArgumentos.jar'; + $instrucao = 'java -jar '.$caminho.' \'criptografa\' \''.$texto.'\' \''.Criptografia::$KEY.'\' '; + + exec( $instrucao, $saida, $retorno); + if($retorno !=0){ + throw new InfraException('Erro validando link externo.',$e); + }else{ + return $saida; + } + + } + //Esta criptografia é usada no site do cade; + //Alterar metodo de criptografia por uma criptografia php. + public static function descriptografaSiteCade($texto){ + + $caminho = dirname(__FILE__).'/criptografia/mascaraArgumentos.jar'; + $instrucao = 'java -jar '.$caminho.' \'descriptografa\' \''.$texto.'\' \''.Criptografia::$KEY.'\' '; + + exec( $instrucao, $saida, $retorno); + if($retorno !=0){ + throw new InfraException('Erro validando link externo.',$e); + }else{ + return $saida; + } + + } + + //Esta criptografia é usada no site do cade; + //Alterar metodo de criptografia por uma criptografia php. + public static function descriptografaArgumentos($parametro){ + + $parametrosCriptografados = $_SERVER['QUERY_STRING']; + $parametrosDescriptografados = Criptografia::descriptografa($parametrosCriptografados); + $arrParametros = explode("&", $parametrosDescriptografados[0]); + $bolRecuperParametro = false; + $valorParametro = ''; + foreach ($arrParametros as $arrParametro){ + $parametroRetorno = explode("=", $arrParametro); + if($parametroRetorno[0] == $parametro){ + $bolRecuperParametro = true; + $valorParametro = $parametroRetorno[1]; + break; + }else{ + $bolRecuperParametro = false; + } + } + + if($bolRecuperParametro){ + return $valorParametro; + }else{ + throw new InfraException('Erro recuperando parâmetro.'); + } + + + } + + } + + + +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/PesquisaCADE.php b/sei/web/modulos/pesquisa/PesquisaCADE.php new file mode 100644 index 0000000..d0ec0e6 --- /dev/null +++ b/sei/web/modulos/pesquisa/PesquisaCADE.php @@ -0,0 +1,78 @@ +setStrProNumero(str_replace(' ', '', $strProtocoloPesquisa)); + $objProcessoDTO->setNomeParte(InfraString::excluirAcentos($strNomeParticipante)); + $objProcessoDTO->retStrProNumero(); + $objProcessoDTO->retNumProCodigo(); + $objProcessoDTO->retStrTipproNome(); + $objProcessoDTO->retStrProSumula(); + //PaginaSEIExterna::getInstance()->prepararOrdenacao($objProcessoDTO,'ProNumero',InfraDTO::$TIPO_ORDENACAO_ASC); + + + $objProcessoRN = new ProcessoRN(); + + //conta registro + //$totalRegistro = $objProcessoRN->contarComFiltro($objProcessoDTO); + + $totalRegistro = $objProcessoRN->contarProNumeroParte($objProcessoDTO); + + //Pesquisa paginada + $objProcessoDTO->setNumPaginaAtual($paginaAtual); + $objProcessoDTO->setNumMaxRegistrosRetorno($maxRetorno); + //PaginaSEIExterna::getInstance()->processarPaginacao($objProcessoDTO); + //$arrObjProcessoDTO = $objProcessoRN->listarTodosComFiltro($objProcessoDTO); + $arrObjProcessoDTO = $objProcessoRN->listarProNumeroParte($objProcessoDTO); + + + + + if ($totalRegistro != 0){ + + //$bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEIExterna','https'); + + $html = PesquisaUtil::criarBarraEstatisticas($totalRegistro,$inicio,($inicio+10)); + $html .= ''; + $html .= '

Pesquisa Processual Site do Cade

'; + $html .= ''."\n"; + $html.= ''; + + foreach ($arrObjProcessoDTO as $objProtocoloDTO){ + $html .= ''; + $html .= ''; + $html .= ''; + $html .= ''."\n"; + $html .= ''; + $html .= ''; + + + } + + $html .= '
Resultado de pesquisa processual no site do CADE.
'."\n"; + $strLinkArvoreCADE = "http://www.cade.gov.br/Processo.aspx?processo=".$objProtocoloDTO->getStrProNumero(); + + // if ($bolHttps){ + // $strLinkArvoreCADE = str_replace('http://','https://',$strLinkArvoreCADE); + // } + + $html .= ' '; + //Tipo do Processo + $html .= '' .utf8_decode(iconv('CP850', 'UTF-8', $objProtocoloDTO->getStrTipproNome())).': Nº '. $objProtocoloDTO->getStrProNumero() . ''; + $html .= ''.$objProtocoloDTO->getStrProNumero().'
'; + $html .= utf8_decode(iconv('CP850', 'UTF-8', $objProtocoloDTO->getStrProSumula())); + $html .= ''; + $html .= '
'; + $html .= PesquisaUtil::criarBarraNavegacao($totalRegistro, $inicio, 10, PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(),'intranet',$md5Captcha); + + return $html; + } + + } +} + +?> diff --git a/sei/web/modulos/pesquisa/PesquisaIntegracao.php b/sei/web/modulos/pesquisa/PesquisaIntegracao.php new file mode 100644 index 0000000..e57cd04 --- /dev/null +++ b/sei/web/modulos/pesquisa/PesquisaIntegracao.php @@ -0,0 +1,94 @@ +retNumIdContato(); + $objContatoDTO->retStrSigla(); + $objContatoDTO->retStrNome(); + + $objContatoDTO->setStrPalavrasPesquisa($_POST['palavras_pesquisa']); + + if ($numIdGrupoContato!=''){ + $objContatoDTO->setNumIdGrupoContato($_POST['id_grupo_contato']); + } + + + $objContatoDTO->setNumMaxRegistrosRetorno(50); + $objContatoDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC); + + $objContatoRN = new ContatoRN(); + $arrObjContatoDTO = $objContatoRN->pesquisarRN0471($objContatoDTO); + + // $arrObjContatoDTO = ContatoINT::autoCompletarContextoPesquisa($_POST['palavras_pesquisa'],$_POST['id_grupo_contato']); + $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjContatoDTO,'IdContato', 'Nome'); + break; + + } + + return $xml; + } + + public function montarMenuUsuarioExterno(){ + + $objParametroPesquisaDTO = new ParametroPesquisaDTO(); + $objParametroPesquisaDTO->setStrNome(ParametroPesquisaRN::$TA_MENU_USUARIO_EXTERNO); + $objParametroPesquisaDTO->retStrValor(); + $objParametroPesquisaDTO->retStrNome(); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + $objParametroPesquisaDTO = $objParametroPesquisaRN->consultar($objParametroPesquisaDTO); + + + $bolMenuUsuarioExterno = $objParametroPesquisaDTO->getStrValor() == 'S' ? true : false; + + if($bolMenuUsuarioExterno){ + $arrModulos = ConfiguracaoSEI::getInstance()->getValor('SEI','Modulos'); + if(is_array($arrModulos) && array_key_exists('PesquisaIntegracao', $arrModulos)){ + $caminho = $arrModulos['PesquisaIntegracao']; + $arrMenu = array(); + $arrMenu[] = '-^'.ConfiguracaoSEI::getInstance()->getValor('SEI','URL').'/modulos/'.$caminho.'/processo_pesquisar.php?acao_externa=protocolo_pesquisar&acao_origem_externa=protocolo_pesquisar&id_orgao_acesso_externo=0^^Pesquisa Processual^_blank^'; + + return $arrMenu; + + } + } + + return null; + + } + + } +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/PesquisaUtil.php b/sei/web/modulos/pesquisa/PesquisaUtil.php new file mode 100644 index 0000000..edee84a --- /dev/null +++ b/sei/web/modulos/pesquisa/PesquisaUtil.php @@ -0,0 +1,211 @@ +".self::obterTextoBarraEstatisticas($total,$inicio,$fim).""; + } + + public static function obterTextoBarraEstatisticas($total,$inicio,$fim) { + $ret = ''; + if ($total > 0 && $total != "") { + if ($total < $fim) { + $ret .= $total.' resultado'.($total>1?'s':''); + } else { + $ret .= "Exibindo " . ($inicio+1) . " - " . $fim . " de " . $total; + } + } + return $ret; + } + + //Cria a navegacao completa + public static function criarBarraNavegacao($totalRes, $inicio, $numResPorPag, $objPagina, $objSessao, $strLocalPesquisa,$md5Captcha = null,$strControlador = 'processo_pesquisar.php') + { + + if ($totalRes == 0) + return; + + $nav = "
"; + + $paginaAtual = $inicio / $numResPorPag + 1; + + $urlSemInicio = $strControlador.'?acao_externa='.$_GET['acao_externa']."&acao_origem_externa=protocolo_pesquisar_paginado"; + + $urlSemInicio .= '&local_pesquisa='.$strLocalPesquisa; + + $hash = (!is_null($md5Captcha)) ? "&hash=".$md5Captcha : ""; + + if ($inicio != null ) { + $nav .= "formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='. ($paginaAtual - 2) . "&inicio_cade=" . ($inicio - $numResPorPag) . $hash)) . "')\">Anterior\n"; + } + + if ($totalRes > $numResPorPag) + { + $numPagParaClicar = 12; + + if (ceil($totalRes / $numResPorPag) > $numPagParaClicar) + { + $iniNav = ($paginaAtual - floor(($numPagParaClicar - 1) / 2)) - 1; + $fimNav = ($paginaAtual + ceil(($numPagParaClicar - 1) / 2)); + + if ($iniNav < 0) + { + $iniNav = 0; + $fimNav = $numPagParaClicar; + } + + if ($fimNav > ceil($totalRes / $numResPorPag)) + { + $fimNav = ceil($totalRes / $numResPorPag); + $iniNav = $fimNav - $numPagParaClicar; + } + } + else + { + $iniNav = 0; + $fimNav = ceil($totalRes / $numResPorPag); + } + + for ($i = $iniNav; $i < $fimNav; $i++) + { + $numPagina = $i; + if ($inicio == 0 AND $i == 0){ + $nav .= " " . ($i + 1) . " "; + }elseif (($i + 1) == ($inicio / $numResPorPag + 1)){ + $nav .= " " . ($i + 1) . " "; + }else{ + //$nav .= " formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='.$numPagina."&inicio=" . ($i * $numResPorPag)))).'#Pesquisa_Siscade' . "')\">" . ($i + 1) . "\n"; + $nav .= " formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='.$numPagina."&inicio_cade=" . ($i * $numResPorPag) . $hash)))."')\">" . ($i + 1) . "\n"; + + } + } + } + + if (($inicio / $numResPorPag) + 1 != ceil($totalRes / $numResPorPag)) { + $nav .= "formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='.$paginaAtual . "&inicio_cade=" . ($inicio + $numResPorPag) . $hash)) . "')\">Próxima\n"; + } + + $nav .= "
"; + + return $nav; + } + + public static function buscaParticipantes($strNomeParticipante){ + + $objContatoDTO = new ContatoDTO(); + $objContatoDTO->retNumIdContato(); + + + $objContatoDTO->setStrPalavrasPesquisa($strNomeParticipante); + + if ($numIdGrupoContato!=''){ + $objContatoDTO->setNumIdGrupoContato($numIdGrupoContato); + } + + + $objContatoDTO->setNumMaxRegistrosRetorno(50); + + $objContatoDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC); + + $objContatoRN = new ContatoRN(); + $arrObjContatoDTO = $objContatoRN->pesquisarRN0471($objContatoDTO); + + $ret = PesquisaUtil::preparaIdParticipantes($arrObjContatoDTO); + + return $ret; + + + + } + + public static function valiadarLink($strLink = null){ + + if ($strLink == null){ + $strLink = $_SERVER['REQUEST_URI']; + } + + $strLink = urldecode($strLink); + + if (trim($strLink == '')){ + return; + } + + $arrParametros = (array('id_orgao_acesso_externo','id_procedimento','id_documento')); + + foreach ($arrParametros as $strParametros){ + if(isset($_GET[$strParametros])){ + + if(trim($_GET[$strParametros]) == ''){ + throw new InfraException('Link externo inválido.'); + } + + if(!is_numeric($_GET[$strParametros])){ + throw new InfraException('Link externo inválido.'); + } + } + } + + $arrScriptFileName = (array('processo_exibir.php','documento_consulta_externa.php')); + + if(in_array(basename($_SERVER['SCRIPT_FILENAME']), $arrScriptFileName)){ + if(!isset($_GET['acao_externa']) || trim($_GET['acao_externa'])==''){ + throw new InfraException('Link externo inválido.'); + } + + if(!isset($_GET['id_orgao_acesso_externo'])){ + throw new InfraException('Link externo inválido.'); + } + } + + if (basename($_SERVER['SCRIPT_FILENAME']) == 'controlador_ajax_externo.php'){ + + if (!isset($_GET['acao_ajax_externo']) || trim($_GET['acao_ajax_externo'])==''){ + throw new InfraException('Link externo inválido.'); + } + + + $arrAcaoAjaxExterno = (array('contato_auto_completar_contexto_pesquisa','unidade_auto_completar_todas')); + + if (!in_array($_GET['acao_ajax_externo'], $arrAcaoAjaxExterno)) { + throw new InfraException('Link externo inválido.'); + } + } + + } + + private static function preparaIdParticipantes($arrObjContatoDTO){ + $strIdParticipante = ''; + if(!empty($arrObjContatoDTO) && count($arrObjContatoDTO) == 1){ + $strIdParticipante = $strIdParticipante.'id_int:*'.$arrObjContatoDTO[0]->getNumIdContato().'* AND '; + } + else if (!empty($arrObjContatoDTO) && count($arrObjContatoDTO) > 1){ + $count = 0; + $strIdParticipante = 'id_int:('; + for($i=0;$i < count($arrObjContatoDTO); $i++){ + $count = $count + 1; + $strIdParticipante = $strIdParticipante.'*'.$arrObjContatoDTO[$i]->getNumIdContato().'*'; + if($count < count($arrObjContatoDTO)){ + $strIdParticipante = $strIdParticipante.' OR '; + } + + if($count == count($arrObjContatoDTO)){ + $strIdParticipante = $strIdParticipante.') AND '; + } + } + +// foreach ($arrObjContatoDTO as $objContatoDTO){ +// $strIdParticipante = $strIdParticipante.'*'.$objContatoDTO->getNumIdContato().'*'; +// if(end(array_keys($arrObjContatoDTO->NumIdContato())) == $objContatoDTO->NumIdContato()){ +// $strIdParticipante = $strIdParticipante.' OR '; +// } +// } + } + + return $strIdParticipante; + + } + +} + +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/SolrUtilExterno.php b/sei/web/modulos/pesquisa/SolrUtilExterno.php new file mode 100644 index 0000000..0c91c72 --- /dev/null +++ b/sei/web/modulos/pesquisa/SolrUtilExterno.php @@ -0,0 +1,209 @@ +0){ + if (!in_array($arrPalavrasQ[$i-1],array('AND','OR','AND NOT','(')) && !in_array($arrPalavrasQ[$i],array('AND','OR','AND NOT',')'))){ + $ret .= " AND"; + } + } + $ret .= ' '.$arrPalavrasQ[$i]; + } + + $ret = str_replace(" AND AND NOT "," AND NOT ", $ret); + + if (substr($ret,0,strlen(" AND NOT "))==" AND NOT "){ + $ret = substr($ret, strlen(" AND NOT ")); + $ret = 'NOT '. $ret; + } + + if (substr($ret,0,strlen(" AND "))==" AND "){ + $ret = substr($ret, strlen(" AND ")); + } + + if (substr($ret,0,strlen(" OR "))==" OR "){ + $ret = substr($ret, strlen(" OR ")); + } + + if (substr($ret,strlen(" AND")*-1)==" AND"){ + $ret = substr($ret,0, strlen(" AND")*-1); + } + + if (substr($ret,strlen(" OR")*-1)==" OR"){ + $ret = substr($ret,0, strlen(" OR")*-1); + } + + if (substr($ret,strlen(" AND NOT")*-1)==" AND NOT"){ + $ret = substr($ret,0, strlen(" AND NOT")*-1); + } + + return $ret; + } + + public static function criarBarraEstatisticas($total,$inicio,$fim) { + return "
".self::obterTextoBarraEstatisticas($total,$inicio,$fim)."
"; + } + + public static function obterTextoBarraEstatisticas($total,$inicio,$fim) { + $ret = ''; + if ($total > 0 && $total != "") { + if ($total < $fim) { + $ret .= $total.' resultado'.($total>1?'s':''); + } else { + $ret .= "Exibindo " . ($inicio+1) . " - " . $fim . " de " . $total; + } + } + return $ret; + } + + //Cria a navegacao completa + public static function criarBarraNavegacao($totalRes, $inicio, $numResPorPag, $objPagina, $objSessao, $md5Captcha = null, $strControlador = 'processo_pesquisar.php' ) + { + + if ($totalRes == 0) + return; + + $nav = "
"; + + $paginaAtual = $inicio / $numResPorPag + 1; + + $urlSemInicio = $strControlador.'?acao_externa='.$_GET['acao_externa']."&acao_origem_externa=protocolo_pesquisar_paginado"; + + $hash = (!is_null($md5Captcha)) ? "&hash=".$md5Captcha : ""; + + if ($inicio != null ) { + $nav .= "formatarXHTML($objSessao->assinarLink($urlSemInicio . "&inicio=" . ($inicio - $numResPorPag) . $hash)) . "')\">Anterior\n"; + } + + if ($totalRes > $numResPorPag) + { + $numPagParaClicar = 12; + + if (ceil($totalRes / $numResPorPag) > $numPagParaClicar) + { + $iniNav = ($paginaAtual - floor(($numPagParaClicar - 1) / 2)) - 1; + $fimNav = ($paginaAtual + ceil(($numPagParaClicar - 1) / 2)); + + if ($iniNav < 0) + { + $iniNav = 0; + $fimNav = $numPagParaClicar; + } + + if ($fimNav > ceil($totalRes / $numResPorPag)) + { + $fimNav = ceil($totalRes / $numResPorPag); + $iniNav = $fimNav - $numPagParaClicar; + } + } + else + { + $iniNav = 0; + $fimNav = ceil($totalRes / $numResPorPag); + } + + for ($i = $iniNav; $i < $fimNav; $i++) + { + if ($inicio == 0 AND $i == 0){ + $nav .= " " . ($i + 1) . " "; + }elseif (($i + 1) == ($inicio / $numResPorPag + 1)){ + $nav .= " " . ($i + 1) . " "; + }else{ + $nav .= " formatarXHTML($objSessao->assinarLink($urlSemInicio . "&inicio=" . ($i * $numResPorPag)))) . $hash . "')\">" . ($i + 1) . "\n"; + } + } + } + + if (($inicio / $numResPorPag) + 1 != ceil($totalRes / $numResPorPag)) { + $nav .= "formatarXHTML($objSessao->assinarLink($urlSemInicio . "&inicio=" . ($inicio + $numResPorPag))) . $hash . "')\">Próxima\n"; + } + + $nav .= "
"; + + return $nav; + } + + public static function prepararUrl($url){ + $pos = strpos($url,'controlador.php'); + if ($pos !== false){ + $url = ConfiguracaoSEI::getInstance()->getValor('SEI','URL').substr($url,$pos); + }else{ + $pos = strpos($url,'/publicacoes/controlador_publicacoes.php'); + if ($pos !== false){ + $url = ConfiguracaoSEI::getInstance()->getValor('SEI','URL').substr($url,$pos); + } + } + + if (ConfiguracaoSEI::getInstance()->getValor('SessaoSEI','https')){ + $url = str_replace('http://','https://',$url); + } + + return $url; + } + + public static function obterTag($reg, $tag, $tipo){ + $ret = $reg->xpath($tipo.'[@name=\''.$tag.'\']'); + if (isset($ret[0])){ + $ret = utf8_decode($ret[0]); + }else{ + $ret = null; + } + return $ret; + } +} +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/ajuda_exibir_externo.php b/sei/web/modulos/pesquisa/ajuda_exibir_externo.php new file mode 100644 index 0000000..efae0b2 --- /dev/null +++ b/sei/web/modulos/pesquisa/ajuda_exibir_externo.php @@ -0,0 +1,58 @@ +setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + + //SessaoSEIExterna::getInstance()->validarLink(); + + PesquisaUtil::valiadarLink(); + + // SessaoSEI::getInstance()->validarPermissao($_GET['acao']); + + $strNomeArquivo = ''; + + switch($_GET['acao_externa']){ + + case 'pesquisa_solr_ajuda_externa': + $strConteudo = file_get_contents('../../ajuda/ajuda_solr.html'); + break; + + case 'pesquisa_fts_ajuda_externa': + $strConteudo = file_get_contents('../../ajuda/ajuda_fts.html'); + break; + + case 'assinatura_digital_ajuda_externa': + $strConteudo = file_get_contents('../../ajuda/assinatura_digital_ajuda.html'); + $strConteudo = str_replace('[servidor]', ConfiguracaoSEI::getInstance()->getValor('SEI','URL'), $strConteudo); + break; + + default: + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida."); + } + + header('Content-Type: text/html; charset=iso-8859-1'); + header('Vary: Accept'); + header('Cache-Control: no-cache, must-revalidate'); + header('Pragma: no-cache'); + + echo $strConteudo; + +}catch(Exception $e){ + die('Erro realizando download do anexo:'.$e->__toString()); +} +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/bd/ParametroPesquisaBD.php b/sei/web/modulos/pesquisa/bd/ParametroPesquisaBD.php new file mode 100644 index 0000000..3cc39fa --- /dev/null +++ b/sei/web/modulos/pesquisa/bd/ParametroPesquisaBD.php @@ -0,0 +1,19 @@ + diff --git a/sei/web/modulos/pesquisa/bd/ProcedimentoSiscadeBD.php b/sei/web/modulos/pesquisa/bd/ProcedimentoSiscadeBD.php new file mode 100644 index 0000000..48a2bd8 --- /dev/null +++ b/sei/web/modulos/pesquisa/bd/ProcedimentoSiscadeBD.php @@ -0,0 +1,157 @@ + + */ + +/** + * Classe Banco de dados Procedimento siscade. + * + * + * @package institucional_pesquisa_ProcedimentoSiscadeBD + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + +require_once dirname(__FILE__).'/../../../SEI.php'; + +class ProcedimentoSiscadeBD extends InfraBD { + + private $sqlProcedimentoParte = 'select distinct(pro.NR_PROCEDIMENTO), pro.TX_RESUMO, esp.NM_ESPECIE, pro.ID_CONFIDENCIALIDADE from S_PROCEDIMENTO pro + inner join S_ESPECIE esp on esp.ID_ESPECIE = pro.ID_ESPECIE + inner join S_PROCEDIMENTO_PARTE par on par.ID_PROCEDIMENTO = pro.ID_PROCEDIMENTO + left join S_PESSOA_FISICA fis on fis.ID_PESSOAFISICA = par.ID_PESSOAFISICA + left join S_PESSOA_JURIDICA jus on jus.ID_PESSOAJURIDICA = par.ID_PESSOAJURIDICA + left join S_ENTE_ADMINISTRATIVO ent on ent.ID_ENTEADMINISTRATIVO = par.ID_ENTEADMINISTRACAO'; + + private $operadorWhere = ' where '; + + public function __construct(InfraIBanco $objInfraIBanco){ + parent::__construct($objInfraIBanco); + } + + public function contarProcedimentoParte(ProcedimentoSiscadeDTO $objProcedimentoSiscadeDTO){ + + try { + + $where = $this->operadorWhere; + + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento())){ + $proNumero = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNrProcedimento().'%'); + $where .= "pro.NR_PROCEDIMENTO like '{$proNumero}'"; + + } + + + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento()) && !InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){ + $where .= ' and '; + } + + + + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){ + $nomeParte = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNomeParte().'%'); + $where .= " (fis.NM_NOME like '{$nomeParte}' or jus.NM_NOME like '{$nomeParte}' or ent.NM_DENOMINACAO like '{$nomeParte}') "; + + } + + $where .= ' and pro.ID_CONFIDENCIALIDADE = 1'; + + $sql = 'select count(*) as total from ( '.$this->sqlProcedimentoParte.$where.' ) as procedimento'; + + + $rs = $this->getObjInfraIBanco()->consultarSql($sql); + + return $rs[0]['total']; + + } catch (Exception $e) { + throw new InfraException('Erro contando procedimento Siscade',$e); + } + } + + public function listarPaginadoProcedimentoParte(ProcedimentoSiscadeDTO $objProcedimentoSiscadeDTO){ + + + + + try { + + $where = $this->operadorWhere; + + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento())){ + $proNumero = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNrProcedimento().'%'); + + + $where .= "pro.NR_PROCEDIMENTO like '{$proNumero}'"; + + + } + + ; + + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento()) && !InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){ + $where .= ' and '; + } + + + + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){ + $nomeParte = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNomeParte().'%'); + $where .= " (fis.NM_NOME like '{$nomeParte}' or jus.NM_NOME like '{$nomeParte}' or ent.NM_DENOMINACAO like '{$nomeParte}') "; + + } + + //condição de confidencialidade + + $where .= ' and pro.ID_CONFIDENCIALIDADE = 1'; + + $sql = $this->sqlProcedimentoParte.$where.' order by pro.NR_PROCEDIMENTO'; + + + $ini = ($objProcedimentoSiscadeDTO->getNumPaginaAtual() * $objProcedimentoSiscadeDTO->getNumMaxRegistrosRetorno() ); + $qtd = $objProcedimentoSiscadeDTO->getNumMaxRegistrosRetorno(); + + $rs = $this->getObjInfraIBanco()->paginarSql($sql,$ini,$qtd); + + $arrObjProcedimentoSiscadeDTO = array(); + + + for($i = 0; $i < count($rs[registrosPagina]); $i++){ + $objProcedimentoSiscadeDTO = new ProcedimentoSiscadeDTO(); + $objProcedimentoSiscadeDTO->setStrNrProcedimento($rs[registrosPagina][$i]['NR_PROCEDIMENTO']); + $objProcedimentoSiscadeDTO->setStrTxResumo($rs[registrosPagina][$i]['TX_RESUMO']); + $objProcedimentoSiscadeDTO->setStrNmEspecie($rs[registrosPagina][$i]['NM_ESPECIE']); + $arrObjProcedimentoSiscadeDTO[] = $objProcedimentoSiscadeDTO; + } + + return $arrObjProcedimentoSiscadeDTO; + + + + } catch (Exception $e) { + throw new InfraException('Erro listando procedimento Siscade',$e); + } + } + + +} + + +?> + + diff --git a/sei/web/modulos/pesquisa/bd/ProcessoBD.php b/sei/web/modulos/pesquisa/bd/ProcessoBD.php new file mode 100644 index 0000000..3caa85a --- /dev/null +++ b/sei/web/modulos/pesquisa/bd/ProcessoBD.php @@ -0,0 +1,188 @@ + + */ + +/** + * Classe de Banco de dados da tabela processo DBCade. + * + * + * @package institucional_pesquisa_ProcessoBD + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + + +require_once dirname(__FILE__).'/../../../SEI.php'; + +class ProcessoBD extends InfraBD { + + private $sqlRepresentada = 'select distinct(pro.pro_codigo), pro.pro_numero, CAST(pro.pro_sumula AS varchar(1000)) as pro_sumula, tip.tippro_nome + from processos pro inner join processoXrepresentada representada + on pro.pro_codigo = representada.pro_codigo + inner join pessoas pes + on representada.pes_codigo = pes.pes_codigo + inner join tipos_processos tip + on tip.tippro_codigo = pro.tippro_codigo '; + + private $sqlRepresentante = 'select distinct(pro.pro_codigo), pro.pro_numero, CAST(pro.pro_sumula AS varchar(1000)) as pro_sumula, tip.tippro_nome + from processos pro inner join processoXrepresentante representante + on pro.pro_codigo = representante.pro_codigo + inner join pessoas pes + on representante.pes_codigo = pes.pes_codigo + inner join tipos_processos tip + on tip.tippro_codigo = pro.tippro_codigo '; + + private $sqlRequerente = 'select distinct(pro.pro_codigo), pro.pro_numero, CAST(pro.pro_sumula AS varchar(1000)) as pro_sumula , tip.tippro_nome + from processos pro inner join processoXrequerente requerente + on pro.pro_codigo = requerente.pro_codigo + inner join pessoas pes + on requerente.pes_codigo = pes.pes_codigo + inner join tipos_processos tip + on tip.tippro_codigo = pro.tippro_codigo '; + + private $operadoUnion = ' union '; + + private $operadorWhere = ' where '; + + + + public function __construct(InfraIBanco $objInfraIBanco){ + parent::__construct($objInfraIBanco); + } + + + public function contarPronumeroParte(ProcessoDTO $objProcessoDTO){ + + try { + + $where = $this->operadorWhere; + + + if (!InfraString::isBolVazia($objProcessoDTO->getStrProNumero())){ + $proNumero = (string)addslashes('%'.$objProcessoDTO->getStrProNumero().'%'); + $where .= "pro.pro_numero like '{$proNumero}'"; + + } + + + if(!InfraString::isBolVazia($objProcessoDTO->getStrProNumero()) && !InfraString::isBolVazia($objProcessoDTO->getNomeParte())){ + $where .= ' and '; + } + + if(!InfraString::isBolVazia($objProcessoDTO->getNomeParte())){ + $nomeParte = (string)addslashes('%'.$objProcessoDTO->getNomeParte().'%'); + $where .= "pes.pes_nome like '{$nomeParte}'"; + } + + + $sql = 'select count(*) as total from ( '. + $this->sqlRepresentada . $where . $this->operadoUnion . + $this->sqlRepresentante . $where . $this->operadoUnion . + $this->sqlRequerente . $where . ' ) as pro_partes '; + + + $rs = $this->getObjInfraIBanco()->consultarSql($sql); + + + + return $rs[0]['total']; + + + + + } catch (Exception $e) { + throw new InfraException('Error contando processos DBCade',$e); + } + } + + + public function listarPaginadoPronumeroParte(ProcessoDTO $objProcessoDTO){ + + try { + + + + $where = $this->operadorWhere; + + + if (!InfraString::isBolVazia($objProcessoDTO->getStrProNumero())){ + $proNumero = (string)addslashes('%'.$objProcessoDTO->getStrProNumero().'%'); + $where .= "pro.pro_numero like '{$proNumero}'"; + + } + + + if(!InfraString::isBolVazia($objProcessoDTO->getStrProNumero()) && !InfraString::isBolVazia($objProcessoDTO->getNomeParte())){ + $where .= ' and '; + } + + if(!InfraString::isBolVazia($objProcessoDTO->getNomeParte())){ + $nomeParte = (string)addslashes('%'.$objProcessoDTO->getNomeParte().'%'); + $where .= "pes.pes_nome like '{$nomeParte}'"; + } + + $inicioPaginacao = ($objProcessoDTO->getNumPaginaAtual() * $objProcessoDTO->getNumMaxRegistrosRetorno() ) + 1; + $numRegistro = ($objProcessoDTO->getNumMaxRegistrosRetorno() * $objProcessoDTO->getNumPaginaAtual()) + $objProcessoDTO->getNumMaxRegistrosRetorno(); + $sql = 'select identity(int,1,1) as InfraRowNumber, * INTO #InfraTabela FROM ( '. + $this->sqlRepresentada . $where . $this->operadoUnion . + $this->sqlRepresentante . $where . $this->operadoUnion . + $this->sqlRequerente . $where . ' ) ' . + 'as InfraTabela ORDER BY pro_numero ASC select *, + (select count(*) from #InfraTabela ) as InfraRowCount + from #InfraTabela where InfraRowNumber BETWEEN '. $inicioPaginacao . ' AND '. $numRegistro .' ORDER BY InfraRowNumber + drop table #InfraTabela'; + + + + + $rs = $this->getObjInfraIBanco()->consultarSql($sql); + + $arrObjProcessoDTO = array(); + + for($i = 0; $i < count($rs); $i++){ + $objProcessoDTO = new ProcessoDTO(); + $objProcessoDTO->setStrProNumero($rs[$i]['pro_numero']); + $objProcessoDTO->setStrProSumula($rs[$i]['pro_sumula']); + $objProcessoDTO->setStrTipproNome($rs[$i]['tippro_nome']); + $objProcessoDTO->setNumProCodigo($rs[$i]['pro_codigo']); + $arrObjProcessoDTO[] = $objProcessoDTO; + } + + + return $arrObjProcessoDTO; + + + + + + + + + } catch (Exception $e) { + throw new InfraException('Error listando processos DBCade',$e); + } + } + + +} + + +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/controlador_ajax_externo.php b/sei/web/modulos/pesquisa/controlador_ajax_externo.php new file mode 100644 index 0000000..0d7ee97 --- /dev/null +++ b/sei/web/modulos/pesquisa/controlador_ajax_externo.php @@ -0,0 +1,92 @@ + + */ + +/** + * Arquivo para realizar controle requisição ajax. + * + * + * @package institucional_pesquisa_controlador_ajax_externo + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * a @author e @copyright que devem ser mantidas inalteradas! + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + +try{ + require_once dirname(__FILE__).'/../../SEI.php'; + + //session_start(); + + //SessaoSEIExterna::getInstance()->validarLink(); + + //infraTratarErroFatal(SessaoSEIExterna::getInstance(),'controlador_externo.php?acao=infra_erro_fatal_logar'); + + InfraAjax::decodificarPost(); + //Verificar + SessaoSEIExterna::getInstance()->validarSessao(); + PesquisaUtil::valiadarLink(); + + + switch($_GET['acao_ajax_externo']){ + + case 'contato_auto_completar_contexto_pesquisa': + + //alterado para atender anatel exibir apenas nome contato + $objContatoDTO = new ContatoDTO(); + $objContatoDTO->retNumIdContato(); + $objContatoDTO->retStrSigla(); + $objContatoDTO->retStrNome(); + + $objContatoDTO->setStrPalavrasPesquisa($_POST['palavras_pesquisa']); + + if ($numIdGrupoContato!=''){ + $objContatoDTO->setNumIdGrupoContato($_POST['id_grupo_contato']); + } + + + $objContatoDTO->setNumMaxRegistrosRetorno(50); + $objContatoDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC); + + $objContatoRN = new ContatoRN(); + + $arrObjContatoDTO = $objContatoRN->pesquisarRN0471($objContatoDTO); + +// $arrObjContatoDTO = ContatoINT::autoCompletarContextoPesquisa($_POST['palavras_pesquisa'],$_POST['id_grupo_contato']); + $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjContatoDTO,'IdContato', 'Nome'); + break; + + + case 'unidade_auto_completar_todas': + $arrObjUnidadeDTO = UnidadeINT::autoCompletarUnidades($_POST['palavras_pesquisa'],true,$_POST['id_orgao']); + $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjUnidadeDTO,'IdUnidade', 'Sigla'); + break; + + default: + throw new InfraException("Ação '".$_GET['acao_ajax_externo']."' não reconhecida pelo controlador AJAX externo."); + } + + + InfraAjax::enviarXML($xml); + +}catch(Exception $e){ + //LogSEI::getInstance()->gravar('ERRO AJAX: '.$e->__toString()); + InfraAjax::processarExcecao($e); +} +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/css/infra-esquema-local.css b/sei/web/modulos/pesquisa/css/infra-esquema-local.css new file mode 100644 index 0000000..f08c5af --- /dev/null +++ b/sei/web/modulos/pesquisa/css/infra-esquema-local.css @@ -0,0 +1,243 @@ +div.infraAreaGlobal{ +width: 98% !important; +} + +div.infraBarraSistemaD{ +padding-top:1em; +} + +.protocoloAberto { +color:green; +} + +.protocoloFechado { +color:red; +} + +.protocoloNormal, +.protocoloAberto, +.protocoloFechado, +.linkFuncionalidade { +text-decoration:none; +padding:.5em; +font-size:1.2em !important; +} + +a.protocoloNormal:hover, +a.protocoloAberto:hover, +a.protocoloFechado:hover, +a.linkFuncionalidade:hover{ +text-decoration:underline; +} + +a.ancoraOpcao{ +color:black; +display:block; +text-decoration:none; +padding:.1em .2em .1em .2em; +width:100%; +} + +div.infraRotuloMenu, +div.infraSetaMenu{ +color:black; +} + + +div.infraMenu a{ +background-color:#c7c7c7; +} + + +div.infraMenu a:hover{ +background-color:white; +border:.1em solid #dfdfdf; +} + +div.tituloProcessoDocumento { +padding-top:0.4em; +padding-bottom:0.4em; +text-align:center; +vertical-align:middle; +width:100%; +color:#666; +background-color:#dfdfdf; +border-bottom:.6em solid white; +overflow:hidden; +} + +div.tituloProcessoDocumento label { +font-size:1.4em; +font-weight:bold; +color:#666; +background-color:#dfdfdf; +} + +img.botaoSEI{ +margin:.1em; +border:.1em solid white; +height:4em !important; +width:4em !important; +} + +img.botaoSEI:hover { +border:.1em solid black; +} + +a.ancoraSigla{ + /* color:#0000CC; */ + text-decoration:none; + font-size:1em; +} + +a.ancoraSigla:hover{ + text-decoration:underline; +} + +a.ancoraPadraoAzul{ +padding:0 .5em 0 .5em; +text-decoration:none; +font-size:1.2em; +color: #0066CC; +} + +a.ancoraPadraoPreta{ +padding:0 .5em 0 .5em; +text-decoration:none; +font-size:1.2em; +color: black; +} + +a.ancoraPadraoAzul:hover, +a.ancoraPadraoPreta:hover{ +text-decoration:underline; +} + + +fieldset.infraFieldset{ +border:.1em solid black; +} + +legend.infraLegend{ +background-color:#e5e5e5; +color:black; +border:.1em solid black; +} + +label.infraLabelOpcional, +label.infraLabelObrigatorio, +label.infraLabelCheckbox, +label.infraLabelRadio{ +color:black; +} + +label.infraLabelObrigatorio span.infraTeclaAtalho{ +color:black; +} + +label.infraLabelOpcional span.infraTeclaAtalho{ +color:black; +} + +span.infraTeclaAtalho{ +color:black; +} + +a.ancoraHistoricoProcesso{ +font-size:1em; +} + +a.ancoraVisualizacaoDocumento{ +font-size:1em; +} + +input.infraButton, button.infraButton{ +border-color: #666 #666 #666 #666; +color:black; +} + +input.infraButton span.infraTeclaAtalho, +button.infraButton span.infraTeclaAtalho{ +color:black; +} + +label.infraLabelObrigatorio span.infraTeclaAtalho{ +color:black; +} + +.divItemCelula{ + padding:.2em 0 .2em 0; +} + +span.spanItemCelula{ + float:left; + border:.1em solid transparent; +} + +.divDiamante{ + float:left; + width:5%; + border:.1em solid transparent; +} + + +table.infraTable img.infraImg, +table.infraTable img.infraImgNormal, +table.infraTable img.infraImgOpaca{ +padding:0 .2em 0 .2em; +} + +caption.infraCaption{ +color: black; +} + +tr.totalEstatisticas { +background-color:#ffffdd; +} + +td.totalEstatisticas { +background-color:#ffffdd; +} + +div.divAreaGrafico { +float:left; +/* width:100%; */ +overflow:auto !important; +padding-top:.5em; +padding-bottom:1.5em; +font-size:1.2em; +} + +/* ******************** */ +.infraDivCheckbox{ +} + +.infraDivRadio{ +} + +.infraDivCheckbox input, +.infraDivRadio input{ +float:left; +} + +.infraDivCheckbox label, +.infraDivRadio label{ +float:left; +padding-left:.2em; +} + +.infraDivCheckbox label{ +line-height:1.8em; +} + +.infraDivRadio label{ +line-height:1.6em; +} + +tr.trVermelha{ +background-color:#f59f9f; +} + +button.buttonWorkflow{ +border: .1em solid red; +} diff --git a/sei/web/modulos/pesquisa/documento_consulta_externa.php b/sei/web/modulos/pesquisa/documento_consulta_externa.php new file mode 100644 index 0000000..cf183ab --- /dev/null +++ b/sei/web/modulos/pesquisa/documento_consulta_externa.php @@ -0,0 +1,280 @@ +validarSessao(); + //session_start(); + + ////////////////////////////////////////////////////////////////////////////// + //InfraDebug::getInstance()->setBolLigado(false); + //InfraDebug::getInstance()->setBolDebugInfra(false); + //InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + ConverteURI::converterURI(); + PesquisaUtil::valiadarLink(); +// if (isset($_GET['id_acesso_externo'])){ +// SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink(); +// }else{ +// // SessaoSEIExterna::getInstance()->validarLink(); +// } + + $objParametroPesquisaDTO = new ParametroPesquisaDTO(); + $objParametroPesquisaDTO->retStrNome(); + $objParametroPesquisaDTO->retStrValor(); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); + + $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); + + $bolListaDocumentoProcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; + $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; + + $objDocumentoDTO = new DocumentoDTO(); + $objDocumentoDTO->retDblIdDocumento(); + $objDocumentoDTO->retDblIdProcedimento(); + $objDocumentoDTO->retStrConteudo(); + $objDocumentoDTO->retStrNomeSerie(); + $objDocumentoDTO->retStrStaDocumento(); + $objDocumentoDTO->retStrSiglaUnidadeGeradoraProtocolo(); + $objDocumentoDTO->retStrProtocoloDocumentoFormatado(); + $objDocumentoDTO->retStrStaProtocoloProtocolo(); + $objDocumentoDTO->retDblIdDocumentoEdoc(); + $objDocumentoDTO->retStrStaEstadoProtocolo(); + // $objDocumentoDTO->retStrSinAssinaturaBloqueada(); + $objDocumentoDTO->retNumIdUnidadeGeradoraProtocolo(); + $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo(); + $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo(); + $objDocumentoDTO->setDblIdDocumento($_GET['id_documento']); + + $objDocumentoRN = new DocumentoRN(); + $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); + + + + if ($objDocumentoDTO==null){ + die('Documento não encontrado.'); + } + + if(!$bolListaDocumentoProcessoPublico){ + die('Documento não encontrado'); + } + + $objProtocoloProcedimentoDTO = new ProtocoloDTO(); + $objProtocoloProcedimentoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); + $objProtocoloProcedimentoDTO->retStrStaNivelAcessoLocal(); + $objProtocoloProcedimentoDTO->retStrStaNivelAcessoGlobal(); + + $objProtocoloRN = new ProtocoloRN(); + $objProtocoloProcedimentoDTO = $objProtocoloRN->consultarRN0186($objProtocoloProcedimentoDTO); + + if($objProtocoloProcedimentoDTO != null && $objProtocoloProcedimentoDTO->getStrStaNivelAcessoLocal() != ProtocoloRN::$NA_PUBLICO){ + die('Documento não encontrado.'); + } + + if ($objDocumentoDTO->getStrStaEstadoProtocolo()==ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' foi cancelado.'); + } + + if(!$bolListaDocumentoProcessoRestrito){ + if ($objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo()!= ProtocoloRN::$NA_PUBLICO){ + die('Documento não encontrado.'); + } + } + + + + if($bolListaDocumentoProcessoRestrito){ + + if($objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){ + + die('Documento não encontrado.'); + + } + } + + // Exibe apenas documentos de processos públicos. + + + //Carregar dados do cabeçalho + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); + $objProcedimentoDTO->setStrSinDocTodos('S'); + $objProcedimentoDTO->setArrDblIdProtocoloAssociado(array($objDocumentoDTO->getDblIdDocumento())); + + $objProcedimentoRN = new ProcedimentoRN(); + $arr = $objProcedimentoRN->listarCompleto($objProcedimentoDTO); + + if (count($arr)==0){ + die('Processo não encontrado.'); + } + + $objAcessoExternoRN = new AcessoExternoRN(); + + $objProcedimentoDTO = $arr[0]; + $bolFlag = false; + foreach($objProcedimentoDTO->getArrObjDocumentoDTO() as $dto){ + if ($dto->getDblIdDocumento() == $objDocumentoDTO->getDblIdDocumento()){ + if (SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno()==null){ + if (!$objDocumentoRN->verificarSelecaoAcessoExterno($dto)){ + if ($dto->getStrStaProtocoloProtocolo()==ProtocoloRN::$TP_DOCUMENTO_GERADO && $dto->getStrSinAssinado()=='N'){ + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' ainda não foi assinado.'); + }else{ + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' não está disponível para visualização externa.'); + } + } + }else{ + + if (!$objDocumentoRN->verificarSelecaoAcessoExterno($dto)){ + + if ($dto->getStrStaProtocoloProtocolo()!=ProtocoloRN::$TP_DOCUMENTO_GERADO){ + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' não está disponível para visualização externa.'); + }else{ + + $objAcessoExternoDTO = new AcessoExternoDTO(); + $objAcessoExternoDTO->setDblIdDocumento($_GET['id_documento']); + $objAcessoExternoDTO->setNumIdAcessoExterno($_GET['id_acesso_externo_assinatura']); + + if ($objAcessoExternoRN->contar($objAcessoExternoDTO)==0){ + + if ($dto->getStrSinAssinado()=='N'){ + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' ainda não foi assinado.'); + }else{ + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' não está disponível para assinatura externa.'); + } + + } + } + } + + } + $bolFlag = true; + break; + } + } + + if (!$bolFlag){ + die('Documento não encontrado no processo.'); + } + + $strTitulo = $objDocumentoDTO->getStrNomeSerie().' '.$objDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo().' '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado(); + + if ($objDocumentoDTO->getStrStaDocumento()==DocumentoRN::$TD_EDITOR_EDOC){ + if ($objDocumentoDTO->getDblIdDocumentoEdoc()!=null){ + + $objDocumentoRN->bloquearAssinaturaVisualizada($objDocumentoDTO); + + $objEDocRN = new EDocRN(); + //echo EDocINT::montarVisualizacaoDocumento($objDocumentoDTO->getDblIdDocumentoEdoc()); + echo $objEDocRN->consultarHTMLDocumentoRN1204($objDocumentoDTO); + + }else{ + echo 'Documento sem conteúdo.'; + } + }else if ($objDocumentoDTO->getStrStaDocumento()==DocumentoRN::$TD_EDITOR_INTERNO){ + $objEditorDTO = new EditorDTO(); + $objEditorDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + $objEditorDTO->setNumIdBaseConhecimento(null); + $objEditorDTO->setStrSinCabecalho('S'); + $objEditorDTO->setStrSinRodape('S'); + $objEditorDTO->setStrSinIdentificacaoVersao('N'); + + $objEditorRN = new EditorRN(); + echo $objEditorRN->consultarHtmlVersao($objEditorDTO); + + }else if (isset($_GET['id_anexo'])){ + + $objDocumentoRN->bloquearAssinaturaVisualizada($objDocumentoDTO); + + $objAnexoDTO = new AnexoDTO(); + $objAnexoDTO->retNumIdAnexo(); + $objAnexoDTO->retStrNome(); + $objAnexoDTO->setNumIdAnexo($_GET['id_anexo']); + $objAnexoDTO->retDthInclusao(); + + $objAnexoRN = new AnexoRN(); + $objAnexoDTO = $objAnexoRN->consultarRN0736($objAnexoDTO); + + header("Pragma: public"); // required + header('Pragma: no-cache'); + header("Expires: 0"); + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0"); + header("Cache-Control: private","false"); // required for certain browsers + + PaginaSEIExterna::getInstance()->montarHeaderDownload($objAnexoDTO->getStrNome()); + + $fp = fopen($objAnexoRN->obterLocalizacao($objAnexoDTO), "rb"); + while (!feof($fp)) { + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO); + } + fclose($fp); + + + }else if ($objDocumentoDTO->getStrStaProtocoloProtocolo()==ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){ + + // $objDocumentoRN->bloquearAssinaturaVisualizada($objDocumentoDTO); + + + $objAnexoDTO = new AnexoDTO(); + $objAnexoDTO->retNumIdAnexo(); + $objAnexoDTO->retStrNome(); + $objAnexoDTO->retNumIdAnexo(); + $objAnexoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdDocumento()); + $objAnexoDTO->retDblIdProtocolo(); + $objAnexoDTO->retDthInclusao(); + + $objAnexoRN = new AnexoRN(); + $arrObjAnexoDTO = $objAnexoRN->listarRN0218($objAnexoDTO); + + if (count($arrObjAnexoDTO)!=1){ + $strResultado = ''; + }else{ + $objAnexoDTO = $arrObjAnexoDTO[0]; + + header("Pragma: public"); + header('Pragma: no-cache'); + header("Expires: 0"); + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0"); + header("Cache-Control: private","false"); + + PaginaSEI::getInstance()->montarHeaderDownload($objAnexoDTO->getStrNome()); + + $fp = fopen($objAnexoRN->obterLocalizacao($objAnexoDTO), "rb"); + while (!feof($fp)) { + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO); + } + fclose($fp); + + } + + }else{ + echo ''; + echo ''; + echo ':: '.PaginaSEIExterna::getInstance()->getStrNomeSistema().' - '.$strTitulo.' ::'; + echo ''; + echo ''; + //echo DocumentoINT::formatarExibicaoConteudo(DocumentoINT::$TV_HTML, $objDocumentoDTO->getStrConteudo(), PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(), 'documento_consulta_externa.php?id_acesso_externo='.$_GET['id_acesso_externo'].'&id_documento='.$_GET['id_documento']); + echo DocumentoExternoINT::formatarExibicaoConteudo(DocumentoINT::$TV_HTML, $objDocumentoDTO->getStrConteudo(), PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(), ''); + echo ''; + echo ''; + } + + $objDocumentoDTO->unSetStrConteudo(); + AuditoriaSEI::getInstance()->auditar('documento_consulta_externa',__FILE__,$objDocumentoDTO); + +}catch(Exception $e){ + try{ LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); }catch(Exception $e2){} + die('Erro consultando documento em acesso externo.'); +} +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/dto/ParametroPesquisaDTO.php b/sei/web/modulos/pesquisa/dto/ParametroPesquisaDTO.php new file mode 100644 index 0000000..e5bd143 --- /dev/null +++ b/sei/web/modulos/pesquisa/dto/ParametroPesquisaDTO.php @@ -0,0 +1,33 @@ +adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, + 'Nome', + 'nome'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, + 'Valor', + 'valor'); + + $this->configurarPK('Nome', InfraDTO::$TIPO_PK_INFORMADO); + + } + +} +?> diff --git a/sei/web/modulos/pesquisa/dto/ProtocoloPesquisaPublicaDTO.php b/sei/web/modulos/pesquisa/dto/ProtocoloPesquisaPublicaDTO.php new file mode 100644 index 0000000..2131996 --- /dev/null +++ b/sei/web/modulos/pesquisa/dto/ProtocoloPesquisaPublicaDTO.php @@ -0,0 +1,65 @@ + + */ + +/** + * Classe mantem dados processo DBCade. + * + * + * @package institucional_pesquisa_processo_pesquisar + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + + +require_once dirname(__FILE__).'/../../../SEI.php'; + +class ProtocoloPesquisaPublicaDTO extends InfraDTO { + + + + public function getStrNomeTabela(){ + return null; + } + + + + public function montar(){ + + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'NumeroSEI'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'TipoDocumento'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_DTA, 'Documento'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_DTA, 'Registro'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Unidade' ); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'StaAssociacao'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'DocumentoDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'ProcedimentoDTO'); + + + + + } + + + + + + +} diff --git a/sei/web/modulos/pesquisa/favicon.ico b/sei/web/modulos/pesquisa/favicon.ico new file mode 100644 index 0000000..9f6075c Binary files /dev/null and b/sei/web/modulos/pesquisa/favicon.ico differ diff --git a/sei/web/modulos/pesquisa/field.js b/sei/web/modulos/pesquisa/field.js new file mode 100644 index 0000000..6e81a4e --- /dev/null +++ b/sei/web/modulos/pesquisa/field.js @@ -0,0 +1,275 @@ +function partialFields() { + var contador; + var erro = false; + var idUnidadeAberto; + var mtName; + var mtValue; + var partFields = document.getElementById("partialfields"); + for (x = 0; x < mt.length; x++) { + mtName = mt[x][0]; + if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "input") + mtValue = utf8Encode(formatarCaracteresEspeciais(removerAcentos(trim(document + .getElementById(mt[x][1]).value)))); + else if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "select") { + mtValue = utf8Encode(trim(document.getElementById(mt[x][1]).options[document + .getElementById(mt[x][1]).selectedIndex].value)); + } + switch (mtName) { + case "protocolo_formatado_pesquisa": + mtValue = mtValue.replace(/[^0-9]/g, ""); + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + partFields.value += mtName + ":*;" + mtValue + ";*"; + } + break; + default: + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") { + var bolCampoMultiplo = false; + if (mtName == 'id_participante' || mtName == 'id_assunto' + || mtName == 'id_unidade_acesso' + || mtName == 'id_unidade_aberto' + || mtName == 'id_assinante') { + bolCampoMultiplo = true; + } + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + if (bolCampoMultiplo) { + if(mtName == 'id_participante'){ + partFields.value += mtName + ":(" + mtValue + ")"; + }else{ + partFields.value += mtName + ":*" + mtValue + "*"; + } + } else { + + if(mtName == 'id_participante'){ + partFields.value += mtName + ":(" + mtValue +")"; + }else{ + partFields.value += mtName + ":" + mtValue; + } + + + } + } + break; + } + } + // SIGLAS DOS USU�RIOS + var strVerificacao = removerAcentos(trim(document + .getElementById("hdnSiglasUsuarios").value)); + if (strVerificacao != '') { + var siglas = strVerificacao.split(','); + if (siglas.length > 0) { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + partFields.value += "(sigla_usuario_gerador:" + + siglas.join(" OR sigla_usuario_gerador:") + ")"; + } + } + // CHECKBOX DO PESQUISAR EM + for (contador = 0; contador < mtCheckbox.length; contador += 1) { + var campo; + var campos; + var dados = []; + for (campos = 1; campos < mtCheckbox[contador].length; campos += 1) { + campo = document.getElementById(mtCheckbox[contador][campos]); + if (campo.checked) { + dados.push(campo.value); + } + } + if (dados.length > 0) { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + partFields.value += mtCheckbox[contador][0] + ":" + dados.join(";"); + } + } + var dataInicio = infraTrim(document.getElementById('txtDataInicio').value); + var dataFim = infraTrim(document.getElementById('txtDataFim').value); + if (dataInicio != '' || dataFim != '') { + if (dataInicio != '' + && !infraValidarData(document.getElementById('txtDataInicio'))) { + return false; + } + if (dataFim != '' + && !infraValidarData(document.getElementById('txtDataFim'))) { + return false; + } + if (dataInicio != '' && dataFim != '' + && infraCompararDatas(dataInicio, dataFim) < 0) { + alert('Per�odo de datas inv�lido.'); + document.getElementById('txtDataInicio').focus(); + return false; + } + var dia1 = dataInicio.substr(0, 2); + var mes1 = dataInicio.substr(3, 2); + var ano1 = dataInicio.substr(6, 4); + var dia2 = dataFim.substr(0, 2); + var mes2 = dataFim.substr(3, 2); + var ano2 = dataFim.substr(6, 4); + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + if (dataInicio != '' && dataFim != '') { + partFields.value += 'dta_geracao:[' + ano1 + '-' + mes1 + '-' + + dia1 + 'T00:00:00Z TO ' + ano2 + '-' + mes2 + '-' + dia2 + + 'T00:00:00Z]'; + } else if (dataInicio != '') { + partFields.value += 'dta_geracao:"' + ano1 + '-' + mes1 + '-' + + dia1 + 'T00:00:00Z"'; + } else { + partFields.value += 'dta_geracao:"' + ano2 + '-' + mes2 + '-' + + dia2 + 'T00:00:00Z"'; + } + } + return true; +} + + +function partialFieldsAutoCompletarInteressado() { + var contador; + var erro = false; + var idUnidadeAberto; + var mtName; + var mtValue; + var partFields = document.getElementById("partialfields"); + + for (x = 0; x < mt.length; x++) { + mtName = mt[x][0]; + + if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "input") + mtValue = utf8Encode(formatarCaracteresEspeciais(removerAcentos(trim(document.getElementById(mt[x][1]).value)))); + else if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "select") { + mtValue = utf8Encode(trim(document.getElementById(mt[x][1]).options[document.getElementById(mt[x][1]).selectedIndex].value)); + } + + switch (mtName) { + + case "protocolo_formatado_pesquisa": + + mtValue = mtValue.replace(/[^0-9]/g, ""); + + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + partFields.value += mtName + ":*;" + mtValue +";*"; + } + break; + + default: + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") { + + var bolCampoMultiplo = false; + + if (mtName == 'id_participante' || + mtName == 'id_assunto' || + mtName == 'id_unidade_acesso' || + mtName == 'id_unidade_aberto' || + mtName == 'id_assinante'){ + + bolCampoMultiplo = true; + } + + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + if (bolCampoMultiplo){ + partFields.value += mtName + ":*" + mtValue + "*"; + }else{ + partFields.value += mtName + ":" + mtValue; + } + + } + + break; + } + + + } + + + // SIGLAS DOS USU�RIOS + var strVerificacao = removerAcentos(trim(document.getElementById("hdnSiglasUsuarios").value)); + + if (strVerificacao != ''){ + + var siglas = strVerificacao.split(','); + + if (siglas.length > 0) { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + partFields.value += "(sigla_usuario_gerador:" + siglas.join(" OR sigla_usuario_gerador:") + ")"; + } + } + + // CHECKBOX DO PESQUISAR EM + + for (contador = 0; contador < mtCheckbox.length; contador += 1) { + var campo; + var campos; + var dados = []; + + for (campos = 1; campos < mtCheckbox[contador].length; campos += 1) { + campo = document.getElementById(mtCheckbox[contador][campos]); + + if (campo.checked) { + dados.push(campo.value); + } + } + + if (dados.length > 0) { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + + partFields.value += mtCheckbox[contador][0] + ":" + dados.join(";"); + } + } + + var dataInicio = infraTrim(document.getElementById('txtDataInicio').value); + var dataFim = infraTrim(document.getElementById('txtDataFim').value); + + if (dataInicio!='' || dataFim!=''){ + + if (dataInicio != '' && !infraValidarData(document.getElementById('txtDataInicio'))){ + return false; + } + + if (dataFim!='' && !infraValidarData(document.getElementById('txtDataFim'))){ + return false; + } + + if (dataInicio!='' && dataFim!='' && infraCompararDatas(dataInicio,dataFim) < 0){ + alert('Período de datas inválido.'); + document.getElementById('txtDataInicio').focus(); + return false; + } + + var dia1 = dataInicio.substr(0,2); + var mes1 = dataInicio.substr(3,2); + var ano1 = dataInicio.substr(6,4); + + var dia2 = dataFim.substr(0,2); + var mes2 = dataFim.substr(3,2); + var ano2 = dataFim.substr(6,4); + + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + + if (dataInicio != '' && dataFim != '') { + partFields.value += 'dta_geracao:[' + ano1 + '-' + mes1 + '-' + dia1 + 'T00:00:00Z TO ' + ano2 + '-' + mes2 + '-' + dia2 +'T00:00:00Z]'; + }else if (dataInicio != ''){ + partFields.value += 'dta_geracao:"'+ ano1 + '-' + mes1 + '-' + dia1 + 'T00:00:00Z"'; + }else{ + partFields.value += 'dta_geracao:"'+ ano2 + '-' + mes2 + '-' + dia2 + 'T00:00:00Z"'; + } + } + + return true; +} \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/imagens/bg_barra_sistema.jpg b/sei/web/modulos/pesquisa/imagens/bg_barra_sistema.jpg new file mode 100644 index 0000000..702803b Binary files /dev/null and b/sei/web/modulos/pesquisa/imagens/bg_barra_sistema.jpg differ diff --git a/sei/web/modulos/pesquisa/imagens/cade_cadastro.gif b/sei/web/modulos/pesquisa/imagens/cade_cadastro.gif new file mode 100644 index 0000000..80d859d Binary files /dev/null and b/sei/web/modulos/pesquisa/imagens/cade_cadastro.gif differ diff --git a/sei/web/modulos/pesquisa/imagens/sei_chave_restrito.gif b/sei/web/modulos/pesquisa/imagens/sei_chave_restrito.gif new file mode 100644 index 0000000..d5c373b Binary files /dev/null and b/sei/web/modulos/pesquisa/imagens/sei_chave_restrito.gif differ diff --git a/sei/web/modulos/pesquisa/imagens/sei_logo_azul_celeste.jpg b/sei/web/modulos/pesquisa/imagens/sei_logo_azul_celeste.jpg new file mode 100644 index 0000000..a344c79 Binary files /dev/null and b/sei/web/modulos/pesquisa/imagens/sei_logo_azul_celeste.jpg differ diff --git a/sei/web/modulos/pesquisa/imagens/sei_logo_verde_limao.jpg b/sei/web/modulos/pesquisa/imagens/sei_logo_verde_limao.jpg new file mode 100644 index 0000000..d53b184 Binary files /dev/null and b/sei/web/modulos/pesquisa/imagens/sei_logo_verde_limao.jpg differ diff --git a/sei/web/modulos/pesquisa/imagens/sei_logo_vermelho.jpg b/sei/web/modulos/pesquisa/imagens/sei_logo_vermelho.jpg new file mode 100644 index 0000000..f301e20 Binary files /dev/null and b/sei/web/modulos/pesquisa/imagens/sei_logo_vermelho.jpg differ diff --git a/sei/web/modulos/pesquisa/int/DocumentoExternoINT.php b/sei/web/modulos/pesquisa/int/DocumentoExternoINT.php new file mode 100644 index 0000000..3e3073d --- /dev/null +++ b/sei/web/modulos/pesquisa/int/DocumentoExternoINT.php @@ -0,0 +1,180 @@ + +*/ + +/** + * Classe Banco de dados Procedimento siscade. +* +* +* @package institucional_pesquisa_ProcedimentoSiscadeBD +* @author Alex Alves Braga +* @license Creative Commons Atribuição 3.0 não adaptada +* +* @ignore Este código é livre para uso sem nenhuma restrição, +* salvo pelas informações a seguir referentes +* @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 +* +* @author Alex Alves Braga +*/ + +class DocumentoExternoINT extends DocumentoINT{ + + public static function formatarExibicaoConteudo($strTipoVisualizacao, $strConteudo, $objInfraPagina=null, $objInfraSessao=null, $strLinkDownload=null){ + + $strResultado = ''; + + if (!InfraString::isBolVazia($strConteudo)){ + + if (substr($strConteudo,0,5) != ' + + nomeA + nomeB + + + nomeC1 + nomeC2 + + + + + D1V1 + D1V2 + D1V3 + + + D2V1 + D2V2 + D2V3 + + + D3V1 + D3V2 + D3V3 + + + '; + */ + + $objXml->loadXML($strConteudo); + + $arrAtributos = $objXml->getElementsByTagName('atributo'); + + if ($strTipoVisualizacao == self::$TV_HTML){ + + $strNovaLinha = '
'; + $strItemInicio = ''; + $strItemFim = ''; + $strSubitemInicio = ''; + $strSubitemFim = ''; + $strEspaco = ' '; + + }else{ + + $strNovaLinha = "\n"; + $strItemInicio = ''; + $strItemFim = ''; + $strSubitemInicio = ''; + $strSubitemFim = ''; + $strEspaco = ' '; + + } + + $strResultado = ''; + + if ($objInfraSessao!=null){ + $bolAcaoDownload = $objInfraSessao->verificarPermissao('documento_download_anexo'); + } + + foreach($arrAtributos as $atributo){ + + $arrValores = $atributo->getElementsByTagName('valores'); + + if ($arrValores->length==0){ + //não mostra item que não possua valor + if (!InfraString::isBolVazia($atributo->nodeValue)){ + $strResultado .= $strNovaLinha.$strItemInicio.self::formatarTagConteudo($strTipoVisualizacao,$atributo->getAttribute('titulo')).$strItemFim.': '.$strNovaLinha.$strEspaco.$strEspaco.self::formatarTagConteudo($strTipoVisualizacao,$atributo->nodeValue); + $strResultado .= $strNovaLinha; + } + }else{ + + if ($atributo->getAttribute('titulo')!=''){ + $strResultado .= $strNovaLinha.$strItemInicio.self::formatarTagConteudo($strTipoVisualizacao,$atributo->getAttribute('titulo')).$strItemFim.':'; + } + + foreach($arrValores as $valores){ + + if ($valores->getAttribute('titulo')!=''){ + $strResultado .= $strNovaLinha.$strEspaco.$strEspaco.$strSubitemInicio.self::formatarTagConteudo($strTipoVisualizacao,$valores->getAttribute('titulo')).':'.$strSubitemFim; + } + + $arrValor = $valores->getElementsByTagName('valor'); + + foreach($arrValor as $valor){ + + $strResultado .= $strNovaLinha.$strEspaco.$strEspaco.$strEspaco.$strEspaco; + + if ($valor->getAttribute('titulo')!=''){ + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->getAttribute('titulo')).': '; + } + + if ($valor->getAttribute('tipo')=='ANEXO'){ + if ($objInfraPagina==null || $objInfraSessao==null || $strLinkDownload==null){ + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue); + }else { + if ($bolAcaoDownload){ + $objAnexoDTO = new AnexoDTO(); + $objAnexoDTO->setNumIdAnexo($valor->getAttribute('id')); + $objAnexoRN = new AnexoRN(); + if ($objAnexoRN->contarRN0734($objAnexoDTO)>0){ + //$strResultado .= ''.self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue).''; + $strResultado = ''.self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue).''; + }else{ + $strResultado .= ''.self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue).''; + } + }else{ + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue); + } + } + }else{ + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue); + } + } + + if ($arrValor->length>1){ + $strResultado .= $strNovaLinha; + } + } + $strResultado .= $strNovaLinha; + } + } + } + } + return $strResultado; + } + +} + +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/parametro_pesquisa_lista.php b/sei/web/modulos/pesquisa/parametro_pesquisa_lista.php new file mode 100644 index 0000000..23ade5b --- /dev/null +++ b/sei/web/modulos/pesquisa/parametro_pesquisa_lista.php @@ -0,0 +1,214 @@ +setBolLigado(false); + //InfraDebug::getInstance()->setBolDebugInfra(true); + //InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + + SessaoSEI::getInstance()->validarLink(); + SessaoSEI::getInstance()->validarPermissao($_GET['acao']); + + switch($_GET['acao']){ + + + case 'md_parametro_pesquisa_listar': + $strTitulo = 'Parâmetros Pesquisa Pública'; + break; + + case 'md_parametro_pesquisa_alterar': + + $strTitulo = 'Parâmetros Pesquisa Pública'; + if(isset($_POST['btnSalvar'])) { + $arrParametroPesquisaDTO = array( + array('Nome' => ParametroPesquisaRN::$TA_CAPTCHA , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkCapcthaPesquisa'])), + array('Nome' => ParametroPesquisaRN::$TA_CAPTCHA_PDF , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkCapcthaGerarPdf'])), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_ANDAMENTO_PROCESSO_PUBLICO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkListaAndamentoProcessoPublico'])), + array('Nome' => ParametroPesquisaRN::$TA_PROCESSO_RESTRITO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkProcessoRestrito'])), + array('Nome' => ParametroPesquisaRN::$TA_METADADOS_PROCESSO_RESTRITO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkMetaDadosProcessoRestrito'])), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_ANDAMENTO_PROCESSO_RESTRITO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkListaAndamentoProcessoRestrito'])), + array('Nome' => ParametroPesquisaRN::$TA_DESCRICAO_PROCEDIMENTO_ACESSO_RESTRITO , 'Valor' => trim($_POST['txtDescricaoProcessoAcessoRestrito'])), + array('Nome' => ParametroPesquisaRN::$TA_DOCUMENTO_PROCESSO_PUBLICO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkDocumentoProcessoPublico'])), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkListaDocumentoProcessoPublico'])), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkListaDocumentoProcessoRestrito'])), + array('Nome' => ParametroPesquisaRN::$TA_AUTO_COMPLETAR_INTERESSADO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkAutoCompletarInteressado'])), + array('Nome' => ParametroPesquisaRN::$TA_MENU_USUARIO_EXTERNO , 'Valor' => PaginaSEI::getInstance()->getCheckbox($_POST['chkMenuUsuarioExterno'])), + array('Nome' => ParametroPesquisaRN::$TA_CHAVE_CRIPTOGRAFIA , 'Valor' => trim($_POST['txtChaveCriptografia'])), + + + ); + + $arrObjParametroPesquisaDTO = InfraArray::gerarArrInfraDTOMultiAtributos('ParametroPesquisaDTO', $arrParametroPesquisaDTO); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + $objParametroPesquisaRN->alterarParametros($arrObjParametroPesquisaDTO); + + PaginaSEI::getInstance()->adicionarMensagem("Parametros da Pesquisa Pública salva com sucesso!",PaginaSEI::$TIPO_MSG_AVISO); + } + + + break; + + + + default: + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida."); + } + + $arrComandos = array(); + + $arrComandos[] = ''; + + + $objParametroPesquisaDTO = new ParametroPesquisaDTO(); + $objParametroPesquisaDTO->retStrNome(); + $objParametroPesquisaDTO->retStrValor(); + + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); + + $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); + + +}catch(Exception $e){ + PaginaSEI::getInstance()->processarExcecao($e); +} + +PaginaSEI::getInstance()->montarDocType(); +PaginaSEI::getInstance()->abrirHtml(); +PaginaSEI::getInstance()->abrirHead(); +PaginaSEI::getInstance()->montarMeta(); +PaginaSEI::getInstance()->montarTitle(PaginaSEI::getInstance()->getStrNomeSistema().' - '.$strTitulo); +PaginaSEI::getInstance()->montarStyle(); +PaginaSEI::getInstance()->abrirStyle(); + + + + + +PaginaSEI::getInstance()->fecharStyle(); +PaginaSEI::getInstance()->montarJavaScript(); +PaginaSEI::getInstance()->abrirJavaScript(); +?> + +function inicializar(){ + +} + +function validarCadastro() { + + if (infraTrim(document.getElementById('txtChaveCriptografia').value)=='') { + alert('Informe a Chave para criptografia.'); + document.getElementById('txtChaveCriptografia').focus(); + return false; + } + + return true; +} + +function OnSubmitForm() { + return validarCadastro(); +} + + +fecharJavaScript(); +PaginaSEI::getInstance()->fecharHead(); +PaginaSEI::getInstance()->abrirBody($strTitulo,'onload="inicializar();"'); +PaginaSEI::getInstance()->abrirAreaDados(null); +?> +
+ + montarBarraLocalizacao($strTitulo); + PaginaSEI::getInstance()->montarBarraComandosSuperior($arrComandos); + //PaginaSEI::getInstance()->montarAreaValidacao(); + ?> + +

Captcha

+

Habilitar Captcha na pesquisa pública:

+ tabindex="getProxTabDados()?>" /> + + +

Habilitar Captcha gerar PDF:

+ tabindex="getProxTabDados()?>" /> + +
+ +

Processos

+ +

Habilitar a exibição dos Andamentos nos processos com nível de acesso global "Público":

+ tabindex="getProxTabDados()?>" /> + + +

Habilitar a pesquisa em processos com nível de acesso global "Restrito":

+ tabindex="getProxTabDados()?>" /> + + +

Habilitar o acesso aos metadados dos Processos com nível de acesso global "Restrito"

+ tabindex="getProxTabDados()?>" /> + + +

Habilitar a exibição dos Andamentos nos processos com nível de acesso global "Restrito":

+ tabindex="getProxTabDados()?>" /> + + +

Descrição de justificativa de restrição de acesso e orientações para meios alternativos de solicitação de acesso:

+ +
+ +

Documentos

+

Habilitar a pesquisa em Documentos que estão associados à processos com nível de acesso global "Público":

+ tabindex="getProxTabDados()?>" /> + + +

Habilitar o acesso aos Documentos nos processos com nível de acesso global "Público":

+ tabindex="getProxTabDados()?>" /> + + +

Habilitar o acesso aos Documentos nos processos com nível de acesso global "Restrito":

+ tabindex="getProxTabDados()?>" /> + + +
+ + +

Configurações Gerais

+ +

Habilitar a função auto completar no campo "Interessado / Remetente" na página principal da Pesquisa Pública:

+ tabindex="getProxTabDados()?>" /> + + +

Habilitar o link da pesquisa pública no menu de usuário externo:

+ tabindex="getProxTabDados()?>" /> + + +

Chave para criptografia dos links de processos e documentos:

+ + + montarBarraLocalizacao($strTitulo); + PaginaSEI::getInstance()->montarBarraComandosInferior($arrComandos); + //PaginaSEI::getInstance()->montarAreaValidacao(); + ?> + + +
+fecharAreaDados(); +PaginaSEI::getInstance()->fecharBody(); +PaginaSEI::getInstance()->fecharHtml(); +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/pesquisa.sql b/sei/web/modulos/pesquisa/pesquisa.sql new file mode 100644 index 0000000..535da9b --- /dev/null +++ b/sei/web/modulos/pesquisa/pesquisa.sql @@ -0,0 +1,18 @@ +CREATE TABLE `SEI_3.0.0`.`md_parametro_pesquisa` ( + `nome` VARCHAR(100) NOT NULL, + `valor` LONGTEXT NULL, + PRIMARY KEY (`nome`)); + +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('CAPTCHA', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('CAPTCHA_PDF', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('DOCUMENTO_PROCESSO_PUBLICO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('LISTA_DOCUMENTO_PROCESSO_PUBLICO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('LISTA_DOCUMENTO_PROCESSO_RESTRITO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('LISTA_ANDAMENTO_PROCESSO_PUBLICO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('PROCESSO_RESTRITO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('METADADOS_PROCESSO_RESTRITO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('LISTA_ANDAMENTO_PROCESSO_RESTRITO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('DESCRICAO_PROCEDIMENTO_ACESSO_RESTRITO', 'Processo ou Documento de Acesso Restrito - Para condições de acesso verifique a Resolução n° 11/2014 ou entre em contato com o Núcleo Gestor do SEI pelo e-mail sei@cade.gov.br.'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('AUTO_COMPLETAR_INTERESSADO', 'S'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('CHAVE_CRIPTOGRAFIA', 'C@d3S3mP@p3l#S3I83'); +INSERT INTO `SEI_3.0.0`.`md_parametro_pesquisa` (`nome`, `valor`) VALUES ('MENU_USUARIO_EXTERNO', 'S'); \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/processo_exibe_arquivo.php b/sei/web/modulos/pesquisa/processo_exibe_arquivo.php new file mode 100644 index 0000000..0d20cc3 --- /dev/null +++ b/sei/web/modulos/pesquisa/processo_exibe_arquivo.php @@ -0,0 +1,99 @@ +setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + + if (isset($_GET['id_acesso_externo'])){ + SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink(); + }else{ + SessaoSEIExterna::getInstance()->validarLink(); + } + + switch($_GET['acao_externa']){ + + case 'usuario_externo_exibir_arquivo': + + AuditoriaSEI::getInstance()->auditar('usuario_externo_exibir_arquivo', __FILE__); +/* + * SEI 2.5.1 */ + $infraParametroDTO = new InfraParametroDTO(); + $infraParametroDTO->setStrNome('SEI_VERSAO'); + $infraParametroDTO->retStrValor(); + + $infraParametroRN = new InfraParametroRN(); + $infraParametroDTO = $infraParametroRN->consultar($infraParametroDTO); + $versaoSei = $infraParametroDTO->getStrValor(); + print_r($versaoSei); + + + if($versaoSei == '2.5.1'){ + + header("Pragma: public"); + header('Pragma: no-cache'); + header("Expires: 0"); + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0"); + header("Cache-Control: private","false"); + PaginaSEIExterna::getInstance()->montarHeaderDownload($_GET['nome_arquivo'],'attachment'); + + $fp = fopen(dirname(__FILE__).'/../../'.DIR_UPLOAD.'/'.$_GET['nome_arquivo'], "rb"); + while (!feof($fp)) { + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO); + } + fclose($fp); + break; + + }else{ + /* + * SEI 2.5.2 */ + header("Pragma: public"); + header('Pragma: no-cache'); + header("Expires: 0"); + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0"); + header("Cache-Control: private","false"); + $strNomeDownload=$_GET['nome_download']; + + if (InfraString::isBolVazia($strNomeDownload)){ + $strNomeDownload=$_GET['nome_arquivo']; + } + + PaginaSEI::getInstance()->montarHeaderDownload($strNomeDownload,'attachment'); + + $fp = fopen(DIR_SEI_TEMP.'/'.$_GET['nome_arquivo'], "rb"); + while (!feof($fp)) { + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO); + } + fclose($fp); + + break; + + } + + + + + + default: + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida."); + } + +}catch(Exception $e){ + try{ LogSEI::getInstance()->gravar(InfraException::inspecionar($e)."\n".'$_GET: '.print_r($_GET,true)); }catch(Exception $e2){} + die('Erro exibindo arquivo em acesso externo.'); +} +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/processo_exibir.php b/sei/web/modulos/pesquisa/processo_exibir.php new file mode 100644 index 0000000..5db5b94 --- /dev/null +++ b/sei/web/modulos/pesquisa/processo_exibir.php @@ -0,0 +1,903 @@ +validarSessao(); + //session_start(); + + ////////////////////////////////////////////////////////////////////////////// +// InfraDebug::getInstance()->setBolLigado(false); +// InfraDebug::getInstance()->setBolDebugInfra(true); +// InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + + ConverteURI::converterURI(); + PesquisaUtil::valiadarLink(); + + // SessaoSEIExterna::getInstance()->validarLink(); + + + //carrega configurações pesquisa + + $objParametroPesquisaDTO = new ParametroPesquisaDTO(); + $objParametroPesquisaDTO->retStrNome(); + $objParametroPesquisaDTO->retStrValor(); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); + + $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); + + $bolPesquisaProcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_PROCESSO_RESTRITO] == 'S' ? true : false; + $bolListaDocumentoProcessoPublico = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; + $bolListaAndamentoProcessoPublico = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_LISTA_ANDAMENTO_PROCESSO_PUBLICO] == 'S' ? true : false; + $bolCaptchaGerarPdf = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_CAPTCHA_PDF] == 'S' ? true : false; + $bolLinkMetadadosProcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_METADADOS_PROCESSO_RESTRITO] == 'S' ? true : false; + $bolListaAndamentoProcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_LISTA_ANDAMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; + $bolListaDocumentoProcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO] == 'S' ? true : false; + $txtDescricaoProcessoAcessoRestrito = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_DESCRICAO_PROCEDIMENTO_ACESSO_RESTRITO]; + + if($bolCaptchaGerarPdf) { + $strCodigoParaGeracaoCaptcha = InfraCaptcha::obterCodigo(); + $md5Captcha = md5(InfraCaptcha::gerar($strCodigoParaGeracaoCaptcha)); + }else { + $md5Captcha = null; + } + + PaginaSEIExterna::getInstance()->setTipoPagina(PaginaSEIExterna::$TIPO_PAGINA_SEM_MENU); + + $strTitulo = 'Pesquisa Processual'; + + + $dblIdProcedimento = $_GET['id_procedimento']; + + //Carregar dados do cabeçalho + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retStrNomeTipoProcedimento(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->retDtaGeracaoProtocolo(); + $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo(); + $objProcedimentoDTO->retStrStaNivelAcessoLocalProtocolo(); + $objProcedimentoDTO->retNumIdHipoteseLegalProtocolo(); + + $objProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento); + $objProcedimentoDTO->setStrSinDocTodos('S'); + $objProcedimentoDTO->setStrSinProcAnexados('S'); + //$objProcedimentoDTO->setStrSinDocAnexos('S'); + //$objProcedimentoDTO->setStrSinDocConteudo('S'); + + $objProcedimentoRN = new ProcedimentoRN(); + $arr = $objProcedimentoRN->listarCompleto($objProcedimentoDTO); + + if (count($arr)==0){ + //SessaoSEIExterna::getInstance()->sair(null, 'Processo não encontrado.'); + die('Processo não encontrado.'); + } + + $objProcedimentoDTO = $arr[0]; + + if($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO ){ + + die('Processo não encontrado.'); + + } + + if(!$bolLinkMetadadosProcessoRestrito || !$bolPesquisaProcessoRestrito){ + if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()!= ProtocoloRN::$NA_PUBLICO){ + die('Processo não encontrado.'); + } + } + + + + + + + //Carregar interessados no processo + $objInteressadosParticipanteDTO = new ParticipanteDTO(); + $objInteressadosParticipanteDTO->retStrNomeContato(); + $objInteressadosParticipanteDTO->setDblIdProtocolo($dblIdProcedimento); + $objInteressadosParticipanteDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO); + + + $objInteressadosParticipanteRN = new ParticipanteRN(); + + $objInteressadosParticipanteDTO = $objInteressadosParticipanteRN->listarRN0189($objInteressadosParticipanteDTO); + + if (count($objInteressadosParticipanteDTO)==0){ + $strInteressados = ' '; + }else{ + $strInteressados = ''; + foreach($objInteressadosParticipanteDTO as $objInteressadoParticipanteDTO){ + $strInteressados .= $objInteressadoParticipanteDTO->getStrNomeContato()."
"; + } + } + + + //Mensagem Processo Restrito + $strMensagemProcessoRestrito = ''; + $strHipoteseLegal = ''; + if($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_RESTRITO && $bolLinkMetadadosProcessoRestrito){ + + $objHipoteseLegalDTO = new HipoteseLegalDTO(); + $objHipoteseLegalDTO->setNumIdHipoteseLegal($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()); + $objHipoteseLegalDTO->retStrBaseLegal(); + $objHipoteseLegalDTO->retStrNome(); + + $objHipoteseLegalRN = new HipoteseLegalRN(); + $objHipoteseLegalDTO = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO); + + if($objHipoteseLegalDTO != null){ + + $strHipoteseLegal .= ''; + $strHipoteseLegal .= ''; + + } + + $strMensagemProcessoRestrito = '

'.$txtDescricaoProcessoAcessoRestrito.'

'; + + } + + + $strResultadoCabecalho = ''; + $strResultadoCabecalho .= ''."\n"; + $strResultadoCabecalho .= ''."\n"; + $strResultadoCabecalho .= ''."\n"; + $strResultadoCabecalho .= ''."\n"; + $strResultadoCabecalho .= ''."\n"; + $strResultadoCabecalho .= ''."\n"; + $strResultadoCabecalho .= '
Autuação
Processo:'.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().$strHipoteseLegal.'
Tipo:'.PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTO->getStrNomeTipoProcedimento()).'
Data de Registro:'.$objProcedimentoDTO->getDtaGeracaoProtocolo().'
Interessados: '.$strInteressados.'
'."\n"; + + + + + + + //$arrObjDocumentoDTO = InfraArray::indexarArrInfraDTO($objProcedimentoDTO->getArrObjDocumentoDTO(),'IdDocumento'); + $arrObjRelProtocoloProtocoloDTO = array(); + + if($bolListaDocumentoProcessoPublico && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ + $arrObjRelProtocoloProtocoloDTO = $objProcedimentoDTO->getArrObjRelProtocoloProtocoloDTO(); + }else if($bolListaDocumentoProcessoRestrito && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_RESTRITO){ + $arrObjRelProtocoloProtocoloDTO = $objProcedimentoDTO->getArrObjRelProtocoloProtocoloDTO(); + } + + // Objeto Fake para paginação. + $objProtocoloPesquisaPublicaPaginacaoDTO = new ProtocoloPesquisaPublicaDTO(); + $objProtocoloPesquisaPublicaPaginacaoDTO->retTodos(true); + PaginaSEIExterna::getInstance()->prepararOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO, 'Registro', InfraDTO::$TIPO_ORDENACAO_ASC); + //PaginaSEIExterna::getInstance()->prepararPaginacao($objProtocoloPesquisaPublicaPaginacaoDTO,4); + //PaginaSEIExterna::getInstance()->processarPaginacao($objProtocoloPesquisaPublicaPaginacaoDTO); + $arrObjProtocoloPesquisaPublicaDTO = array(); + + $objDocumentoRN = new DocumentoRN(); + + $numProtocolos = 0; + $numDocumentosPdf = 0; + $strCssMostrarAcoes = '.colunaAcoes {display:none;}'."\n"; + + $strThCheck = PaginaSEIExterna::getInstance()->getThCheck(); + + foreach($arrObjRelProtocoloProtocoloDTO as $objRelProtocoloProtocoloDTO){ + + if ($objRelProtocoloProtocoloDTO->getStrStaAssociacao()==RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO){ + + $objDocumentoDTO = $objRelProtocoloProtocoloDTO->getObjProtocoloDTO2(); + //valida documentos para retornar + if ($objDocumentoRN->verificarSelecaoAcessoExterno($objDocumentoDTO)){ + + $objProtocoloPesquisaPublicaDTO = new ProtocoloPesquisaPublicaDTO(); + $objProtocoloPesquisaPublicaDTO->setStrNumeroSEI($objDocumentoDTO->getStrProtocoloDocumentoFormatado()); + $objProtocoloPesquisaPublicaDTO->setStrTipoDocumento(PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie().' '.$objDocumentoDTO->getStrNumero())); + + + if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){ + + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setDblIdProtocoloAtividade($objProcedimentoDTO->getDblIdProcedimento()); + $objAtributoAndamentoDTO->setNumIdTarefaAtividade(TarefaRN::$TI_RECEBIMENTO_DOCUMENTO); + $objAtributoAndamentoDTO->setStrNome("DOCUMENTO"); + $objAtributoAndamentoDTO->setStrIdOrigem($objDocumentoDTO->getDblIdDocumento()); + + $objAtributoAndamentoDTO->retDthAberturaAtividade(); + + $objAtributoAndamentoRN = new AtributoAndamentoRN(); + + $objAtributoAndamentoDTO = $objAtributoAndamentoRN->consultarRN1366($objAtributoAndamentoDTO); + + if($objAtributoAndamentoDTO != null && $objAtributoAndamentoDTO->isSetDthAberturaAtividade()){ + + $dtaRecebimento = substr($objAtributoAndamentoDTO->getDthAberturaAtividade(),0,10); + + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($dtaRecebimento); + + }else{ + + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objDocumentoDTO->getDtaGeracaoProtocolo()); + } + + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objDocumentoDTO->getDtaGeracaoProtocolo()); + + }else if ($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_GERADO){ + + $objAssinaturaDTO = new AssinaturaDTO(); + $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); + $objAssinaturaDTO->retDthAberturaAtividade(); + + $objAssinaturaRN = new AssinaturaRN(); + $arrObjAssinaturaDTO = $objAssinaturaRN->listarRN1323($objAssinaturaDTO); + + if(is_array($arrObjAssinaturaDTO) && count($arrObjAssinaturaDTO) > 0) { + + $objAssinaturaDTO = $arrObjAssinaturaDTO[0]; + + if($objAssinaturaDTO != null && $objAssinaturaDTO->isSetDthAberturaAtividade()){ + + $dtaAssinatura = substr($objAssinaturaDTO->getDthAberturaAtividade(),0,10); + + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($dtaAssinatura); + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($dtaAssinatura); + + }else{ + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objDocumentoDTO->getDtaGeracaoProtocolo()); + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objDocumentoDTO->getDtaGeracaoProtocolo()); + } + }else{ + + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objDocumentoDTO->getDtaGeracaoProtocolo()); + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objDocumentoDTO->getDtaGeracaoProtocolo()); + } + + + + + } + + + $objProtocoloPesquisaPublicaDTO->setStrUnidade($objDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo()); + $objProtocoloPesquisaPublicaDTO->setStrStaAssociacao($objRelProtocoloProtocoloDTO->getStrStaAssociacao()); + $objProtocoloPesquisaPublicaDTO->setObjDocumentoDTO($objDocumentoDTO); + + + $arrObjProtocoloPesquisaPublicaDTO[] = $objProtocoloPesquisaPublicaDTO; + $numProtocolos++; + } + }else if ($objRelProtocoloProtocoloDTO->getStrStaAssociacao()==RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO){ + + $objProcedimentoDTOAnexado = $objRelProtocoloProtocoloDTO->getObjProtocoloDTO2(); + + $objProtocoloPesquisaPublicaDTO = new ProtocoloPesquisaPublicaDTO(); + $objProtocoloPesquisaPublicaDTO->setStrNumeroSEI($objProcedimentoDTOAnexado->getStrProtocoloProcedimentoFormatado()); + $objProtocoloPesquisaPublicaDTO->setStrTipoDocumento(PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTOAnexado->getStrNomeTipoProcedimento())); + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objProcedimentoDTOAnexado->getDtaGeracaoProtocolo()); + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objProcedimentoDTOAnexado->getDtaGeracaoProtocolo()); + $objProtocoloPesquisaPublicaDTO->setStrUnidade($objProcedimentoDTOAnexado->getStrSiglaUnidadeGeradoraProtocolo()); + $objProtocoloPesquisaPublicaDTO->setStrStaAssociacao($objRelProtocoloProtocoloDTO->getStrStaAssociacao()); + $objProtocoloPesquisaPublicaDTO->setObjProcedimentoDTO($objProcedimentoDTOAnexado); + + $arrObjProtocoloPesquisaPublicaDTO[] = $objProtocoloPesquisaPublicaDTO; + + + $numProtocolos++; + } + } + + + if ($numProtocolos > 0){ + + + + $strResultado = ' + + + + + + + + + + '; + + // monta tabela documentos + foreach ($arrObjProtocoloPesquisaPublicaDTO as $objProtocoloPesquisaPublicaDTO){ + + if($objProtocoloPesquisaPublicaDTO->getStrStaAssociacao() == RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO){ + + $objDocumentoDTO = $objProtocoloPesquisaPublicaDTO->getObjDocumentoDTO(); + $urlCripografadaDocumeto = Criptografia::criptografa('acao_externa=documento_exibir&id_documento='.$objDocumentoDTO->getDblIdDocumento().'&id_orgao_acesso_externo=0'); + $strLinkDocumento = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink('documento_consulta_externa.php?'.$urlCripografadaDocumeto)); + + $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)){ + $strResultado .= ''; + }else{ + $strResultado .= ''; + } + }else{ + $strResultado .= ''; + } + + + //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 ){ + $strResultado .= ''; + }else{ + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ + + //necessario para retornar id hipotese legal do documento + $strHipoteseLegalDocumento = ''; + $objProtocoloDocumentoDTO = new ProtocoloDTO(); + $objProtocoloDocumentoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdDocumento()); + $objProtocoloDocumentoDTO->retNumIdHipoteseLegal(); + + $objProtocoloRN = new ProtocoloRN(); + $objProtocoloDocumentoDTO = $objProtocoloRN->consultarRN0186($objProtocoloDocumentoDTO); + + if($objProtocoloDocumentoDTO != null){ + + $objHipoteseLegaDocumentoDTO = new HipoteseLegalDTO(); + $objHipoteseLegaDocumentoDTO->setNumIdHipoteseLegal($objProtocoloDocumentoDTO->getNumIdHipoteseLegal()); + $objHipoteseLegaDocumentoDTO->retStrNome(); + $objHipoteseLegaDocumentoDTO->retStrBaseLegal(); + + $objHipoteseLegalRN = new HipoteseLegalRN(); + $objHipoteseLegaDocumentoDTO = $objHipoteseLegalRN->consultar($objHipoteseLegaDocumentoDTO); + + + if($objHipoteseLegaDocumentoDTO != null){ + + $strHipoteseLegalDocumento .= $objHipoteseLegaDocumentoDTO->getStrNome().' ('.$objHipoteseLegaDocumentoDTO->getStrBaseLegal().')'; + } + } + + + + $strResultado .= ''; + + }else{ + $strResultado .= ' + + + + '; + + }else if($objProtocoloPesquisaPublicaDTO->getStrStaAssociacao() == RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO){ + + + $strResultado .= ''; + $strResultado .= ''; + $strHipoteseLegalAnexo = ''; + $strProtocoloRestrito = ''; + + $objProcedimentoDTOAnexado = $objProtocoloPesquisaPublicaDTO->getObjProcedimentoDTO(); + + // cria indicação de acesso restrito com hipotese legal. + if($objProcedimentoDTOAnexado->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ + + $strHipoteseLegalAnexo = ''; + $objProtocoloAnexoDTO = new ProtocoloDTO(); + $objProtocoloAnexoDTO->setDblIdProtocolo($objProcedimentoDTOAnexado->getDblIdProcedimento()); + $objProtocoloAnexoDTO->retNumIdHipoteseLegal(); + + $objProtocoloRN = new ProtocoloRN(); + $objProtocoloAnexoDTO = $objProtocoloRN->consultarRN0186($objProtocoloAnexoDTO); + + if($objProtocoloAnexoDTO != null){ + + $objHipoteseLegaAnexoDTO = new HipoteseLegalDTO(); + $objHipoteseLegaAnexoDTO->setNumIdHipoteseLegal($objProtocoloAnexoDTO->getNumIdHipoteseLegal()); + $objHipoteseLegaAnexoDTO->retStrNome(); + $objHipoteseLegaAnexoDTO->retStrBaseLegal(); + + $objHipoteseLegalRN = new HipoteseLegalRN(); + $objHipoteseLegaDocumentoDTO = $objHipoteseLegalRN->consultar($objHipoteseLegaAnexoDTO); + + + if($objHipoteseLegaDocumentoDTO != null){ + + $strHipoteseLegalAnexo .= $objHipoteseLegaDocumentoDTO->getStrNome().' ('.$objHipoteseLegaDocumentoDTO->getStrBaseLegal().')'; + } + } + $strProtocoloRestrito .= ''; + } + + if($objProcedimentoDTOAnexado->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){ + $parametrosCriptografadosProcesso = Criptografia::criptografa('id_orgao_acesso_externo=0&id_procedimento='.$objProcedimentoDTOAnexado->getDblIdProcedimento()); + $urlPesquisaProcesso = 'processo_exibir.php?'.$parametrosCriptografadosProcesso; + + // $strLinkProcessoAnexado = PaginaSEIExterna::getInstance()->formatarXHTML(SessaoSEIExterna::getInstance()->assinarLink('processo_acesso_externo_consulta.php?id_acesso_externo='.$_GET['id_acesso_externo'].'&id_acesso_externo_assinatura='.$_GET['id_acesso_externo_assinatura'].'&id_procedimento_anexado='.$objProcedimentoDTOAnexado->getDblIdProcedimento())); + + $strLinkProcessoAnexado = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($urlPesquisaProcesso))); + + + $strResultado .= ''; + + }else{ + + $strResultado .= ''; + + } + + $strResultado.= ' + + + + '; + $strResultado .=''; + + } + } + + $strResultado.='
'.PaginaSEIExterna::getInstance()->gerarCaptionTabela("Protocolos",$numProtocolos).'
'.$strThCheck.''.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Documento / Processo','NumeroSEI',$arrObjProtocoloPesquisaPublicaDTO,true).''.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Tipo de Documento','TipoDocumento',$arrObjProtocoloPesquisaPublicaDTO,true).''.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Data do Documento','Documento',$arrObjProtocoloPesquisaPublicaDTO,true).''.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Data de Registro','Registro',$arrObjProtocoloPesquisaPublicaDTO,true).''.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Unidade','Unidade',$arrObjProtocoloPesquisaPublicaDTO,true).'
'.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).'  '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().''.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().''; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().''; + } + + + } + + $strResultado .= ''.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie().' '.$objDocumentoDTO->getStrNumero()).''.$objProtocoloPesquisaPublicaDTO->getDtaDocumento().''.$objProtocoloPesquisaPublicaDTO->getDtaRegistro().''.$objDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo().''; + + $strResultado .='
 '.$objProcedimentoDTOAnexado->getStrProtocoloProcedimentoFormatado().''.$strProtocoloRestrito.''.PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTOAnexado->getStrProtocoloProcedimentoFormatado()).' '.$strProtocoloRestrito.''.PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTOAnexado->getStrNomeTipoProcedimento()).''.$objProtocoloPesquisaPublicaDTO->getDtaDocumento().''.$objProtocoloPesquisaPublicaDTO->getDtaRegistro().''.$objProcedimentoDTOAnexado->getStrSiglaUnidadeGeradoraProtocolo().' 
'; + + } + + + $arrComandos = array(); + if ($numDocumentosPdf > 0){ + if($bolCaptchaGerarPdf){ + $strComando = ''; + }else{ + $strComando = ''; + } + + $arrComandos[] = $strComando; + + } + + //Carregar histórico + + $numRegistrosAtividades = 0; + + + if(($bolListaAndamentoProcessoPublico && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_PUBLICO) || + ($bolListaAndamentoProcessoRestrito && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_RESTRITO) ){ + + $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO(); + $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento); + $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_EXTERNO); + $objProcedimentoHistoricoDTO->setStrSinGerarLinksHistorico('N'); + + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoDTORet = $objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO); + $arrObjAtividadeDTO = $objProcedimentoDTORet->getArrObjAtividadeDTO(); + + $numRegistrosAtividades = count($arrObjAtividadeDTO); + } + + + + + if ($numRegistrosAtividades > 0){ + + $bolCheck = false; + + $strResultadoAndamentos = ''; + + $strResultadoAndamentos .= ''."\n"; + $strResultadoAndamentos .= ''; + $strResultadoAndamentos .= ''; + $strResultadoAndamentos .= ''; + $strResultadoAndamentos .= ''; + $strResultadoAndamentos .= ''; + $strResultadoAndamentos .= ''."\n"; + + $strQuebraLinha = '
'; + + + foreach($arrObjAtividadeDTO as $objAtividadeDTO){ + + //InfraDebug::getInstance()->gravar($objAtividadeDTO->getNumIdAtividade()); + + $strResultadoAndamentos .= "\n\n".''."\n"; + + if ($objAtividadeDTO->getStrSinUltimaUnidadeHistorico() == 'S'){ + $strAbertas = 'class="andamentoAberto"'; + }else{ + $strAbertas = 'class="andamentoConcluido"'; + } + + $strResultadoAndamentos .= ''; + $strResultadoAndamentos .= "\n".''; + + $strResultadoAndamentos .= "\n".''; + + $strResultadoAndamentos .= "\n"; + $strResultadoAndamentos .= "\n".''; + + $strResultadoAndamentos .= ''; + } + $strResultadoAndamentos .= '
'.PaginaSEIExterna::getInstance()->gerarCaptionTabela('Andamentos',$numRegistrosAtividades).'
Data/HoraUnidadeDescrição
'; + $strResultadoAndamentos .= substr($objAtividadeDTO->getDthAbertura(),0,16); + $strResultadoAndamentos .= ''; + $strResultadoAndamentos .= ''.$objAtividadeDTO->getStrSiglaUnidade().''; + $strResultadoAndamentos .= ''; + + if (!InfraString::isBolVazia($objAtividadeDTO->getStrNomeTarefa())){ + $strResultadoAndamentos .= nl2br($objAtividadeDTO->getStrNomeTarefa()).$strQuebraLinha; + } + + $strResultadoAndamentos .= '

'; + } + + + + AuditoriaSEI::getInstance()->auditar('processo_consulta_externa', __FILE__, strip_tags($strResultadoCabecalho)."\n".strip_tags($strResultado)); + + if ($_POST['hdnFlagGerar']=='1'){ + + if(md5($_POST['txtCaptcha']) != $_POST['hdnCaptchaMd5'] && $_GET['hash'] != $_POST['hdnCaptchaMd5'] && $bolCaptchaGerarPdf == true){ + PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.'); + + }else { + + + $objDocumentoRN = new DocumentoRN(); + + $parArrObjDocumentoDTO = InfraArray::converterArrInfraDTO(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()),'IdDocumento'); + $objDocumentoDTO = new DocumentoDTO(); + $objDocumentoDTO->retDblIdDocumento(); + $objDocumentoDTO->setDblIdDocumento($parArrObjDocumentoDTO, InfraDTO::$OPER_IN); + $objDocumentoDTO->retDblIdProcedimento(); + $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo(); + $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo(); + $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); + + 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){ + die ("Erro ao Gerar Pdf"); + } + }else{ + die ("Erro ao Gerar Pdf"); + } + + + } + + + $objDocumentoRN = new DocumentoRN(); + $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados())); + + $bolGeracaoOK = true; + + } + + } + +}catch(Exception $e){ + PaginaSEIExterna::getInstance()->processarExcecao($e); +} + + +PaginaSEIExterna::getInstance()->montarDocType(); +PaginaSEIExterna::getInstance()->abrirHtml(); +PaginaSEIExterna::getInstance()->abrirHead(); +PaginaSEIExterna::getInstance()->montarMeta(); +PaginaSEIExterna::getInstance()->montarTitle(':: '.PaginaSEIExterna::getInstance()->getStrNomeSistema().' - '.$strTitulo.' ::'); +PaginaSEIExterna::getInstance()->montarStyle(); +PaginaSEIExterna::getInstance()->abrirStyle(); +echo $strCssMostrarAcoes; +?> + +div.infraBarraSistemaE {width:90%} +div.infraBarraSistemaD {width:5%} +div.infraBarraComandos {width:99%} + +table caption { + text-align:left !important; + font-size: 1.2em; + font-weight:bold; +} + +.andamentoAberto { + background-color:white; +} + +.andamentoConcluido { + background-color:white; +} + + +#tblCabecalho{margin-top:1;} +#tblDocumentos {margin-top:1.5em;} +#tblHistorico {margin-top:1.5em;} + + +#lblCaptcha {position: absolute; top:30%; left: 20%; width: 80%} +#txtCaptcha{position: absolute; top:56%; left: 20%; height:15%; width:56%;font-size: 3em;} +#btnEnviarCaptcha {position: absolute; top:80%; left: 20%; width:56%} + +#divInfraModal{ + + display: none; + position: fixed; + z-index: 1; + padding-top: 100px; + left: 0; + top: 0; + width: 50%; + height: 50%; + overflow: auto; + +} + + + +.close { + color: white; + float: right; + font-size: 28px; + font-weight: bold; +} + +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; +} + +.modal-header { + padding: 2px 16px; + background-image: url("imagens/bg_barra_sistema.jpg"); + color: white; +} + +.modal-body {padding: 2px 16px;} + +.modal-footer { + padding: 2px 16px; + background-color: #5cb85c; + color: white; +} + + +span.retiraAncoraPadraoAzul{font-size: 1.2em;} + +fecharStyle(); +PaginaSEIExterna::getInstance()->montarJavaScript(); +PaginaSEIExterna::getInstance()->abrirJavaScript(); +?> + +function inicializar(){ + + + + + + + window.open('assinarLink('processo_exibe_arquivo.php?acao_externa=usuario_externo_exibir_arquivo&acao_origem_externa=protocolo_pesquisar&id_orgao_acesso_externo=0&nome_arquivo='.$objAnexoDTO->getStrNome().'&nome_download=SEI-'.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'.pdf');?>'); + + + + + infraEfeitoTabelas(); +} + + + + +$(document).unbind("keyup").keyup(function(e){ + e.preventDefault(); + var code = e.which; + if(code==13){ + var modal = document.getElementById('divInfraModal'); + if(modal.style.display == "block"){ + fecharPdfModal(); + gerarPdf(); + + } + } +}); + + + +function gerarPdfModal(){ + + if (document.getElementById('hdnInfraItensSelecionados').value==''){ + alert('Nenhum documento selecionado.'); + return; + } + var modal = document.getElementById('divInfraModal'); + modal.style.display = "block"; + +} + +function fecharPdfModal(){ + + var modal = document.getElementById('divInfraModal'); + modal.style.display = "none"; +} + +window.onclick = function(event) { + var modal = document.getElementById('divInfraModal'); + if (event.target == modal) { + modal.style.display = "none"; + } +} + + + +function gerarPdf() { + + if (document.getElementById('hdnInfraItensSelecionados').value==''){ + alert('Nenhum documento selecionado.'); + return; + } + + + fecharPdfModal(); + + + infraExibirAviso(false); + + document.getElementById('hdnFlagGerar').value = '1'; + document.getElementById('frmProcessoAcessoExternoConsulta').submit(); +} + +fecharJavaScript(); +PaginaSEIExterna::getInstance()->fecharHead(); +PaginaSEIExterna::getInstance()->abrirBody($strTitulo,'onload="inicializar();"'); +?> + +
+ +
+ + + +
+ + '; + +} +PaginaSEIExterna::getInstance()->montarBarraComandosSuperior($arrComandos); +echo $strResultadoCabecalho; +echo $strMensagemProcessoRestrito; +PaginaSEIExterna::getInstance()->montarAreaTabela($strResultado,$numProtocolos); +echo $strResultadoAndamentos; +?> + + + + +
+montarAreaDebug(); + +if($bolGeracaoOK){ + ?> + +fecharBody(); +PaginaSEIExterna::getInstance()->fecharHtml(); +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/processo_pesquisar.php b/sei/web/modulos/pesquisa/processo_pesquisar.php new file mode 100644 index 0000000..e524c4d --- /dev/null +++ b/sei/web/modulos/pesquisa/processo_pesquisar.php @@ -0,0 +1,701 @@ + + */ + +/** + * Pagina de apresentação da página de pesquisa. + * + * + * @package Cade_pesquisa_processo_pesquisar + * @author Alex Alves Braga + * @license Creative Commons Atribuição 3.0 não adaptada + * + * @ignore Este código é livre para uso sem nenhuma restrição, + * salvo pelas informações a seguir referentes + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018 + * + * @author Alex Alves Braga + */ + + +try { + require_once dirname(__FILE__).'/../../SEI.php'; + require_once dirname(__FILE__).'/BuscaProtocoloExterno.php'; + require_once ("ConverteURI.php"); + +// session_start(); + + SessaoSEIExterna::getInstance()->validarSessao(); + +// InfraDebug::getInstance()->setBolLigado(false); +// InfraDebug::getInstance()->setBolDebugInfra(false); +// InfraDebug::getInstance()->limpar(); + + $objParametroPesquisaDTO = new ParametroPesquisaDTO(); + $objParametroPesquisaDTO->retStrNome(); + $objParametroPesquisaDTO->retStrValor(); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + $arrObjParametroPesquisaDTO = $objParametroPesquisaRN->listar($objParametroPesquisaDTO); + + $arrParametroPesquisaDTO = InfraArray::converterArrInfraDTO($arrObjParametroPesquisaDTO,'Valor','Nome'); + + $bolCaptcha = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_CAPTCHA] == 'S' ? true : false; + $bolAutocompletarInterressado = $arrParametroPesquisaDTO[ParametroPesquisaRN::$TA_AUTO_COMPLETAR_INTERESSADO] == 'S' ? true : false; + + + // SessaoSEIExterna::getInstance()->validarLink(); + PesquisaUtil::valiadarLink(); + + PaginaSEIExterna::getInstance()->setBolXHTML(false); + + if($bolCaptcha) { + $strCodigoParaGeracaoCaptcha = InfraCaptcha::obterCodigo(); + $md5Captcha = md5(InfraCaptcha::gerar($strCodigoParaGeracaoCaptcha)); + }else { + $md5Captcha = null; + } + if (isset($_POST['hdnFlagPesquisa']) || isset($_POST['sbmLimpar'])){ + + if(isset($_POST['sbmLimpar'])){ + + PaginaSEIExterna::getInstance()->limparCampos(); + PaginaSEIExterna::getInstance()->salvarCampo('rdoData', ''); + PaginaSEIExterna::getInstance()->salvarCampo('chkSinProcessos', 'P'); + + + }else{ + + PaginaSEIExterna::getInstance()->salvarCampo('chkSinProcessos', $_POST['chkSinProcessos']); + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosGerados', $_POST['chkSinDocumentosGerados']); + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosRecebidos', $_POST['chkSinDocumentosRecebidos']); + + PaginaSEIExterna::getInstance()->salvarCamposPost(array('q', + 'txtParticipante', + 'hdnIdParticipante', + 'txtAssinante', + 'hdnIdAssinante', + 'txtDescricaoPesquisa', + 'txtObservacaoPesquisa', + 'txtAssunto', + 'hdnIdAssunto', + 'txtUnidade', + 'hdnIdUnidade', + 'txtProtocoloPesquisa', + 'selTipoProcedimentoPesquisa', + 'selSeriePesquisa', + 'txtNumeroDocumentoPesquisa', + 'rdoData', + 'txtDataInicio', + 'txtDataFim', + 'hdnSiglasUsuarios', + 'txtSiglaUsuario1', + 'txtSiglaUsuario2', + 'txtSiglaUsuario3', + 'txtSiglaUsuario4' + )); + + } + + + }else{ + + PaginaSEIExterna::getInstance()->salvarCampo('q', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtProtocoloPesquisa', $strProtocoloFormatadoLimpo); + PaginaSEIExterna::getInstance()->salvarCampo('chkSinProcessos', 'P'); + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosGerados', ''); + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosRecebidos', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtParticipante', ''); + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdParticipante', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtAssinante', ''); + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdAssinante', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtDescricaoPesquisa', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtObservacaoPesquisa', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtAssunto', ''); + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdAssunto', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtUnidade', ''); + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdUnidade', ''); + //PaginaSEIExterna::getInstance()->salvarCampo('txtProtocoloPesquisa', ''); + PaginaSEIExterna::getInstance()->salvarCampo('selTipoProcedimentoPesquisa', ''); + PaginaSEIExterna::getInstance()->salvarCampo('selSeriePesquisa', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtNumeroDocumentoPesquisa', ''); + PaginaSEIExterna::getInstance()->salvarCampo('rdoData', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtDataInicio', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtDataFim', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario1', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario2', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario3', ''); + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario4', ''); + PaginaSEIExterna::getInstance()->salvarCampo('hdnSiglasUsuarios', ''); + } + + + switch($_GET['acao_externa']){ + + case 'protocolo_pesquisar': + case 'protocolo_pesquisa_rapida': + + + $strTitulo = 'Pesquisa Pública'; + + + // Altero os caracteres 'Coringas' por aspas Duplas para não dar erro de Js no IE + $strPalavrasPesquisa = str_replace("$*",'\"',PaginaSEIExterna::getInstance()->recuperarCampo('q')); + $strSinProcessos = PaginaSEIExterna::getInstance()->recuperarCampo('chkSinProcessos'); + $strSinDocumentosGerados = PaginaSEIExterna::getInstance()->recuperarCampo('chkSinDocumentosGerados'); + $strSinDocumentosRecebidos = PaginaSEIExterna::getInstance()->recuperarCampo('chkSinDocumentosRecebidos'); + $strIdParticipante = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdParticipante'); + $strNomeParticipante = PaginaSEIExterna::getInstance()->recuperarCampo('txtParticipante'); + $strIdAssinante = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdAssinante'); + $strNomeAssinante = PaginaSEIExterna::getInstance()->recuperarCampo('txtAssinante'); + $strDescricaoPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtDescricaoPesquisa'); + $strObservacaoPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtObservacaoPesquisa'); + $strIdAssunto = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdAssunto'); + $strDescricaoAssunto = PaginaSEIExterna::getInstance()->recuperarCampo('txtAssunto'); + $strIdUnidade = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdUnidade'); + $strDescricaoUnidade = PaginaSEIExterna::getInstance()->recuperarCampo('txtUnidade'); + $strProtocoloPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtProtocoloPesquisa'); + $numIdTipoProcedimento = PaginaSEIExterna::getInstance()->recuperarCampo('selTipoProcedimentoPesquisa','null'); + $numIdSerie = PaginaSEIExterna::getInstance()->recuperarCampo('selSeriePesquisa','null'); + $strNumeroDocumentoPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtNumeroDocumentoPesquisa'); + $strStaData = PaginaSEIExterna::getInstance()->recuperarCampo('rdoData'); + $strDataInicio = PaginaSEIExterna::getInstance()->recuperarCampo('txtDataInicio'); + $strDataFim = PaginaSEIExterna::getInstance()->recuperarCampo('txtDataFim'); + $strSiglaUsuario1 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario1'); + $strSiglaUsuario2 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario2'); + $strSiglaUsuario3 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario3'); + $strSiglaUsuario4 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario4'); + $strUsuarios = PaginaSEIExterna::getInstance()->recuperarCampo('hdnSiglasUsuarios'); + $strParticipanteSolr = ''; + + //Opção de Auto Completar Interressado + if(!$bolAutocompletarInterressado){ + + if(!InfraString::isBolVazia($strNomeParticipante)){ + $strParticipanteSolr = PesquisaUtil::buscaParticipantes($strNomeParticipante); + } + + } + + + + $strDisplayAvancado = 'block'; + $bolPreencheuAvancado = false; + if (($strSinProcessos=='P' || $strSinDocumentosGerados=='G' || $strSinDocumentosRecebidos=='R') && + !InfraString::isBolVazia($strIdParticipante) || + !InfraString::isBolVazia($strParticipanteSolr) || + !InfraString::isBolVazia($strIdAssinante) || + !InfraString::isBolVazia($strDescricaoPesquisa) || + !InfraString::isBolVazia($strObservacaoPesquisa) || + !InfraString::isBolVazia($strIdAssunto) || + !InfraString::isBolVazia($strIdUnidade) || + !InfraString::isBolVazia($strProtocoloPesquisa) || + !InfraString::isBolVazia($numIdTipoProcedimento) || + !InfraString::isBolVazia($numIdSerie) || + !InfraString::isBolVazia($strNumeroDocumentoPesquisa) || + !InfraString::isBolVazia($strDataInicio) || + !InfraString::isBolVazia($strDataFim) || + !InfraString::isBolVazia(str_replace(',','',$strUsuarios))){ + + //$strDisplayAvancado = 'none'; + $bolPreencheuAvancado = true; + } + + $q = PaginaSEIExterna::getInstance()->recuperarCampo('q'); + + $inicio = intval($_REQUEST["inicio"]); + + $strResultado = ''; + + if (isset($_POST['sbmPesquisar']) || ($_GET['acao_origem_externa'] == "protocolo_pesquisar_paginado")){ + + if(md5($_POST['txtCaptcha']) != $_POST['hdnCaptchaMd5'] && $_GET['hash'] != $_POST['hdnCaptchaMd5'] && $bolCaptcha == true){ + PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.'); + }else{ + //preencheu palavra de busca ou alguma opção avançada + if (!InfraString::isBolVazia($q) || $bolPreencheuAvancado) { + + try{ + $strResultado = BuscaProtocoloExterno::executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, 100, $strParticipanteSolr,$md5Captcha); + }catch(Exception $e){ + LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); + throw new InfraException('Erro realizando pesquisa.',$e); + } + + + } + + + +// if(strpos($strResultado, 'sem-resultado')){ + +// $strResultado = ''; +// } + + + } + + + } + + + + break; + + default: + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida."); + } + + $strItensSelTipoProcedimento = TipoProcedimentoINT::montarSelectNome('null',' ',$numIdTipoProcedimento); + $strItensSelSerie = SerieINT::montarSelectNomeRI0802('null',' ',$numIdSerie); + + $strLinkAjaxContatos = SessaoSEIExterna::getInstance()->assinarLink('controlador_ajax_externo.php?acao_ajax_externo=contato_auto_completar_contexto_pesquisa&id_orgao_acesso_externo=0'); + $strLinkAjaxUnidade = SessaoSEIExterna::getInstance()->assinarLink('controlador_ajax_externo.php?acao_ajax_externo=unidade_auto_completar_todas&id_orgao_acesso_externo=0'); + + $strLinkAjuda = PaginaSEIExterna::getInstance()->formatarXHTML(SessaoSEIExterna::getInstance()->assinarLink('ajuda_exibir_externo.php?acao_externa=pesquisa_solr_ajuda_externa&id_orgao_acesso_externo=0')); + + if ($strStaData=='0'){ + $strDisplayPeriodoExplicito = $strDisplayAvancado; + }else{ + $strDisplayPeriodoExplicito = 'none'; + } + + + + + +}catch(Exception $e){ + PaginaSEIExterna::getInstance()->processarExcecao($e); +} +PaginaSEIExterna::getInstance()->montarDocType(); +PaginaSEIExterna::getInstance()->abrirHtml(); +PaginaSEIExterna::getInstance()->abrirHead(); +PaginaSEIExterna::getInstance()->montarMeta(); +PaginaSEIExterna::getInstance()->montarTitle(':: '.PaginaSEIExterna::getInstance()->getStrNomeSistema().' - '.$strTitulo.' ::'); +PaginaSEIExterna::getInstance()->montarStyle(); +PaginaSEIExterna::getInstance()->abrirStyle(); +?> + +#lblPalavrasPesquisa{position:absolute;left:0%;top:4%;width:20%;} +#q{position:absolute;left:21%;top:1%;width:60%;} +#ancAjuda{position:absolute;left:82%;top:%;} +#sbmPesquisar {position:absolute;left:86%;top:5%; width:10%;} +#lnkAvancado {position:absolute;left:96%;top:5%;display:none;} + +#lblPesquisarEm {position:absolute;left:0%;top:17%;width:20%;} +#divSinProcessos {position:absolute;left:21%;top:15%;} +#divSinDocumentosGerados {position:absolute;left:38%;top:15%;} +#divSinDocumentosRecebidos {position:absolute;left:61%;top:15%;} + +#lblParticipante {position:absolute;left:0%;top:28%;width:20%;} +#txtParticipante {position:absolute;left:21%;top:27%;width:60%;} + + + +#lblUnidade {position:absolute;left:0%;top:40%;width:20%;} +#txtUnidade{position:absolute;left:21%;top:39%;width:60%;} +#lblProtocoloPesquisa{position:absolute;left:0%;top:50%;width:20%;} +#txtProtocoloPesquisa{position:absolute;left:21%;top:35%;width:20%;} +#lblProtocoloPesquisaComplemento {position:absolute;left:42%;top:14%;width:25%;} +#lblAssinante {position:absolute;left:0%;top:18%;width:20%;} +#txtAssinante {position:absolute;left:21%;top:17%;width:60%;} +#lblDescricaoPesquisa {position:absolute;left:0%;top:26%;width:20%;} +#txtDescricaoPesquisa {position:absolute;left:21%;top:25%;width:60%;} +#ancAjudaDescricao{position:absolute;left:82%;top:25%;} +#lblObservacaoPesquisa {position:absolute;left:0%;top:34%;width:20%;} +#txtObservacaoPesquisa {position:absolute;left:21%;top:33%;width:60%;} +#ancAjudaObservacao {position:absolute;left:82%;top:33%;} +#lblAssunto {position:absolute;left:0%;top:42%;width:20%;} +#txtAssunto {position:absolute;left:21%;top:41%;width:60%;} +#imgPesquisarAssuntos {position:absolute;top:41%;left:82%;} +#lblTipoProcedimentoPesquisa {position:absolute;left:0%;top:52%;width:20%;} +#selTipoProcedimentoPesquisa {position:absolute;left:21%;top:51%;width:60.5%;} +#lblSeriePesquisa {position:absolute;left:0%;top:64%;width:20%;} +#selSeriePesquisa {position:absolute;left:21%;top:63%;width:60.5%;} + +#lblNumeroDocumentoPesquisa +{position:absolute;left:0%;top:76%;width:20%;} +#txtNumeroDocumentoPesquisa +{position:absolute;left:21%;top:75%;width:20%;} #lblData +{position:absolute;left:0%;top:76%;width:20%;} #divOptPeriodoExplicito +{position:absolute;left:21%;top:75%;} #divOptPeriodo30 +{position:absolute;left:40%;top:75%;} #divOptPeriodo60 +{position:absolute;left:55%;top:75%;} #txtDataInicio +{position:absolute;left:21%;top:0%;width:9%;} #imgDataInicio +{position:absolute;left:31%;top:10%;} #lblDataE +{position:absolute;left:33%;top:10%;width:1%;} #txtDataFim +{position:absolute;left:35%;top:0%;width:9%;} #imgDataFim +{position:absolute;left:45%;top:10%;} #lblSiglaUsuario +{position:absolute;left:0%;top:0%;width:20%;} #txtSiglaUsuario1 +{position:absolute;left:21%;top:0%;width:9%;} #txtSiglaUsuario2 +{position:absolute;left:31%;top:0%;width:9%;} #txtSiglaUsuario3 +{position:absolute;left:41%;top:0%;width:9%;} #txtSiglaUsuario4 +{position:absolute;left:51%;top:0%;width:9%;} + +#divAvancado {display: ;} +#divPeriodoExplicito {display:;} +#divUsuario {display:;} +#lnkAvancado{ border-bottom: 1px solid transparent; color: #0000b0;text-decoration: none; } +.sugestao{ font-size: 1.2em; } +div#conteudo > div.barra { border-bottom: .1em solid #909090; font-size: 1.2em; margin:0 0 .5em 0; padding: 0 0 .5em 0; text-align: right; } +div#conteudo > div.paginas { border-top: .1em solid #909090; margin: 0 0 5em; padding:.5em 0 0 0; text-align: center; font-size: 1.2em; } +div#conteudo > div.sem-resultado { font-size:1.2em; margin: .5em 0 0 0; } +div#conteudo table { border-collapse: collapse; border-spacing: 0px; } +div#conteudo > table { margin: 0 0 .5em; width: 100%; } +table.resultado td {background: #f0f0f0; padding: .3em .5em; } +div#conteudo > table > tbody > tr:first-child > td { background: #e0e0e0; } +tr.resTituloRegistro td {background: #e0e0e0; } +div#conteudo a.protocoloAberto, div#conteudo a.protocoloNormal{ font-size:1.1em !important; } +div#conteudo a.protocoloAberto:hover, div#conteudo a.protocoloNormal:hover{text-decoration:underline !important; } +div#conteudo td.metatag > table{ border-collapse: collapse; margin: 0px auto; white-space: nowrap; } + +div#conteudo td.metatag > table { text-align: left; width:75%; } + +div#conteudo td.metatag > table > tbody > tr > td { color: #333333; font-size: .9em; padding: 0 2em; width:30%; } +div#conteudo td.metatag > table > tbody > tr > td:first-child { width:45%; } +div#conteudo td.metatag > table > tbody > tr > td > b { color: #006600; font-weight:normal; } +span.pequeno { font-size: .9em; } +div#mensagem { background:#e0e0e0; border-color: #c0c0c0; border-style: solid; border-width: .1em; margin: 4em auto 0; padding: 2em; } +div#mensagem > span.pequeno { color:#909090; font-size: .9em; } +td.resTituloEsquerda img.arvore { margin:0px 5px -3px 0px; } +td.resTituloDireita { text-align:right; width:20%; } + +div.paginas, div.paginas * { font-size: 12px; } div.paginas b {font-weight: bold; } +div.paginas a { border-bottom: 1px solid transparent; color: #000080; text-decoration: none; } +div.paginas a:hover { border-bottom: 1px solid #000000; color: #800000; } +td.resSnippet b { font-weight:bold; } +#divInfraAreaTabela tr.infraTrClara td {padding:.3em;} +#divInfraAreaTabela table.infraTable {border-spacing:0;} + + +#sbmPesquisar {position:absolute;left:86%;top:42%;width:10%;font-size: 1.2em} +#sbmLimpar {position:absolute;left:86%;top:52%; width:10%;font-size: 1.2em} +#lblCodigo {position:absolute;left:86%;top:8%;width:10%;} +#lblCaptcha {position:absolute;left:86%;top:0%;} +#txtCaptcha{position:absolute;left:86%;top:18%;width:10%;height:18%;font-size:3em;} + +#sbmPesquisar {position:absolute;left:86%;top:10%;width:10%;font-size: 1.2em} +#sbmLimpar {position:absolute;left:86%;top:70%; width:10%;font-size: 1.2em} + + +fecharStyle(); + +PaginaSEIExterna::getInstance()->montarJavaScript(); +PaginaSEIExterna::getInstance()->adicionarJavaScript('solr/js/sistema.js'); +PaginaSEIExterna::getInstance()->abrirJavaScript(); +?> + + +var objAutoCompletarInteressadoRI1225 = null; +var objAutoCompletarUsuario = null; +var objAutoCompletarAssuntoRI1223 = null; +var objAutoCompletarUnidade = null; + + + +function inicializar(){ + + + infraOcultarMenuSistemaEsquema(); + + + + //Interessado/Remetente + objAutoCompletarInteressadoRI1225 = new infraAjaxAutoCompletar('hdnIdParticipante','txtParticipante',''); + //objAutoCompletarInteressadoRI1225.maiusculas = true; + //objAutoCompletarInteressadoRI1225.mostrarAviso = true; + //objAutoCompletarInteressadoRI1225.tempoAviso = 1000; + //objAutoCompletarInteressadoRI1225.tamanhoMinimo = 3; + objAutoCompletarInteressadoRI1225.limparCampo = true; + //objAutoCompletarInteressadoRI1225.bolExecucaoAutomatica = false; + + + + objAutoCompletarInteressadoRI1225.prepararExecucao = function(){ + return 'palavras_pesquisa='+document.getElementById('txtParticipante').value; + }; + objAutoCompletarInteressadoRI1225.selecionar('','formatarParametrosJavascript($strNomeParticipante)?>'); + + + + //Unidades + objAutoCompletarUnidade = new infraAjaxAutoCompletar('hdnIdUnidade','txtUnidade',''); + + + objAutoCompletarUnidade.limparCampo = true; + objAutoCompletarUnidade.prepararExecucao = function(){ + return 'palavras_pesquisa='+document.getElementById('txtUnidade').value; + }; + objAutoCompletarUnidade.selecionar('','formatarParametrosJavascript($strDescricaoUnidade)?>'); + + document.getElementById('txtProtocoloPesquisa').focus(); + + + //remover a string null dos combos + document.getElementById('selTipoProcedimentoPesquisa').options[0].value=''; + document.getElementById('selSeriePesquisa').options[0].value=''; + + infraProcessarResize(); + + + + infraAbrirJanela('','janelaSigilosoPublicado',750,550,'location=0,status=1,resizable=1,scrollbars=1',false); + + + + sistemaInicializar(); + + +} + + +function tratarPeriodo(valor){ + if (valor=='0'){ + document.getElementById('divPeriodoExplicito').style.display='block'; + document.getElementById('txtDataInicio').value=''; + document.getElementById('txtDataFim').value=''; + }else if (valor =='30'){ + document.getElementById('divPeriodoExplicito').style.display='none'; + document.getElementById('txtDataInicio').value=''; + document.getElementById('txtDataFim').value=''; + }else if (valor =='60'){ + document.getElementById('divPeriodoExplicito').style.display='none'; + document.getElementById('txtDataInicio').value=''; + document.getElementById('txtDataFim').value=''; + } +} + +function sugerirUsuario(obj){ + if (infraTrim(obj.value)==''){ + obj.value = 'getStrSiglaUsuario()?>'; + } +} + + + +function obterUsuarios(){ + var objHdnUsuarios = document.getElementById('hdnSiglasUsuarios'); + objHdnUsuarios.value = ''; + + if (document.getElementById('txtSiglaUsuario1').value != ''){ + if (objHdnUsuarios.value == ''){ + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario1').value); + }else { + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario1').value); + } + } + if (document.getElementById('txtSiglaUsuario2').value != ''){ + if (objHdnUsuarios.value == ''){ + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario2').value); + }else { + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario2').value); + } + } + if (document.getElementById('txtSiglaUsuario3').value != ''){ + if (objHdnUsuarios.value == ''){ + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario3').value); + }else { + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario3').value); + } + } + if (document.getElementById('txtSiglaUsuario4').value != ''){ + if (objHdnUsuarios.value == ''){ + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario4').value); + }else { + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario4').value); + } + } +} + + + + + + + + +function onSubmitForm(){ + + if (!document.getElementById('chkSinProcessos').checked && !document.getElementById('chkSinDocumentosGerados').checked && !document.getElementById('chkSinDocumentosRecebidos').checked){ + alert('Selecione pelo menos uma das opções de pesquisa avançada: Processos, Documentos Gerados ou Documento Recebidos'); + return false; + } + + limpaFields(); + return partialFields(); + +} + +function exibirAvancado(){ + + if (document.getElementById('divAvancado').style.display=='none'){ + document.getElementById('divAvancado').style.display = 'block'; + + if (document.getElementById('optPeriodoExplicito').checked){ + document.getElementById('divPeriodoExplicito').style.display='block'; + }else{ + document.getElementById('divPeriodoExplicito').style.display='none'; + } + document.getElementById('divUsuario').style.display = 'block'; + + }else{ + document.getElementById('divAvancado').style.display = 'none'; + document.getElementById('divPeriodoExplicito').style.display='none'; + document.getElementById('divUsuario').style.display='none'; + document.getElementById('txtProtocoloPesquisa').focus(); + } + + infraProcessarResize(); +} + +fecharJavaScript(); +PaginaSEIExterna::getInstance()->fecharHead(); +PaginaSEIExterna::getInstance()->abrirBody($strTitulo,'onload="inicializar();"'); +?> +
+
+
+ +
+ + + + + + + + + + + +
+
+ + + + + + + + + + " tabindex="getProxTabDados()?>" /> + + + + + + +
+ tabindex="getProxTabDados()?>" /> + +
+
+ tabindex="getProxTabDados()?>" /> + +
+ +
+ tabindex="getProxTabDados()?>" /> + +
+ + + + + + + + + + + + + + + + + + + + +
+ class="infraRadio"/> + +
+ +
+ class="infraRadio"/> + +
+ +
+ class="infraRadio"/> + +
+
+ +
+ + Selecionar Data Inicial + + + Selecionar Data Final +
+ + + + + + + + + + + + + + + + + + + + + + +'; + echo $strResultado; +} + + + + + PaginaSEIExterna::getInstance()->montarAreaDebug(); +?> +
+fecharBody(); +PaginaSEIExterna::getInstance()->fecharHtml(); +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/rn/InstaladorModuloPesquisaPublicaRN.php b/sei/web/modulos/pesquisa/rn/InstaladorModuloPesquisaPublicaRN.php new file mode 100644 index 0000000..312d361 --- /dev/null +++ b/sei/web/modulos/pesquisa/rn/InstaladorModuloPesquisaPublicaRN.php @@ -0,0 +1,159 @@ +setBolLigado(true); + InfraDebug::getInstance()->setBolDebugInfra(true); + InfraDebug::getInstance()->setBolEcho(true); + InfraDebug::getInstance()->limpar(); + + $this->numSeg = InfraUtil::verificarTempoProcessamento(); + + $this->logar($strTitulo); + } + + private function logar($strMsg){ + InfraDebug::getInstance()->gravar($strMsg); + flush(); + } + + private function finalizar($strMsg=null, $bolErro){ + + if (!$bolErro) { + $this->numSeg = InfraUtil::verificarTempoProcessamento($this->numSeg); + $this->logar('TEMPO TOTAL DE EXECUÇÃO: ' . $this->numSeg . ' s'); + }else{ + $strMsg = 'ERRO: '.$strMsg; + } + + if ($strMsg!=null){ + $this->logar($strMsg); + } + + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + $this->numSeg = 0; + + } + + private function instalarv300(){ + + try { + + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + + $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 3.0.0 DO NODULO DE PESQUISA PUBLICA NA BASE DO SEI'); + $this->logar('CRIANDO A TABELA md_parametro_pesquisa'); + + BancoSEI::getInstance()->executarSql(' CREATE TABLE md_parametro_pesquisa ( + nome '.$objInfraMetaBD->tipoTextoFixo(100). ' NOT NULL , + valor '.$objInfraMetaBD->tipoTextoGrande().' + )'); + $objInfraMetaBD->adicionarChavePrimaria('md_parametro_pesquisa', 'pk_md_parametro_pesquisa', array('nome')); + + $this->logar('TABELA md_parametro_pesquisa CRIADA COM SUCESSO'); + $this->logar('INSERINDO DADOS NA TABELA md_parametro_pesquisa'); + + $arrParametroPesquisaDTO = array( + array('Nome' => ParametroPesquisaRN::$TA_CAPTCHA , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_CAPTCHA_PDF , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_ANDAMENTO_PROCESSO_PUBLICO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_PROCESSO_RESTRITO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_METADADOS_PROCESSO_RESTRITO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_ANDAMENTO_PROCESSO_RESTRITO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_DESCRICAO_PROCEDIMENTO_ACESSO_RESTRITO , 'Valor' => 'Processo ou Documento de Acesso Restrito - Para condições de acesso verifique a Condição de Acesso ou entre em contato com o Núcleo Gestor do ORGAO pelo e-mail sei@orgao.gov.br.'), + array('Nome' => ParametroPesquisaRN::$TA_DOCUMENTO_PROCESSO_PUBLICO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_PUBLICO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_LISTA_DOCUMENTO_PROCESSO_RESTRITO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_AUTO_COMPLETAR_INTERESSADO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_MENU_USUARIO_EXTERNO , 'Valor' => 'S'), + array('Nome' => ParametroPesquisaRN::$TA_CHAVE_CRIPTOGRAFIA , 'Valor' => 'ch@c3_cr1pt0gr@f1a'), + + + ); + + $arrObjParametroPesquisaDTO = InfraArray::gerarArrInfraDTOMultiAtributos('ParametroPesquisaDTO', $arrParametroPesquisaDTO); + + $objParametroPesquisaRN = new ParametroPesquisaRN(); + + foreach ($arrObjParametroPesquisaDTO as $objParametroPesquisaDTO){ + + $objParametroPesquisaRN->cadastrar($objParametroPesquisaDTO); + } + + + } catch (Exception $e) { + $this->logar($e->getTraceAsString()); + print_r($e); + die(); + } + } + + protected function instalarControlado(){ + + $this->inicializar('INICIANDO ATUALIZACAO DO MODULO DE PESQUISA PUBLICA NO SEI VERSAO '.SEI_VERSAO); + + //testando se esta usando BDs suportados + if (!(BancoSEI::getInstance() instanceof InfraMySql) && + !(BancoSEI::getInstance() instanceof InfraSqlServer) && + !(BancoSEI::getInstance() instanceof InfraOracle)){ + + $this->finalizar('BANCO DE DADOS NAO SUPORTADO: '.get_parent_class(BancoSEI::getInstance()),true); + + } + + //testando permissoes de criacoes de tabelas + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + + if (count($objInfraMetaBD->obterTabelas('sei_teste'))==0){ + BancoSEI::getInstance()->executarSql('CREATE TABLE sei_teste (id '.$objInfraMetaBD->tipoNumero().' null)'); + } + + BancoSEI::getInstance()->executarSql('DROP TABLE sei_teste'); + + $this->logar('INSTALACAO DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO DE PESQUISA PUBLICA NA BASE DO SEI'); + $this->instalarv300(); + $this->logar('INSTALACAO DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO DE PESQUISA PUBLICA NA BASE DO SEI REALIZADO COM SUCESSO!'); + $this->finalizar('FIM', false); + + } + +} + +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/rn/ParametroPesquisaRN.php b/sei/web/modulos/pesquisa/rn/ParametroPesquisaRN.php new file mode 100644 index 0000000..f481dda --- /dev/null +++ b/sei/web/modulos/pesquisa/rn/ParametroPesquisaRN.php @@ -0,0 +1,314 @@ +validarPermissao('md_parametro_pesquisa_consultar'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + $ret = $objParametroPesquisaBD->consultar($objParametroPesquisaDTO); + + //Auditoria + + return $ret; + }catch(Exception $e){ + throw new InfraException('Erro consultando Parâmetro da Pesquisa.',$e); + } + } + + protected function alterarParametrosControlado($objArrParametroPesquisaDTO){ + + try { + + // validaPermissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_alterar'); + foreach ($objArrParametroPesquisaDTO as $objParametroPesquisaDTO){ + $this->alterar($objParametroPesquisaDTO); + } + + } catch (Exception $e) { + throw new InfraException('Erro alterando Configurações da Pesquisa.',$e); + } + } + + + protected function alterarControlado(ParametroPesquisaDTO $objParametroPesquisaDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_alterar'); + + //Regras de Negocio + $objInfraException = new InfraException(); + + if ($objParametroPesquisaDTO->isSetStrNome()){ + $this->validarStrNome($objParametroPesquisaDTO, $objInfraException); + } + if ($objParametroPesquisaDTO->isSetStrValor()){ + $this->validarStrValor($objParametroPesquisaDTO, $objInfraException); + } + + $objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + $objParametroPesquisaBD->alterar($objParametroPesquisaDTO); + + //Auditoria + + }catch(Exception $e){ + throw new InfraException('Erro alterando Parâmetro da Pesquisa.',$e); + } + } + + + protected function listarConectado(ParametroPesquisaDTO $objParametroPesquisaDTO) { + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_listar'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + $ret = $objParametroPesquisaBD->listar($objParametroPesquisaDTO); + + //Auditoria + + return $ret; + + }catch(Exception $e){ + throw new InfraException('Erro listando Parâmetro da Pesquisas.',$e); + } + } + + + + private function validarStrNome(ParametroPesquisaDTO $objParametroPesquisaDTO, InfraException $objInfraException){ + if (InfraString::isBolVazia($objParametroPesquisaDTO->getStrNome())){ + $objInfraException->adicionarValidacao('Nome não informado.'); + }else{ + $objParametroPesquisaDTO->setStrNome(trim($objParametroPesquisaDTO->getStrNome())); + + if (strlen($objParametroPesquisaDTO->getStrNome())>100){ + $objInfraException->adicionarValidacao('Nome possui tamanho superior a 100 caracteres.'); + } + } + } + + private function validarStrValor(ParametroPesquisaDTO $objParametroPesquisaDTO, InfraException $objInfraException){ + if (InfraString::isBolVazia($objParametroPesquisaDTO->getStrValor())){ + $objParametroPesquisaDTO->setStrValor(null); + }else{ + $objParametroPesquisaDTO->setStrValor(trim($objParametroPesquisaDTO->getStrValor())); + } + } + + + protected function cadastrarControlado(ParametroPesquisaDTO $objParametroPesquisaDTO) { + try{ + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_cadastrar'); + + //Regras de Negocio + $objInfraException = new InfraException(); + + $this->validarStrNome($objParametroPesquisaDTO, $objInfraException); + $this->validarStrValor($objParametroPesquisaDTO, $objInfraException); + + $objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + $ret = $objParametroPesquisaBD->cadastrar($objParametroPesquisaDTO); + + //Auditoria + + return $ret; + + }catch(Exception $e){ + throw new InfraException('Erro cadastrando Parâmetro da Pesquisa.',$e); + } + } + + /* + + protected function consultarConectado(ParametroPesquisaDTO $objParametroPesquisaDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_consultar'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + $ret = $objParametroPesquisaBD->consultar($objParametroPesquisaDTO); + + //Auditoria + + return $ret; + }catch(Exception $e){ + throw new InfraException('Erro consultando Parâmetro da Pesquisa.',$e); + } + } + + protected function contarConectado(ParametroPesquisaDTO $objParametroPesquisaDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_listar'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + $ret = $objParametroPesquisaBD->contar($objParametroPesquisaDTO); + + //Auditoria + + return $ret; + }catch(Exception $e){ + throw new InfraException('Erro contando Parâmetro da Pesquisas.',$e); + } + } + + protected function excluirControlado($arrObjParametroPesquisaDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_excluir'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + for($i=0;$iexcluir($arrObjParametroPesquisaDTO[$i]); + } + + //Auditoria + + }catch(Exception $e){ + throw new InfraException('Erro excluindo Parâmetro da Pesquisa.',$e); + } + } + + protected function desativarControlado($arrObjParametroPesquisaDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_desativar'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + for($i=0;$idesativar($arrObjParametroPesquisaDTO[$i]); + } + + //Auditoria + + }catch(Exception $e){ + throw new InfraException('Erro desativando Parâmetro da Pesquisa.',$e); + } + } + + protected function reativarControlado($arrObjParametroPesquisaDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_reativar'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + for($i=0;$ireativar($arrObjParametroPesquisaDTO[$i]); + } + + //Auditoria + + }catch(Exception $e){ + throw new InfraException('Erro reativando Parâmetro da Pesquisa.',$e); + } + } + + protected function bloquearControlado(ParametroPesquisaDTO $objParametroPesquisaDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarPermissao('md_parametro_pesquisa_consultar'); + + //Regras de Negocio + //$objInfraException = new InfraException(); + + //$objInfraException->lancarValidacoes(); + + $objParametroPesquisaBD = new ParametroPesquisaBD($this->getObjInfraIBanco()); + $ret = $objParametroPesquisaBD->bloquear($objParametroPesquisaDTO); + + //Auditoria + + return $ret; + }catch(Exception $e){ + throw new InfraException('Erro bloqueando Parâmetro da Pesquisa.',$e); + } + } + + */ +} +?> \ No newline at end of file diff --git a/sei/web/modulos/pesquisa/solr/img/arvore.png b/sei/web/modulos/pesquisa/solr/img/arvore.png new file mode 100644 index 0000000..c4a5fee Binary files /dev/null and b/sei/web/modulos/pesquisa/solr/img/arvore.png differ diff --git a/sei/web/modulos/pesquisa/solr/js/sistema.js b/sei/web/modulos/pesquisa/solr/js/sistema.js new file mode 100644 index 0000000..63c08bf --- /dev/null +++ b/sei/web/modulos/pesquisa/solr/js/sistema.js @@ -0,0 +1,716 @@ +var SEP_COOKIE = "#_"; + +/** + * SISTEMA DA PAGINAÇÃO + */ + +var pagina = function() { + pagina.formulario = document.getElementById("seiSearch"); + pagina.campoPartialFields = document.getElementById("partialfields"); +} + +pagina.formulario = null; +pagina.campoPartialFields = null; + +pagina.ir = function(endereco) { + + endereco = endereco.infraReplaceAll('&', '&'); + endereco = endereco.infraReplaceAll('+', '%2B'); + + pagina.formulario.action = endereco; + + if (typeof(window.onSubmitForm)=='function' && !window.onSubmitForm()){ + return; + } + + pagina.formulario.submit(); +} + +/** + * FUNÇÃO PARA REMOVER ACENTOS + * ALTERADO PARA TROCAR PARA ENTITIES TAMBEM + */ + +function removerAcentos(texto) { + + var contador = 0; + var letras = { + procurar: ["á", "ã", "à", "â", "ä", "ç", "é", "ê", "è", "ë", "í", "ì", "ï", "ó", "õ", "ô", "ö", "ò", "ú", "ü", "ù", "ñ", ,"(" ,")"], + substituir: ["a", "a", "a", "a", "a", "c", "e", "e", "e", "e", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "n", "(", ")"] + } + + texto = texto.toLowerCase(); + + + for (contador; contador < letras.procurar.length; contador += 1) { + texto = texto.replace(letras.procurar[contador], letras.substituir[contador]); + } + + return texto; +} + +/** + * CLASSE CAMPO + */ + +var Campo = function(parametros) { + if (typeof parametros == "function") { + this.tratamento = parametros; + } else if (typeof parametros == "object") { + this.id = (typeof parametros.id == "object" || typeof parametros.id == "string") ? parametros.id : null; + this.nome = typeof parametros.nome == "string" ? parametros.nome : null; + this.opcoes = typeof parametros.opcoes == "object" ? parametros.opcoes : { }; + this.tratamento = null; + + this.objeto = function(indice) { + return document.getElementById(indice == null ? this.id : this.id[indice]); + } + } +} + +/** + * SISTEMA DE VALIDAÇÃO + */ + +var validar = function() { + var campo; + var opcoes; + var contador; + var valor; + + // VARRE OS CAMPOS + for (contador = 0; contador < validar.campos.length; contador += 1) { + campo = validar.campos[contador]; + + // VERIFICA SE POSSUI UMA FUNÇÃO PRÓPRIA DE TRATAMENTO + + if (campo.tratamento instanceof Function) { + + } else { + // VERIFICA SE É COMPOSTO POR MAIS DE UM CAMPO (CHECKBOX OU RADIO) + + if (campo.id instanceof Array) { + + } else { + opcoes = campo.opcoes; + + // DETERMINA QUE ELEMENTO É + switch (campo.objeto().tagName.toUpperCase()) { + case "SELECT": + + + break; + case "INPUT": + case "TEXTAREA": + valor = validar.limpar(campo.objeto().value); + if (valor.length > 0) { + if (opcoes.dividir) { + valor = validar.dividir(valor); + + if (valor.length > 1) { + valor = "(" + campo.nome + ":" + escape(escape(valor.join(" OR " + campo.nome + ":"))).replace(/%253A/g, ":").replace(/%257C/g, " OR ") + ")"; + } else { + valor = campo.nome + ":" + escape(escape(valor[0])); + } + } else { + valor = campo.nome + ":" + escape(escape(valor)); + } + } + + break; + } + } + } + } +} + +validar.campos = [ ] +validar.formulario = null; + +validar.dividir = function(valor, regra) { + var contador = 0; + var valorNovo = [ ] + + if ((regra instanceof RegExp) == false) { + regra = /[ ,;]/; + } + + // QUEBRA QUALQUER ESPAÇO EM BRANCO, VÍRGULA OU PONTO-E-VÍRGULA + valor = valor.split(regra); + + for (contador = 0; contador < valor.length; contador += 1) { + if (valor[contador].length > 0) { + valorNovo.push(valor[contador]); + } + } + + return valorNovo; +} + +// MÉTODO PARA LIMPEZA DO VALOR DE UM CAMPO + +validar.limpar = function(valor) { + var contador = 0; + var letras = { + procurar: ["á", "ã", "à", "â", "ä", "ç", "é", "ê", "è", "ë", "í", "ì", "ï", "ó", "õ", "ô", "ö", "ò", "ú", "ü", "ù", "ñ"], + substituir: ["a", "a", "a", "a", "a", "c", "e", "e", "e", "e", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "n"] + } + + valor = String(valor).replace(/^\s+|\s+$/g, "").toLowerCase(); + + for (contador; contador < letras.procurar.length; contador += 1) { + valor = valor.replace(letras.procurar[contador], letras.substituir[contador]); + } + + return valor; +} + +/** + * FUNÇÃO INVOCADA PELO ONLOAD DO BODY + */ + +function sistemaInicializar() { + // VALIDAÇÃO DO FORMULÁRIO AVANÇADO + + validar.formulario = document.getElementById("seiSearch"); + + // PESQUISAR EM + validar.campos.push(new Campo({ + id: ["chkSinProcessos", "chkSinDocumentosGerados", "chkSinDocumentosRecebidos"], + nome: "sta_prot" + })); + + // INTERESSADO / REMETENTE + validar.campos.push(new Campo({ + id: "hdnIdParticipante", + nome: "id_int" + })); + + // ASSINANTE + validar.campos.push(new Campo({ + id: "hdnIdAssinante", + nome: "id_assin" + })); + + // ASSUNTO + validar.campos.push(new Campo({ + id: "hdnIdAssunto", + nome: "id_assun" + })); + + // UNIDADES + validar.campos.push(new Campo({ + id: "hdnIdUnidade", + nome: "id_uni_ger" + })); + + // NÚMERO SEI! + validar.campos.push(new Campo({ + id: "txtProtocoloPesquisa", + nome: "prot_pesq" + })); + + // TIPO DO PROCESSO + validar.campos.push(new Campo({ + id: "selTipoProcedimentoPesquisa", + nome: "id_tipo_proc" + })); + + // TIPO DO DOCUMENTO + validar.campos.push(new Campo({ + id: "selSeriePesquisa", + nome: "id_serie" + })); + + // NÚMERO DO DOCUMENTO + validar.campos.push(new Campo({ + id: "txtNumeroDocumentoPesquisa", + nome: "numero" + })); + + // SIGLA DO USUÁRIO + validar.campos.push(new Campo({ + id: "hdnSiglasUsuarios", + nome: "id_usu_ger", + opcoes: { + dividir: true + } + })); + + // DATA + validar.campos.push(new Campo(function() { + + })); + + // PAGINAÇÃO + + pagina(); +} + +/** + * SISTEMA PARA A MANIPULAÇÃO DO FORMULÁRIO AVANÇADO + */ + +function ResBusca(dados) +{ + this.query = dados[0]; + this.totalRes = dados[1]; + this.url = dados[2]; + this.toString = function(){return "{" + this.query + SEP_COOKIE + this.totalRes + SEP_COOKIE + this.url + "}";}; +} + +var CookieResultado = +{ + addResultado: function (resultado) + { + var testeDuplicado = CookieResultado.isDuplicado(resultado.query); + if (testeDuplicado != -1) + CookieResultado.remove(testeDuplicado); + var valorCookie = Cookies.getCookie("res") == null ? "" : Cookies.getCookie("res"); + valorCookie = resultado.toString() + valorCookie; + if (valorCookie.split("}{").length > 6) + valorCookie = valorCookie.substring(0, valorCookie.lastIndexOf("{")); + Cookies.setCookie("res", valorCookie); + }, + + getListaResultados: function() + { + var valorCookie = Cookies.getCookie("res"); + if (valorCookie != null && valorCookie.length > 0) + { + valorCookie = valorCookie.substring(1, valorCookie.length - 1); + valorCookie = valorCookie.split("}{"); + var arrayResultados = new Array(); + for (var i = 0; i < valorCookie.length; i++) + arrayResultados[arrayResultados.length] = new ResBusca(valorCookie[i].split(SEP_COOKIE)); + return arrayResultados; + } + return null; + }, + + isDuplicado: function(termo) + { + var valorCookie = Cookies.getCookie("res"); + if (valorCookie != null && valorCookie.length > 0) + { + valorCookie = valorCookie.substring(1, valorCookie.length - 1); + valorCookie = valorCookie.split("}{"); + for (var i = 0; i < valorCookie.length; i++) + { + var temp = valorCookie[i].split(SEP_COOKIE); + if (temp[0].toLowerCase() == termo.toLowerCase()) + return i; + } + } + return -1; + }, + + remove: function(posicao) + { + var listaResultados = CookieResultado.getListaResultados(); + Cookies.setCookie("res", ''); + for (var i = (listaResultados.length - 1); i >= 0; i = i - 1) + { + if (posicao != i) + { + CookieResultado.addResultado(new ResBusca(new Array(listaResultados[i].query, listaResultados[i].totalRes, listaResultados[i].url))); + } + } + } +} + +var Cookies = +{ + setCookie: function (name, value, expires, path, domain, secure) + { + document.cookie = "busca_" + name + "=" + value + + ((expires) ? "; expires=" + expires : "") + + ((path) ? "; path=" + path : "") + + ((domain) ? "; domain=" + domain : "") + + ((secure) ? "; secure" : ""); + }, + + getCookie: function(name) + { + var nameEQ = "busca_" + name + "="; + var ca = document.cookie.split(';'); + for(var i=0; i < ca.length; i++) + { + var c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + } + return null; + }, + + clearAllCookies: function() + { + var ca = document.cookie.split(';'); + + for (var i=0;i < ca.length;i++) + { + var c = trim(ca[i]); + // Don't allow for cookies that start with two underscores or that are one + // character. + if (c.match(/^busca_/) != null) + { + var cookieName = c; + cookieName = cookieName.replace(/\=.*$/, ""); + cookieName = cookieName.replace(/^busca_/, ""); + Cookies.setCookie(cookieName, ''); + } + } + } +} + +var Util = { + + getParametro: function(parametro) + { + var url = location.href; + var paramValue = null; + if (url.indexOf("&" + parametro + "=") != -1) + { + var paramValue = url.substring(url.indexOf("&" + parametro + "=") + parametro.length + 1); + } + else if (url.indexOf("?" + parametro + "=") != -1) + { + var paramValue = url.substring(url.indexOf("?" + parametro + "=") + parametro.length + 1); + } + if (paramValue != null) + { + if (paramValue.indexOf("&") != -1) + paramValue = paramValue.substring(0, paramValue.indexOf("&")); + } + return paramValue; + }, + + getUrl: function(uri) + { + var url = location.href; + if (!uri) + { + url = url.substring(url.indexOf("://") + 3); + url = url.substring(url.indexOf("/")); + } + return url; + } +} + +/* + * exemplo new Array("nome da meta tag", "id do input") new Array("DT_nome da + * meta tag") Você pode colocar ids de campos input (type=text) e select + */ + +var mt = new Array( + + // INTERESSADO + new Array("id_int", "hdnIdParticipante"), + +// // REMETENTE Sera implementado depois +// new Array("id_rem", "hdnIdParticipante"), +// +// // DESTINATARIO +// new Array("id_dest", "hdnIdParticipante"), + + // ASSINANTE + new Array("id_assin", "hdnIdAssinante"), + + // ASSUNTO + new Array("id_assun", "hdnIdAssunto"), + + // UNIDADES + new Array("id_uni_ger", "hdnIdUnidade"), + + // NÚMERO SEI + new Array("prot_pesq", "txtProtocoloPesquisa"), + + // TIPO DO PROCESSO + new Array("id_tipo_proc", "selTipoProcedimentoPesquisa"), + + // TIPO DO DOCUMENTO + new Array("id_serie", "selSeriePesquisa"), + + // NÚMERO DO DOCUMENTO + new Array("numero", "txtNumeroDocumentoPesquisa") +); + +var mtCheckbox = new Array( + new Array("sta_prot", "chkSinProcessos", "chkSinDocumentosGerados", "chkSinDocumentosRecebidos") +); + +/* + * exemplo new Array("nome da meta tag", "id campo data inicial", "id campo data final", "nome para exibição") + */ +var mtRangeData = new Array( + // DATA + new Array("dta_ger", "txtDataInicio", "txtDataFim", "Período") +); + +var rangeMetaTags = ""; + +function trim(stringToTrim) { + return String(stringToTrim).replace(/^\s+|\s+$/g, ""); +} + +function getFullNumber(number) +{ + return number.length > 1 ? number : "0" + number; +} + + +function utf8Decode(utftext) { + var string = ""; + if (utftext != null) { + var i = 0; + var c = c1 = c2 = 0; + while (i < utftext.length) { + c = utftext.charCodeAt(i); + if (c < 128) { + string += String.fromCharCode(c); + i++; + } else if ((c > 191) && (c > 224)) { + c2 = utftext.charCodeAt(i + 1); + string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); + i += 2; + } else { + c2 = utftext.charCodeAt(i + 1); + c3 = utftext.charCodeAt(i + 2); + string += String.fromCharCode(((c & 15) << 12) + | ((c2 & 63) << 6) | (c3 & 63)); + i += 3; + } + } + } + while (string.indexOf("+") != -1) + string = string.replace("\+", " "); + return string; +} + +function utf8Encode(string) { + var utftext = ""; + if (string != null) { + string = string.replace(/\r\n/g, "\n"); + for ( var n = 0; n < string.length; n++) { + var c = string.charCodeAt(n); + var ch = string.charAt(n); + if (c < 128) { + utftext += String.fromCharCode(c); + + } else if ((c > 127) && (c < 2048)) { + utftext += String.fromCharCode((c >> 6) | 192); + utftext += String.fromCharCode((c & 63) | 128); + } else { + utftext += String.fromCharCode((c >> 12) | 224); + utftext += String.fromCharCode(((c >> 6) & 63) | 128); + utftext += String.fromCharCode((c & 63) | 128); + } + } + } + return utftext; +} + +function URLEncode(string) { + var returnString = escape(this.utf8Encode(string)); + //returnString = returnString.replace(/\./g, "%2E"); + //returnString = returnString.replace(/\|/g, "%7C"); + return returnString.replace(/:/g, "%3A"); +} + +function URLDecode(string) { + return this.utf8Decode(unescape(string)); +} + +function partialFields() { + var contador; + var erro = false; + var idUnidadeAberto; + var mtName; + var mtValue; + var partFields = document.getElementById("partialfields"); + + for (x = 0; x < mt.length; x++) { + mtName = mt[x][0]; + + if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "input") + mtValue = utf8Encode(formatarCaracteresEspeciais(removerAcentos(trim(document.getElementById(mt[x][1]).value)))); + else if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "select") { + mtValue = utf8Encode(trim(document.getElementById(mt[x][1]).options[document.getElementById(mt[x][1]).selectedIndex].value)); + } + + switch (mtName) { + + case "prot_pesq": + + //mtValue = mtValue.replace(/[^0-9]/g, ""); + mtValue = mtValue.replace(/[^0-9a-zA-Z]/g, ""); + + + + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + partFields.value += mtName + ":*" + mtValue +"*"; + } + break; + + default: + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") { + + var bolCampoMultiplo = false; + + if (mtName == 'id_int' || + mtName == 'id_rem' || + mtName == 'id_dest' || + mtName == 'id_assun' || + mtName == 'id_uni_aces' || + mtName == 'id_uni_aces' || + mtName == 'id_assin'){ + + bolCampoMultiplo = true; + } + + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + if (bolCampoMultiplo){ + partFields.value += mtName + ":*" + mtValue + "*"; + }else{ + partFields.value += mtName + ":" + mtValue; + } + + } + + break; + } + + + } + + + // SIGLAS DOS USUÁRIOS + var strVerificacao = removerAcentos(trim(document.getElementById("hdnSiglasUsuarios").value)); + + if (strVerificacao != ''){ + + var siglas = strVerificacao.split(','); + + if (siglas.length > 0) { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + partFields.value += "(id_usu_ger:" + siglas.join(" OR id_usu_ger:") + ")"; + } + } + + // CHECKBOX DO PESQUISAR EM + + for (contador = 0; contador < mtCheckbox.length; contador += 1) { + var campo; + var campos; + var dados = []; + + for (campos = 1; campos < mtCheckbox[contador].length; campos += 1) { + campo = document.getElementById(mtCheckbox[contador][campos]); + + if (campo.checked) { + dados.push(campo.value); + } + } + + if (dados.length > 0) { + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + + partFields.value += mtCheckbox[contador][0] + ":" + dados.join(";"); + } + } + + var dataInicio = infraTrim(document.getElementById('txtDataInicio').value); + var dataFim = infraTrim(document.getElementById('txtDataFim').value); + + if (dataInicio!='' || dataFim!=''){ + + if (dataInicio != '' && !infraValidarData(document.getElementById('txtDataInicio'))){ + return false; + } + + if (dataFim!='' && !infraValidarData(document.getElementById('txtDataFim'))){ + return false; + } + + if (dataInicio!='' && dataFim!='' && infraCompararDatas(dataInicio,dataFim) < 0){ + alert('Período de datas inválido.'); + document.getElementById('txtDataInicio').focus(); + return false; + } + + var dia1 = dataInicio.substr(0,2); + var mes1 = dataInicio.substr(3,2); + var ano1 = dataInicio.substr(6,4); + + var dia2 = dataFim.substr(0,2); + var mes2 = dataFim.substr(3,2); + var ano2 = dataFim.substr(6,4); + + if (partFields.value.length > 0) { + partFields.value += " AND "; + } + + if (dataInicio != '' && dataFim != '') { + partFields.value += 'dta_ger:[' + ano1 + '-' + mes1 + '-' + dia1 + 'T00:00:00Z TO ' + ano2 + '-' + mes2 + '-' + dia2 +'T00:00:00Z]'; + }else if (dataInicio != ''){ + partFields.value += 'dta_ger:"'+ ano1 + '-' + mes1 + '-' + dia1 + 'T00:00:00Z"'; + }else{ + partFields.value += 'dta_ger:"'+ ano2 + '-' + mes2 + '-' + dia2 + 'T00:00:00Z"'; + } + } + + return true; +} + +function checkForInt(e) { + var charCode = (e.which != null) ? e.which : event.keyCode; + return (charCode < 32 || (charCode >= 48 && charCode <= 57)); +} + +function checkForString(e) { + var k; + document.all ? k = e.keyCode : k = e.which; + return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8); +} + +function selecionaOp(elId, op) { + var el = document.getElementById(elId); + for ( var i = 0; i < el.options.length; i++) + if (el.options[i].value.toLowerCase() == op.toLowerCase()) { + el.selectedIndex = i; + break; + } +} + +function moveFoco(el, tamanho, idCampo) +{ + if (el.value.length == tamanho) + { + document.getElementById(idCampo).focus(); + } +} + +function limpaFields() { + rangeMetaTags = ""; + document.getElementById("partialfields").value = ""; +} + +function formatarCaracteresEspeciais(txt){ + + arrExc = Array(String.fromCharCode(92),'/','+','-','&','|','!','(',')','{','}','[',']','^','~','*','?',':'); + + for(var i=0;iinicializar(' SIP - INICIALIZAR '); + } + + protected function inicializarObjInfraIBanco(){ + return BancoSip::getInstance(); + } + + private function inicializar($strTitulo){ + + ini_set('max_execution_time','0'); + ini_set('memory_limit','-1'); + + try { + @ini_set('zlib.output_compression','0'); + @ini_set('implicit_flush', '1'); + }catch(Exception $e){} + + ob_implicit_flush(); + + InfraDebug::getInstance()->setBolLigado(true); + InfraDebug::getInstance()->setBolDebugInfra(true); + InfraDebug::getInstance()->setBolEcho(true); + InfraDebug::getInstance()->limpar(); + + $this->numSeg = InfraUtil::verificarTempoProcessamento(); + + $this->logar($strTitulo); + } + + private function logar($strMsg){ + InfraDebug::getInstance()->gravar($strMsg); + flush(); + } + + private function finalizar($strMsg=null, $bolErro){ + + if (!$bolErro) { + $this->numSeg = InfraUtil::verificarTempoProcessamento($this->numSeg); + $this->logar('TEMPO TOTAL DE EXECUÇÃO: ' . $this->numSeg . ' s'); + }else{ + $strMsg = 'ERRO: '.$strMsg; + } + + if ($strMsg!=null){ + $this->logar($strMsg); + } + + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + $this->numSeg = 0; + + } + + private function instalarV300(){ + + $strRotuloItemMenuPesquisaPublica = 'Pesquisa Pública'; + $strRotuloItemMenuParametrosPesquisaPublica = 'Parâmetros de Pesquisa'; + + $objSistemaRN = new SistemaRN(); + $objPerfilRN = new PerfilRN(); + $objMenuRN = new MenuRN(); + $objItemMenuRN = new ItemMenuRN(); + $objRecursoRN = new RecursoRN(); + + $objSistemaDTO = new SistemaDTO(); + $objSistemaDTO->retNumIdSistema(); + $objSistemaDTO->setStrSigla('SEI'); + + $objSistemaDTO = $objSistemaRN->consultar($objSistemaDTO); + + if ($objSistemaDTO == null){ + throw new InfraException('Sistema SEI não encontrado.'); + } + + $numIdSistemaSei = $objSistemaDTO->getNumIdSistema(); + + $objPerfilDTO = new PerfilDTO(); + $objPerfilDTO->retNumIdPerfil(); + $objPerfilDTO->setNumIdSistema($numIdSistemaSei); + $objPerfilDTO->setStrNome('Administrador'); + $objPerfilDTO = $objPerfilRN->consultar($objPerfilDTO); + + if ($objPerfilDTO == null){ + throw new InfraException('Perfil Administrador do sistema SEI não encontrado.'); + } + + $numIdPerfilSeiAdministrador = $objPerfilDTO->getNumIdPerfil(); + + $objMenuDTO = new MenuDTO(); + $objMenuDTO->retNumIdMenu(); + $objMenuDTO->setNumIdSistema($numIdSistemaSei); + $objMenuDTO->setStrNome('Principal'); + $objMenuDTO = $objMenuRN->consultar($objMenuDTO); + + if ($objMenuDTO == null){ + throw new InfraException('Menu do sistema SEI não encontrado.'); + } + + $numIdMenuSei = $objMenuDTO->getNumIdMenu(); + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO->setNumIdSistema($numIdSistemaSei); + $objItemMenuDTO->setStrRotulo('Administração'); + $objItemMenuDTO = $objItemMenuRN->consultar($objItemMenuDTO); + + if ($objItemMenuDTO == null){ + throw new InfraException('Item de menu Administração do sistema SEI não encontrado.'); + } + + $numIdItemMenuSeiAdministracao = $objItemMenuDTO->getNumIdItemMenu(); + + $this->logar('ATUALIZANDO RECURSOS, MENUS E PERFIS DO MÓDULO PETICIONAMENTO NA BASE DO SIP...'); + + //criando os recursos e vinculando-os aos perfil Administrador + $this->adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'md_parametro_pesquisa_alterar'); + $this->adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'md_parametro_pesquisa_consultar'); + $this->adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'md_parametro_pesquisa_cadastrar'); + $objRecursoDTO = $this->adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'md_parametro_pesquisa_listar'); + + //criando menu + + $objItemMenuPesquisaPublica = $this->adicionarItemMenu($numIdSistemaSei, $numIdPerfilSeiAdministrador, $numIdMenuSei, $numIdItemMenuSeiAdministracao, null, $strRotuloItemMenuPesquisaPublica, 0); + $this->adicionarItemMenu($numIdSistemaSei, $numIdPerfilSeiAdministrador, $numIdMenuSei, $objItemMenuPesquisaPublica->getNumIdItemMenu(), $objRecursoDTO->getNumIdRecurso(), $strRotuloItemMenuParametrosPesquisaPublica, 10); + + + //Adicionando regra de auditoria + $objRegraAuditoriaDTO = new RegraAuditoriaDTO(); + $objRegraAuditoriaDTO->retNumIdRegraAuditoria(); + $objRegraAuditoriaDTO->setNumIdRegraAuditoria(null); + $objRegraAuditoriaDTO->setStrSinAtivo('S'); + $objRegraAuditoriaDTO->setNumIdSistema($numIdSistemaSei); + $objRegraAuditoriaDTO->setArrObjRelRegraAuditoriaRecursoDTO( array() ); + $objRegraAuditoriaDTO->setStrDescricao('Modulo_Pesquisa_Publica'); + + $objRegraAuditoriaRN = new RegraAuditoriaRN(); + $objRegraAuditoriaDTO = $objRegraAuditoriaRN->cadastrar($objRegraAuditoriaDTO); + + $rs = BancoSip::getInstance()->consultarSql('select id_recurso from recurso where id_sistema='.$numIdSistemaSei.' and nome in ( + \'md_parametro_pesquisa_alterar\', + \'md_parametro_pesquisa_consultar\', + \'md_parametro_pesquisa_cadastrar\', + \'md_parametro_pesquisa_listar\')' + ); + + //CRIANDO REGRA DE AUDITORIA PARA NOVOS RECURSOS RECEM ADICIONADOS + foreach($rs as $recurso){ + BancoSip::getInstance()->executarSql('insert into rel_regra_auditoria_recurso (id_regra_auditoria, id_sistema, id_recurso) values ('.$objRegraAuditoriaDTO->getNumIdRegraAuditoria().', '.$numIdSistemaSei.', '.$recurso['id_recurso'].')'); + } + + $objReplicacaoRegraAuditoriaDTO = new ReplicacaoRegraAuditoriaDTO(); + $objReplicacaoRegraAuditoriaDTO->setStrStaOperacao('A'); + $objReplicacaoRegraAuditoriaDTO->setNumIdRegraAuditoria($objRegraAuditoriaDTO->getNumIdRegraAuditoria()); + + $objSistemaRN = new SistemaRN(); + $objSistemaRN->replicarRegraAuditoria($objReplicacaoRegraAuditoriaDTO); + + + } + + protected function instalarVersaoControlado(){ + + try { + + $this->inicializar('INICIANDO INSTALACAO DO MODULO PESQUISA PUBLICA NO SIP VERSAO '. SIP_VERSAO ); + + //checando versao do framework + $numVersaoInfraRequerida = '1.208'; + if (VERSAO_INFRA != $numVersaoInfraRequerida){ + $this->finalizar('VERSAO DO FRAMEWORK PHP INCOMPATIVEL (VERSAO ATUAL '.VERSAO_INFRA.', VERSAO REQUERIDA '.$numVersaoInfraRequerida.')',true); + } + + //checando BDs suportados + if (!(BancoSip::getInstance() instanceof InfraMySql) && + !(BancoSip::getInstance() instanceof InfraSqlServer) && + !(BancoSip::getInstance() instanceof InfraOracle)){ + $this->finalizar('BANCO DE DADOS NAO SUPORTADO: '.get_parent_class(BancoSip::getInstance()),true); + } + + //checando permissoes na base de dados + $objInfraMetaBD = new InfraMetaBD(BancoSip::getInstance()); + + if (count($objInfraMetaBD->obterTabelas('sip_teste'))==0){ + BancoSip::getInstance()->executarSql('CREATE TABLE sip_teste (id '.$objInfraMetaBD->tipoNumero().' null)'); + } + + BancoSip::getInstance()->executarSql('DROP TABLE sip_teste'); + + $this->instalarV300(); + + $this->logar('SIP - MÓDULO PESQUISA PUBLICA 3.0.0 CONFIGURADO COM SUCESSO'); + $this->finalizar('FIM', true); + + } catch (Exception $e) { + + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + throw new InfraException('Erro atualizando versão.', $e); + } + + } + +private function adicionarRecursoPerfil($numIdSistema, $numIdPerfil, $strNome, $strCaminho = null){ + + $objRecursoDTO = new RecursoDTO(); + $objRecursoDTO->retNumIdRecurso(); + $objRecursoDTO->setNumIdSistema($numIdSistema); + $objRecursoDTO->setStrNome($strNome); + + $objRecursoRN = new RecursoRN(); + $objRecursoDTO = $objRecursoRN->consultar($objRecursoDTO); + + if ($objRecursoDTO==null){ + + $objRecursoDTO = new RecursoDTO(); + $objRecursoDTO->setNumIdRecurso(null); + $objRecursoDTO->setNumIdSistema($numIdSistema); + $objRecursoDTO->setStrNome($strNome); + $objRecursoDTO->setStrDescricao(null); + + if ($strCaminho == null){ + $objRecursoDTO->setStrCaminho('controlador.php?acao='.$strNome); + }else{ + $objRecursoDTO->setStrCaminho($strCaminho); + } + + $objRecursoDTO->setStrSinAtivo('S'); + $objRecursoDTO = $objRecursoRN->cadastrar($objRecursoDTO); + } + + if ($numIdPerfil!=null){ + $objRelPerfilRecursoDTO = new RelPerfilRecursoDTO(); + $objRelPerfilRecursoDTO->setNumIdSistema($numIdSistema); + $objRelPerfilRecursoDTO->setNumIdPerfil($numIdPerfil); + $objRelPerfilRecursoDTO->setNumIdRecurso($objRecursoDTO->getNumIdRecurso()); + + $objRelPerfilRecursoRN = new RelPerfilRecursoRN(); + + if ($objRelPerfilRecursoRN->contar($objRelPerfilRecursoDTO)==0){ + $objRelPerfilRecursoRN->cadastrar($objRelPerfilRecursoDTO); + } + } + + return $objRecursoDTO; + + } + + private function removerRecursoPerfil($numIdSistema, $strNome, $numIdPerfil){ + + $objRecursoDTO = new RecursoDTO(); + $objRecursoDTO->setBolExclusaoLogica(false); + $objRecursoDTO->retNumIdRecurso(); + $objRecursoDTO->setNumIdSistema($numIdSistema); + $objRecursoDTO->setStrNome($strNome); + + $objRecursoRN = new RecursoRN(); + $objRecursoDTO = $objRecursoRN->consultar($objRecursoDTO); + + if ($objRecursoDTO!=null){ + $objRelPerfilRecursoDTO = new RelPerfilRecursoDTO(); + $objRelPerfilRecursoDTO->retTodos(); + $objRelPerfilRecursoDTO->setNumIdSistema($numIdSistema); + $objRelPerfilRecursoDTO->setNumIdRecurso($objRecursoDTO->getNumIdRecurso()); + $objRelPerfilRecursoDTO->setNumIdPerfil($numIdPerfil); + + $objRelPerfilRecursoRN = new RelPerfilRecursoRN(); + $objRelPerfilRecursoRN->excluir($objRelPerfilRecursoRN->listar($objRelPerfilRecursoDTO)); + + $objRelPerfilItemMenuDTO = new RelPerfilItemMenuDTO(); + $objRelPerfilItemMenuDTO->retTodos(); + $objRelPerfilItemMenuDTO->setNumIdSistema($numIdSistema); + $objRelPerfilItemMenuDTO->setNumIdRecurso($objRecursoDTO->getNumIdRecurso()); + $objRelPerfilItemMenuDTO->setNumIdPerfil($numIdPerfil); + + $objRelPerfilItemMenuRN = new RelPerfilItemMenuRN(); + $objRelPerfilItemMenuRN->excluir($objRelPerfilItemMenuRN->listar($objRelPerfilItemMenuDTO)); + } + } + + private function desativarRecurso($numIdSistema, $strNome){ + $objRecursoDTO = new RecursoDTO(); + $objRecursoDTO->retNumIdRecurso(); + $objRecursoDTO->setNumIdSistema($numIdSistema); + $objRecursoDTO->setStrNome($strNome); + + $objRecursoRN = new RecursoRN(); + $objRecursoDTO = $objRecursoRN->consultar($objRecursoDTO); + + if ($objRecursoDTO!=null){ + $objRecursoRN->desativar(array($objRecursoDTO)); + } + } + + private function removerRecurso($numIdSistema, $strNome){ + + $objRecursoDTO = new RecursoDTO(); + $objRecursoDTO->setBolExclusaoLogica(false); + $objRecursoDTO->retNumIdRecurso(); + $objRecursoDTO->setNumIdSistema($numIdSistema); + $objRecursoDTO->setStrNome($strNome); + + $objRecursoRN = new RecursoRN(); + $objRecursoDTO = $objRecursoRN->consultar($objRecursoDTO); + + if ($objRecursoDTO!=null){ + $objRelPerfilRecursoDTO = new RelPerfilRecursoDTO(); + $objRelPerfilRecursoDTO->retTodos(); + $objRelPerfilRecursoDTO->setNumIdSistema($numIdSistema); + $objRelPerfilRecursoDTO->setNumIdRecurso($objRecursoDTO->getNumIdRecurso()); + + $objRelPerfilRecursoRN = new RelPerfilRecursoRN(); + $objRelPerfilRecursoRN->excluir($objRelPerfilRecursoRN->listar($objRelPerfilRecursoDTO)); + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdRecurso($objRecursoDTO->getNumIdRecurso()); + + $objItemMenuRN = new ItemMenuRN(); + $arrObjItemMenuDTO = $objItemMenuRN->listar($objItemMenuDTO); + + $objRelPerfilItemMenuRN = new RelPerfilItemMenuRN(); + + foreach($arrObjItemMenuDTO as $objItemMenuDTO){ + $objRelPerfilItemMenuDTO = new RelPerfilItemMenuDTO(); + $objRelPerfilItemMenuDTO->retTodos(); + $objRelPerfilItemMenuDTO->setNumIdSistema($numIdSistema); + $objRelPerfilItemMenuDTO->setNumIdItemMenu($objItemMenuDTO->getNumIdItemMenu()); + + $objRelPerfilItemMenuRN->excluir($objRelPerfilItemMenuRN->listar($objRelPerfilItemMenuDTO)); + } + + $objItemMenuRN->excluir($arrObjItemMenuDTO); + $objRecursoRN->excluir(array($objRecursoDTO)); + } + } + + private function adicionarItemMenu($numIdSistema, $numIdPerfil, $numIdMenu, $numIdItemMenuPai, $numIdRecurso, $strRotulo, $numSequencia ){ + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + + if ($numIdItemMenuPai==null){ + $objItemMenuDTO->setNumIdMenuPai(null); + $objItemMenuDTO->setNumIdItemMenuPai(null); + }else{ + $objItemMenuDTO->setNumIdMenuPai($numIdMenu); + $objItemMenuDTO->setNumIdItemMenuPai($numIdItemMenuPai); + } + + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdRecurso($numIdRecurso); + $objItemMenuDTO->setStrRotulo($strRotulo); + + $objItemMenuRN = new ItemMenuRN(); + $objItemMenuDTO = $objItemMenuRN->consultar($objItemMenuDTO); + + if ($objItemMenuDTO==null){ + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdItemMenu(null); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + + if ($numIdItemMenuPai==null){ + $objItemMenuDTO->setNumIdMenuPai(null); + $objItemMenuDTO->setNumIdItemMenuPai(null); + }else{ + $objItemMenuDTO->setNumIdMenuPai($numIdMenu); + $objItemMenuDTO->setNumIdItemMenuPai($numIdItemMenuPai); + } + + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdRecurso($numIdRecurso); + $objItemMenuDTO->setStrRotulo($strRotulo); + $objItemMenuDTO->setStrDescricao(null); + $objItemMenuDTO->setNumSequencia($numSequencia); + $objItemMenuDTO->setStrSinNovaJanela('N'); + $objItemMenuDTO->setStrSinAtivo('S'); + $objItemMenuDTO = $objItemMenuRN->cadastrar($objItemMenuDTO); + } + + + if ($numIdPerfil!=null && $numIdRecurso!=null){ + + $objRelPerfilRecursoDTO = new RelPerfilRecursoDTO(); + $objRelPerfilRecursoDTO->setNumIdSistema($numIdSistema); + $objRelPerfilRecursoDTO->setNumIdPerfil($numIdPerfil); + $objRelPerfilRecursoDTO->setNumIdRecurso($numIdRecurso); + + $objRelPerfilRecursoRN = new RelPerfilRecursoRN(); + + if ($objRelPerfilRecursoRN->contar($objRelPerfilRecursoDTO)==0){ + $objRelPerfilRecursoRN->cadastrar($objRelPerfilRecursoDTO); + } + + $objRelPerfilItemMenuDTO = new RelPerfilItemMenuDTO(); + $objRelPerfilItemMenuDTO->setNumIdPerfil($numIdPerfil); + $objRelPerfilItemMenuDTO->setNumIdSistema($numIdSistema); + $objRelPerfilItemMenuDTO->setNumIdRecurso($numIdRecurso); + $objRelPerfilItemMenuDTO->setNumIdMenu($numIdMenu); + $objRelPerfilItemMenuDTO->setNumIdItemMenu($objItemMenuDTO->getNumIdItemMenu()); + + $objRelPerfilItemMenuRN = new RelPerfilItemMenuRN(); + + if ($objRelPerfilItemMenuRN->contar($objRelPerfilItemMenuDTO)==0){ + $objRelPerfilItemMenuRN->cadastrar($objRelPerfilItemMenuDTO); + } + } + + return $objItemMenuDTO; + } + + private function removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenu){ + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setNumIdItemMenu($numIdItemMenu); + + $objItemMenuRN = new ItemMenuRN(); + $objItemMenuDTO = $objItemMenuRN->consultar($objItemMenuDTO); + + if ($objItemMenuDTO!=null) { + + $objRelPerfilItemMenuDTO = new RelPerfilItemMenuDTO(); + $objRelPerfilItemMenuDTO->retTodos(); + $objRelPerfilItemMenuDTO->setNumIdSistema($numIdSistema); + $objRelPerfilItemMenuDTO->setNumIdMenu($objItemMenuDTO->getNumIdMenu()); + $objRelPerfilItemMenuDTO->setNumIdItemMenu($objItemMenuDTO->getNumIdItemMenu()); + + $objRelPerfilItemMenuRN = new RelPerfilItemMenuRN(); + $objRelPerfilItemMenuRN->excluir($objRelPerfilItemMenuRN->listar($objRelPerfilItemMenuDTO)); + + $objItemMenuRN->excluir(array($objItemMenuDTO)); + } + } + + private function removerPerfil($numIdSistema, $strNome){ + + $objPerfilDTO = new PerfilDTO(); + $objPerfilDTO->retNumIdPerfil(); + $objPerfilDTO->setNumIdSistema($numIdSistema); + $objPerfilDTO->setStrNome($strNome); + + $objPerfilRN = new PerfilRN(); + $objPerfilDTO = $objPerfilRN->consultar($objPerfilDTO); + + if ($objPerfilDTO!=null){ + + $objPermissaoDTO = new PermissaoDTO(); + $objPermissaoDTO->retNumIdSistema(); + $objPermissaoDTO->retNumIdUsuario(); + $objPermissaoDTO->retNumIdPerfil(); + $objPermissaoDTO->retNumIdUnidade(); + $objPermissaoDTO->setNumIdSistema($numIdSistema); + $objPermissaoDTO->setNumIdPerfil($objPerfilDTO->getNumIdPerfil()); + + $objPermissaoRN = new PermissaoRN(); + $objPermissaoRN->excluir($objPermissaoRN->listar($objPermissaoDTO)); + + $objRelPerfilItemMenuDTO = new RelPerfilItemMenuDTO(); + $objRelPerfilItemMenuDTO->retTodos(); + $objRelPerfilItemMenuDTO->setNumIdSistema($numIdSistema); + $objRelPerfilItemMenuDTO->setNumIdPerfil($objPerfilDTO->getNumIdPerfil()); + + $objRelPerfilItemMenuRN = new RelPerfilItemMenuRN(); + $objRelPerfilItemMenuRN->excluir($objRelPerfilItemMenuRN->listar($objRelPerfilItemMenuDTO)); + + $objRelPerfilRecursoDTO = new RelPerfilRecursoDTO(); + $objRelPerfilRecursoDTO->retTodos(); + $objRelPerfilRecursoDTO->setNumIdSistema($numIdSistema); + $objRelPerfilRecursoDTO->setNumIdPerfil($objPerfilDTO->getNumIdPerfil()); + + $objRelPerfilRecursoRN = new RelPerfilRecursoRN(); + $objRelPerfilRecursoRN->excluir($objRelPerfilRecursoRN->listar($objRelPerfilRecursoDTO)); + + $objCoordenadorPerfilDTO = new CoordenadorPerfilDTO(); + $objCoordenadorPerfilDTO->retTodos(); + $objCoordenadorPerfilDTO->setNumIdSistema($numIdSistema); + $objCoordenadorPerfilDTO->setNumIdPerfil($objPerfilDTO->getNumIdPerfil()); + + $objCoordenadorPerfilRN = new CoordenadorPerfilRN(); + $objCoordenadorPerfilRN->excluir($objCoordenadorPerfilRN->listar($objCoordenadorPerfilDTO)); + + $objPerfilRN->excluir(array($objPerfilDTO)); + } + } + + + protected function instalarModuloPesquisaPublicaV300Controlado(){ + + try { + + $this->inicializar('INICIANDO ATUALIZACAO DO MODULO PETICIONAMENTO NO SIP VERSAO '. SIP_VERSAO ); + + //checando BDs suportados + if (!(BancoSip::getInstance() instanceof InfraMySql) && + !(BancoSip::getInstance() instanceof InfraSqlServer) && + !(BancoSip::getInstance() instanceof InfraOracle)){ + $this->finalizar('BANCO DE DADOS NAO SUPORTADO: '.get_parent_class(BancoSip::getInstance()),true); + } + + //checando permissoes na base de dados + $objInfraMetaBD = new InfraMetaBD(BancoSip::getInstance()); + + if (count($objInfraMetaBD->obterTabelas('sip_teste'))==0){ + BancoSip::getInstance()->executarSql('CREATE TABLE sip_teste (id '.$objInfraMetaBD->tipoNumero().' null)'); + } + + BancoSip::getInstance()->executarSql('DROP TABLE sip_teste'); + + $this->instalarV300(); + + $this->logar('CONFIGURACAO DO MODULO DE PESQUISA PUBLICA 3.0.0 INSTALADAS COM SUCESSO NA BASE DO SIP REALIZADA COM SUCESSO!'); + $this->finalizar('FIM', false); + + + + } catch (Exception $e) { + } + + + } + +} + +//========================= INICIO SCRIPT EXECUÇAO ============= + +try{ + + session_start(); + + SessaoSip::getInstance(false); + + $objVersaoRN = new AtualizadorSipModuloPesquisaRN(); + $objVersaoRN->instalarModuloPesquisaPublicaV300(); + +}catch(Exception $e){ + echo(nl2br(InfraException::inspecionar($e))); + try{LogSip::getInstance()->gravar(InfraException::inspecionar($e));}catch(Exception $e){} +} + +//========================== FIM SCRIPT EXECUÇÂO ==================== +?> \ No newline at end of file -- libgit2 0.21.2