Commit 863e0a6752bb6dbad8c673c280911b416729c933

Authored by Alex Alves Braga
0 parents

Módulo completo da versão 2.0.0 do módulo

Showing 40 changed files with 5753 additions and 0 deletions   Show diff stats
sei/institucional/pesquisa/BancoCADE.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/BancoCADE.php
... ... @@ -0,0 +1,207 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-09-29
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * BancoCADE
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe infraestrutura para o banco de dados DBCade Sql Server 2012.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_ProcedimentoSiscadeRN
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../SEI.php';
  32 +
  33 +class BancoCADE extends InfraSqlServer{
  34 +
  35 + private static $instance = null;
  36 +
  37 + private $parametro = null;
  38 +
  39 +
  40 +
  41 +
  42 + public function __construct($param){
  43 + parent::__construct();
  44 + $this->parametro = $param;
  45 +
  46 + }
  47 +
  48 + public static function getInstance($param) {
  49 + if (self::$instance == null) {
  50 + self::$instance = new BancoCADE($param);
  51 + }
  52 + return self::$instance;
  53 + }
  54 +
  55 + public function getServidor() {
  56 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Servidor');
  57 + }
  58 +
  59 + public function getPorta() {
  60 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Porta');
  61 + }
  62 +
  63 + public function getBanco() {
  64 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Banco');
  65 + }
  66 +
  67 + public function getUsuario(){
  68 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Usuario');
  69 + }
  70 +
  71 + public function getSenha(){
  72 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Senha');
  73 + }
  74 +
  75 + public function isBolForcarPesquisaCaseInsensitive(){
  76 + return false;
  77 + }
  78 +
  79 + public function isBolValidarISO88591(){
  80 + return false;
  81 + }
  82 +
  83 +
  84 +
  85 + public function paginarSql($sql,$ini,$qtd){
  86 +
  87 + InfraDebug::getInstance()->gravarInfra('[InfraSqlServer->paginarSql] ');
  88 +
  89 + $arr = explode(' ',$sql);
  90 + $select = '';
  91 +
  92 +
  93 + for($i=0;$i<count($arr);$i++){
  94 +
  95 + if (strtoupper($arr[$i])=='FROM'){
  96 + break;
  97 + }
  98 +
  99 + $select .= ' '.$arr[$i];
  100 + }
  101 +
  102 + $from = '';
  103 + for(;$i<count($arr);$i++){
  104 + if (strtoupper($arr[$i])=='ORDER'){
  105 + break;
  106 + }
  107 + $from .= ' '.$arr[$i];
  108 + }
  109 +
  110 + if (trim($from)==''){
  111 + throw new InfraException('Cláusula FROM não encontrada.');
  112 + }
  113 +
  114 + $order = '';
  115 + for(;$i<count($arr);$i++){
  116 + $order .= ' '.$arr[$i];
  117 + }
  118 +
  119 + if (trim($order)==''){
  120 + throw new InfraException('Para utilizar a paginação com este banco de dados é necessário que a consulta utilize pelo menos um campo para ordenação.');
  121 + }
  122 +
  123 + $sql = '';
  124 + $sql .= ' SELECT IDENTITY(int,1,1) as InfraRowNumber, * INTO #InfraTabela FROM (';
  125 +
  126 + if (strpos(strtoupper($select),'DISTINCT')===false){
  127 + $sql .= $select;
  128 +
  129 +
  130 +
  131 + //$sql .= ',InfraRowCount = COUNT(*) OVER(),ROW_NUMBER() OVER ('.$order.') as InfraRowNumber ';
  132 + $sql .= $from;
  133 +
  134 + }else{
  135 + /*
  136 + Se tiver DISTINCT tem que montar de outra maneira, adicionando outro nível de consulta:
  137 + SELECT TOP 100 * FROM (
  138 + SELECT *
  139 + ,ROW_NUMBER() OVER (order by id_pessoa) as InfraRowNumber [order by sem o nome da tabela nos campos]
  140 + ,InfraRowCount = COUNT(*) OVER()
  141 + FROM (
  142 + [sql original sem o order by]
  143 + ) as InfraTabelaDistinct
  144 + ) AS InfraTabela
  145 + WHERE InfraRowNumber > 10
  146 + */
  147 +
  148 + $arrSelect = explode(' ',str_replace(',',' ',str_replace('CAST(','',str_replace(' as varchar)','',$select))));
  149 + $arrOrder = explode(' ',$order);
  150 + $order = '';
  151 +
  152 + for($i=0;$i<count($arrOrder);$i++){
  153 + $order .= ' ';
  154 + for($j=0;$j<count($arrSelect);$j++){
  155 + if ($arrSelect[$j]==$arrOrder[$i] && isset($arrSelect[$j+1]) && strtoupper($arrSelect[$j+1])=='AS' && isset($arrSelect[$j+2])){
  156 + $order .= $arrSelect[$j+2];
  157 + break;
  158 + }
  159 + }
  160 +
  161 + if ($j == count($arrSelect) && strpos($arrOrder[$i],'.')!==false){
  162 + //se o campo nao tinha alias e possui ".", deve retirar o nome da tabela principal
  163 + $order .= substr($arrOrder[$i],strpos($arrOrder[$i],'.')+1);
  164 + }else if ($j == count($arrSelect)){
  165 + //se o campo nao tinha alias e nao possui ".", apenas copia order
  166 + $order .= $arrOrder[$i];
  167 + }
  168 + }
  169 +
  170 + $sql .= ' SELECT *';
  171 + $sql .= ',InfraRowCount = COUNT(*) OVER(),ROW_NUMBER() OVER ('.$order.') as InfraRowNumber ';
  172 + $sql .= ' FROM (';
  173 + $sql .= $select;
  174 + $sql .= $from;
  175 + $sql .= ') AS InfraTabelaDistinct';
  176 + }
  177 +
  178 + //$sql.= ') as InfraTabela '.$order;
  179 + //melhorar esta parte usar ORDER vindo da Infra
  180 + $sql.= ') as InfraTabela ORDER BY pronumero ASC ';
  181 + $sql.= 'select *, (select count(*) from #InfraTabela ) as InfraRowCount from #InfraTabela where InfraRowNumber BETWEEN '.($ini+1) .' AND ' .($ini+$qtd).' ORDER BY InfraRowNumber';
  182 + $sql.= ' drop table #InfraTabela ';
  183 +
  184 +
  185 + //$sql .= ') AS InfraTabela WHERE InfraRowNumber BETWEEN '.($ini+1) .' AND ' .($ini+$qtd).' ORDER BY InfraRowNumber';
  186 +
  187 +
  188 +
  189 + $rs = $this->consultarSql($sql);
  190 +
  191 + return array('totalRegistros'=>$rs[0]['InfraRowCount'],'registrosPagina'=>$rs);
  192 + }
  193 +
  194 +
  195 +
  196 +
  197 +
  198 +
  199 +
  200 +
  201 +
  202 +}
  203 +
  204 +
  205 +
  206 +
  207 +?>
... ...
sei/institucional/pesquisa/BancoSISCADE.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/BancoSISCADE.php
... ... @@ -0,0 +1,83 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-12-15
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * BancoSISCADE
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe infraestrutura banco de dados SISCADE SQL Server 2008
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_BancoSISCADE
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../SEI.php';
  32 +
  33 +class BancoSISCADE extends InfraSqlServer{
  34 +
  35 + private static $instance = null;
  36 +
  37 + private $parametro = null;
  38 +
  39 + public function __construct($param){
  40 + parent::__construct();
  41 + $this->parametro = $param;
  42 +
  43 + }
  44 +
  45 + public static function getInstance($param) {
  46 + if (self::$instance == null) {
  47 + self::$instance = new BancoSISCADE($param);
  48 + }
  49 + return self::$instance;
  50 + }
  51 +
  52 + public function getServidor() {
  53 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Servidor');
  54 + }
  55 +
  56 + public function getPorta() {
  57 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Porta');
  58 + }
  59 +
  60 + public function getBanco() {
  61 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Banco');
  62 + }
  63 +
  64 + public function getUsuario(){
  65 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Usuario');
  66 + }
  67 +
  68 + public function getSenha(){
  69 + return ConfiguracaoPesquisa::getInstance()->getValor($this->parametro,'Senha');
  70 + }
  71 +
  72 + public function isBolForcarPesquisaCaseInsensitive(){
  73 + return false;
  74 + }
  75 +
  76 + public function isBolValidarISO88591(){
  77 + return false;
  78 + }
  79 +
  80 +
  81 +}
  82 +
  83 +?>
0 84 \ No newline at end of file
... ...
sei/institucional/pesquisa/BuscaProtocoloExterno.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/BuscaProtocoloExterno.php
... ... @@ -0,0 +1,641 @@
  1 +<?php
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-11-12
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * BuscaProtocoloExterno
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe de Busca na solução de indexação solr.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_BuscaProtocoloExterno
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * a @author e @copyright que devem ser mantidas inalteradas!
  27 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  28 + * <http://www.cade.gov.br>
  29 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  30 + */
  31 +
  32 +
  33 +require_once("SolrUtilExterno.php");
  34 +require_once ("Criptografia.php");
  35 +
  36 +class BuscaProtocoloExterno {
  37 +
  38 + public static function executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, $numMaxResultados, $strParticipanteSolr, $md5Captcha = null) {
  39 +
  40 + //carrega configurações pesquisa
  41 + $bolPesquisaDocumentoProcessoPublico = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','DocumentoProcessoPublico');
  42 + $bolPesquisaProcessoRestrito = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','ProcessoRestrito');
  43 + $bolLinkMetadadosProcessoRestrito = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','MetaDadosProcessoRestrito');
  44 + $txtDescricaoProcedimentoAcessoRestrito = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','DescricaoProcedimentoAcessoRestrito');
  45 + $bolAutocompletarInterressado = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','AutoCompletarInteressado');
  46 + $parametros = new stdClass();
  47 + $filtro = new stdClass();
  48 +
  49 + $partialfields = '';
  50 +
  51 + //die($_REQUEST["partialfields"]);
  52 +
  53 + if(!$bolAutocompletarInterressado){
  54 + $partialfields = $strParticipanteSolr;
  55 + }
  56 +
  57 +
  58 +
  59 + if (!InfraString::isBolVazia($_REQUEST["partialfields"])){
  60 + $partialfields = $partialfields.$_REQUEST["partialfields"];
  61 +
  62 +
  63 + $checkbox = array();
  64 + if (preg_match("/sta_protocolo:([A-Z;]+)/i", $partialfields, $checkbox) > 0) {
  65 + $checkbox = explode(";", $checkbox[1]);
  66 + }
  67 +
  68 +
  69 +
  70 + }else{
  71 + $checkbox = array('P','G','R');
  72 + }
  73 +
  74 + $grupo = array();
  75 +
  76 + // PESQUISAR EM: PROCESSOS
  77 + if (in_array("P", $checkbox)) {
  78 +
  79 + if($bolPesquisaProcessoRestrito){
  80 + array_push($grupo, "(sta_protocolo:P)");
  81 + }else{
  82 + array_push($grupo, "(sta_protocolo:P AND tipo_acesso:P)");
  83 + }
  84 +
  85 + }
  86 +
  87 + // PESQUISAR EM: DOCUMENTOS EXTERNOS
  88 + if (in_array("R", $checkbox)) {
  89 +
  90 + array_push($grupo, "(sta_protocolo:R AND tipo_acesso:P)");
  91 +
  92 +
  93 + }
  94 +
  95 + // PESQUISAR EM: DOCUMENTOS GERADOS
  96 + $filtroDocumentoInternoAssinado = '';
  97 + if (in_array("G", $checkbox)) {
  98 +
  99 + array_push($grupo, "(sta_protocolo:G AND tipo_acesso:P)");
  100 +
  101 +
  102 + }
  103 +
  104 + if (count($grupo)>0){
  105 + //Alteração para consulta externa sem login
  106 + $staProtocolo = '('.implode(" OR ", $grupo).')';
  107 + //$staProtocolo = '('.implode(" OR ", $grupo).') AND tipo_acesso:P';
  108 +
  109 +
  110 +
  111 +
  112 + if (preg_match("/sta_protocolo:([A-Z;]+)/i", $partialfields)){
  113 + $partialfields = preg_replace("/sta_protocolo:[A-Z;]+/i", $staProtocolo, $partialfields);
  114 + }else{
  115 + $partialfields .= $staProtocolo;
  116 + }
  117 + }
  118 +
  119 +
  120 +
  121 + /**
  122 + * ELABORA A URL
  123 + */
  124 +
  125 + $parametros->q = SolrUtilExterno::formatarOperadores($q);
  126 +
  127 + if ($strDescricaoPesquisa!=''){
  128 +
  129 + if ($parametros->q != ''){
  130 + $parametros->q .= ' AND ';
  131 + }
  132 +
  133 + $parametros->q .= '('.SolrUtilExterno::formatarOperadores($strDescricaoPesquisa, 'idx_descricao').')';
  134 + }
  135 +
  136 + if ($strObservacaoPesquisa!=''){
  137 + if ($parametros->q != ''){
  138 + $parametros->q .= ' AND ';
  139 + }
  140 + $parametros->q .= '('.SolrUtilExterno::formatarOperadores($strObservacaoPesquisa,'idx_observacao_'.SessaoSEI::getInstance()->getNumIdUnidadeAtual()).')';
  141 + }
  142 +
  143 +// $objUnidadeDTO = new UnidadeDTO();
  144 +// $objUnidadeDTO->setBolExclusaoLogica(false);
  145 +// $objUnidadeDTO->retStrSinProtocolo();
  146 +// $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  147 +
  148 +// $objUnidadeRN = new UnidadeRN();
  149 +// $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);
  150 +
  151 +// if ($objUnidadeDTO->getStrSinProtocolo()=='N'){
  152 +
  153 +// if ($partialfields != ''){
  154 +// $partialfields .= ' AND ';
  155 +// }
  156 +
  157 +// $partialfields .= '(tipo_acesso:P OR id_unidade_acesso:*'.SessaoSEI::getInstance()->getNumIdUnidadeAtual().'*)';
  158 +// }
  159 +
  160 +
  161 + /*
  162 + if (SessaoSEI::getInstance()->getNumIdOrgaoUsuario()==X && SessaoSEI::getInstance()->getStrSiglaUsuario()=='XXXX'){
  163 + */
  164 + //die($partialfields);
  165 + /*}
  166 + */
  167 +
  168 + $parametros->start = $inicio;
  169 +
  170 + if ($parametros->q != '' && $partialfields != ''){
  171 + $parametros->q .= ' AND ' .$partialfields;
  172 + }else if ($partialfields != ''){
  173 + $parametros->q = $partialfields;
  174 + }
  175 +
  176 + $parametros->sort = 'dta_geracao desc';
  177 +
  178 +
  179 + ////////////////////////////////
  180 +// print_r($parametros);
  181 +// die;
  182 + //////////////////////////////
  183 +
  184 +
  185 + $parametros->q = utf8_encode($parametros->q);
  186 +
  187 +
  188 +
  189 + //Monta url de busca
  190 + $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';
  191 +
  192 +
  193 +
  194 + // @DEBUG
  195 +
  196 + //echo 'URL:'.$urlBusca;
  197 + //echo "PARÂMETROS: " . print_r($parametros, true);
  198 +
  199 + //Objeto que contera o xml do resultado de busca
  200 + //$resultados = new SolrXmlResults($urlBusca, $numMaximoResultados);
  201 +
  202 + $numSeg = InfraUtil::verificarTempoProcessamento();
  203 + $resultados = file_get_contents($urlBusca, false);
  204 + $numSeg = InfraUtil::verificarTempoProcessamento($numSeg);
  205 +
  206 + if ($resultados == ''){
  207 + throw new InfraException('Nenhum retorno encontrado no resultado da pesquisa.');
  208 + }
  209 +
  210 + $xml = simplexml_load_string($resultados);
  211 +
  212 + $html = '';
  213 +
  214 + $arrRet = $xml->xpath('/response/result/@numFound');
  215 +
  216 + $itens = array_shift($arrRet);
  217 +
  218 +
  219 + $registros = $xml->xpath('/response/result/doc');
  220 +
  221 +
  222 + if ($itens == 0){
  223 +
  224 + $html .= "<div class=\"sem-resultado\">";
  225 + $html .= "Sua pesquisa pelo termo <b>" . preg_replace("/\"/", "&quot;", str_replace('\\','',$_REQUEST["q"])) . "</b> não encontrou nenhum processo ou documento correspondente.";
  226 + $html .= "<br/>";
  227 + $html .= "<br/>";
  228 + $html .= "Sugestões:";
  229 + $html .= "<ul>";
  230 + $html .= "<li>Certifique-se de que todas as palavras estejam escritas corretamente.</li>";
  231 + $html .= "<li>Tente palavras-chave diferentes.</li>";
  232 + $html .= "<li>Tente palavras-chave mais genéricas.</li>";
  233 + $html .= "</ul>";
  234 + $html .= "</div>";
  235 +
  236 +// }else if ($itens == 1) {
  237 +
  238 +// $linkArvoreDocumento = $xml->xpath("//str[@name='link_arvore']");
  239 +// if (is_array($linkArvoreDocumento)){
  240 +// //ALTERAÇÃO PARA PESQUISA DE PROCESSO EXTERNA.
  241 +// $idProtocolo = $xml->xpath("//str[@name='id_protocolo']");
  242 +// $idProtocolo = trim(urldecode($idProtocolo[0]));
  243 +// $objDocumentoRN = new DocumentoRN();
  244 +// $objDocumentoDTO = new DocumentoDTO();
  245 +// $objDocumentoDTO->setDblIdDocumento($idProtocolo);
  246 +// $objDocumentoDTO->retDblIdProcedimento();
  247 +// $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO);
  248 +// $urlPesquisaProcesso = 'processo_exibir.php?id_orgao_acesso_externo=0&id_procedimento='.$objDocumentoDTO->getDblIdProcedimento();
  249 +// $arvore = $urlPesquisaProcesso;
  250 +// header("Location: " . SessaoSEIExterna::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($urlPesquisaProcesso)));
  251 +// die;
  252 +// }
  253 +
  254 + }else{
  255 +
  256 + $html = SolrUtilExterno::criarBarraEstatisticas($itens,$inicio,($inicio+10));
  257 +
  258 +
  259 + $numRegistros = sizeof($registros);
  260 +// Se descomentar verificar redundancia da consulta para montar o link da arvore Linha 322
  261 +// for ($i = 0; $i < $numRegistros; $i++) {
  262 +// $teste = $registros[$i]->xpath("str[@name='tipo_acesso']");
  263 +// $idProtocolo = $registros[$i]->xpath("str[@name='id_protocolo']");
  264 +// $idProtocolo = trim(urldecode($idProtocolo[0]));
  265 +// $objDocumentoDTO = new DocumentoDTO();
  266 +// $objDocumentoRN = new DocumentoRN();
  267 +// $objDocumentoDTO->setDblIdDocumento($idProtocolo);
  268 +// $objDocumentoDTO->retDblIdProcedimento();
  269 +// $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo();
  270 +// $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO);
  271 +// $teste = $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo();
  272 +// if($objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != 0){
  273 +// $i++;
  274 +// $itens = $itens -1;
  275 +// unset($registros[$i]);
  276 +// continue;
  277 +// }
  278 +// }
  279 +
  280 +
  281 +
  282 +// $registros = array_values($registros);
  283 +
  284 +
  285 + for ($i = 0; $i < $numRegistros; $i++) {
  286 +
  287 +
  288 +
  289 + $dados = array();
  290 + $titulo = "";
  291 + $endereco = "";
  292 +
  293 + // ABSTRAI OS DADOS DAS METATAGS DO XML
  294 + $endereco = $registros[$i]->xpath("str[@name='id']");
  295 + $dados["tipo_acesso"] = $registros[$i]->xpath("str[@name='tipo_acesso']");
  296 + $dados["id_unidade_acesso"] = $registros[$i]->xpath("str[@name='id_unidade_acesso']");
  297 + $dados["id_unidade_geradora"] = $registros[$i]->xpath("str[@name='id_unidade_geradora']");
  298 + $dados["id_unidade_aberto"] = $registros[$i]->xpath("str[@name='id_unidade_aberto']");
  299 + $dados["identificacao_protocolo"] = $registros[$i]->xpath("str[@name='identificacao_protocolo']");
  300 + $dados["nome_tipo_processo"] = $registros[$i]->xpath("str[@name='nome_tipo_processo']");
  301 + $dados["protocolo_documento_formatado"] = $registros[$i]->xpath("str[@name='protocolo_documento_formatado']");
  302 + $dados["protocolo_processo_formatado"] = $registros[$i]->xpath("str[@name='protocolo_processo_formatado']");
  303 +
  304 +
  305 + $dados["tipo_acesso"] = utf8_decode($dados["tipo_acesso"][0]);
  306 + $dados["id_unidade_acesso"] = utf8_decode($dados["id_unidade_acesso"][0]);
  307 + $dados["id_unidade_geradora"] = utf8_decode($dados["id_unidade_geradora"][0]);
  308 + $dados["id_unidade_aberto"] = utf8_decode($dados["id_unidade_aberto"][0]);
  309 + $dados["identificacao_protocolo"] = utf8_decode($dados["identificacao_protocolo"][0]);
  310 + $dados["nome_tipo_processo"] = utf8_decode($dados["nome_tipo_processo"][0]);
  311 + $dados["protocolo_documento_formatado"] = utf8_decode($dados["protocolo_documento_formatado"][0]);
  312 + $dados["protocolo_processo_formatado"] = utf8_decode($dados["protocolo_processo_formatado"][0]);
  313 + $endereco = utf8_decode($endereco[0]);
  314 +
  315 + // VERIFICA OS DADOS
  316 + $dados["tipo_acesso"] = strtoupper(trim(strip_tags($dados["tipo_acesso"]))) == "NULL" ? null : $dados["tipo_acesso"];
  317 + $dados["id_unidade_acesso"] = strtoupper(trim(strip_tags($dados["id_unidade_acesso"]))) == "NULL" ? null : $dados["id_unidade_acesso"];
  318 + $dados["id_unidade_geradora"] = strtoupper(trim(strip_tags($dados["id_unidade_geradora"]))) == "NULL" ? null : $dados["id_unidade_geradora"];
  319 + $dados["id_unidade_aberto"] = strtoupper(trim(strip_tags($dados["id_unidade_aberto"]))) == "NULL" ? null : $dados["id_unidade_aberto"];
  320 + $dados["identificacao_protocolo"] = strtoupper(trim(strip_tags($dados["identificacao_protocolo"]))) == "NULL" ? null : $dados["identificacao_protocolo"];
  321 + $dados["nome_tipo_processo"] = strtoupper(trim(strip_tags($dados["nome_tipo_processo"]))) == "NULL" ? null : $dados["nome_tipo_processo"];
  322 + $dados["protocolo_documento_formatado"] = strtoupper(trim(strip_tags($dados["protocolo_documento_formatado"]))) == "NULL" ? null : $dados["protocolo_documento_formatado"];
  323 + $dados["protocolo_processo_formatado"] = strtoupper(trim(strip_tags($dados["protocolo_processo_formatado"]))) == "NULL" ? null : $dados["protocolo_processo_formatado"];
  324 +
  325 + // FORMATA OS DADOS
  326 + $dados["id_unidade_aberto"] = preg_split("/ *, */", $dados["id_unidade_aberto"], -1, PREG_SPLIT_NO_EMPTY);
  327 + $dados["id_unidade_acesso"] = preg_split("/ *, */", $dados["id_unidade_acesso"], -1, PREG_SPLIT_NO_EMPTY);
  328 + $dados["id_unidade_geradora"] = preg_split("/ *, */", $dados["id_unidade_geradora"], -1, PREG_SPLIT_NO_EMPTY);
  329 +
  330 +
  331 + //////////////////////////////////////////////// CONTROLE DE ACESSO ////////////////////////////////////////////////
  332 + //Não mostra registros que não deveriam ter retornado (se falhar algum critério de busca na montagem do "q")
  333 +// if ($objUnidadeDTO->getStrSinProtocolo()=='N'){
  334 +// if ($dados["tipo_acesso"]=='R' && !in_array(SessaoSEI::getInstance()->getNumIdUnidadeAtual(),explode(';',$dados["id_unidade_acesso"][0]))){
  335 +// continue;
  336 +// }
  337 +// }
  338 + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  339 +
  340 + $titulo = $dados["nome_tipo_processo"] . " N&deg; " . $dados["protocolo_processo_formatado"];
  341 +
  342 + if (empty($dados["protocolo_documento_formatado"]) == false) {
  343 + $titulo .= " ";
  344 + $titulo .= "(<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($endereco))) . "\"";
  345 +
  346 + if (in_array(SessaoSEI::getInstance()->getNumIdUnidadeAtual(), $dados["id_unidade_aberto"])) {
  347 + $titulo .= " title=\"Aberto nesta unidade\" class=\"protocoloAberto\"";
  348 + } else {
  349 + $titulo .= " title=\"Fechado nesta unidade\" class=\"protocoloNormal\"";
  350 + }
  351 +
  352 + $titulo .= ">" . $dados["identificacao_protocolo"] . "</a>)";
  353 + }
  354 +
  355 + //$tituloProtocolo = $dados["protocolo_documento_formatado"];
  356 + //$tituloProtocolo = 'N° SEI (Documento/Processo)';
  357 +
  358 + $arrMetatags = array();
  359 +
  360 + $strSiglaUnidadeGeradora = $registros[$i]->xpath("str[@name='sigla_unidade_geradora']");
  361 + $strSiglaUnidadeGeradora = utf8_decode($strSiglaUnidadeGeradora[0]);
  362 +
  363 + $strDescricaoUnidadeGeradora = $registros[$i]->xpath("str[@name='descricao_unidade_geradora']");
  364 + $strDescricaoUnidadeGeradora = utf8_decode($strDescricaoUnidadeGeradora[0]);
  365 +
  366 + $arrMetatags['Unidade Geradora'] = '<a alt="'.$strDescricaoUnidadeGeradora.'" title="'.$strDescricaoUnidadeGeradora.'" class="ancoraSigla">'.$strSiglaUnidadeGeradora.'</a>';
  367 +
  368 + $strSiglaUsuarioGerador = $registros[$i]->xpath("str[@name='sigla_usuario_gerador']");
  369 + $strSiglaUsuarioGerador = utf8_decode($strSiglaUsuarioGerador[0]);
  370 +
  371 + $strNomeUsuarioGerador = $registros[$i]->xpath("str[@name='nome_usuario_gerador']");
  372 + $strNomeUsuarioGerador = utf8_decode($strNomeUsuarioGerador[0]);
  373 +
  374 + //$arrMetatags['Usuário'] = '<a alt="'.$strNomeUsuarioGerador.'" title="'.$strNomeUsuarioGerador.'" class="ancoraSigla">'.$strSiglaUsuarioGerador.'</a>';
  375 +
  376 + $dtaGeracao = $registros[$i]->xpath("date[@name='dta_geracao']");
  377 + $dtaGeracao = utf8_decode($dtaGeracao[0]);
  378 +
  379 + $dtaGeracao = preg_replace("/(\d{4})-(\d{2})-(\d{2})(.*)/", "$3/$2/$1", $dtaGeracao);
  380 +
  381 + $arrMetatags['Data'] = $dtaGeracao;
  382 +
  383 + // SNIPPET
  384 + $numId = $registros[$i]->xpath("str[@name='id']");
  385 + $numId = utf8_decode($numId[0]);
  386 + $temp = $xml->xpath("/response/lst[@name='highlighting']/lst[@name='".$numId."']/arr[@name='content']/str");
  387 +
  388 + $snippet = '';
  389 + for($j=0;$j<count($temp);$j++){
  390 + $snippetTemp = utf8_decode($temp[$j]);
  391 + $snippetTemp = strtoupper(trim(strip_tags($snippetTemp))) == "NULL" ? null : $snippetTemp;
  392 + $snippetTemp = preg_replace("/<br>/i", "<br />", $snippetTemp);
  393 + $snippetTemp = preg_replace("/&lt;.*?&gt;/", "", $snippetTemp);
  394 + $snippet .= $snippetTemp.'<b>&nbsp;&nbsp;...&nbsp;&nbsp;</b>';
  395 + }
  396 +
  397 +
  398 +
  399 + // ÁRVORE
  400 + $arvore = $registros[$i]->xpath("str[@name='link_arvore']");
  401 + $arvore = trim(urldecode($arvore[0]));
  402 + //ALTERAÇÃO PARA PESQUISA DE PROCESSO EXTERNA.
  403 + $idProtocolo = $registros[$i]->xpath("str[@name='id_protocolo']");
  404 + $idProtocolo = trim(urldecode($idProtocolo[0]));
  405 +
  406 + $objProtocoloRN = new ProtocoloRN();
  407 + $objProtocoloDTO = new ProtocoloDTO();
  408 + $objProtocoloDTO->setDblIdProtocolo($idProtocolo);
  409 + $objProtocoloDTO->retDblIdProtocolo();
  410 + $objProtocoloDTO->retStrStaProtocolo();
  411 + $objProtocoloDTO->retStrStaNivelAcessoGlobal();
  412 + $objProtocoloDTO->retStrProtocoloFormatado();
  413 + $objProtocoloDTO->retNumIdHipoteseLegal();
  414 + $objProtocoloDTO = $objProtocoloRN->consultarRN0186($objProtocoloDTO);
  415 + $idProcedimento = '';
  416 + if($objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO){
  417 + $objDocumentoRN = new DocumentoRN();
  418 + $objDocumentoDTO = new DocumentoDTO();
  419 + $objDocumentoDTO->setDblIdDocumento($idProtocolo);
  420 + $objDocumentoDTO->retDblIdDocumento();
  421 + $objDocumentoDTO->retDblIdProcedimento();
  422 + $objDocumentoDTO->retNumIdSerie();
  423 + $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO);
  424 + $idProcedimento = $objDocumentoDTO->getDblIdProcedimento();
  425 +
  426 +
  427 + // INCLUIDO 21/12/2015 Substitui data de geração para data de assinatura de documentos gerados
  428 + if($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_DOCUMENTO_GERADO){
  429 +
  430 + $objAssinaturaDTO = new AssinaturaDTO();
  431 + $objAssinaturaDTO->setDblIdDocumento($idProtocolo);
  432 + $objAssinaturaDTO->setDthAberturaAtividade(InfraDTO::$TIPO_ORDENACAO_ASC);
  433 + $objAssinaturaDTO->retDthAberturaAtividade();
  434 +
  435 + $objAssinaturaRN = new AssinaturaRN();
  436 + $arrObjAssinaturaDTO = $objAssinaturaRN->listarRN1323($objAssinaturaDTO);
  437 +
  438 + if(is_array($arrObjAssinaturaDTO) && count($arrObjAssinaturaDTO) > 0) {
  439 +
  440 + $objAssinaturaDTO = $arrObjAssinaturaDTO[0];
  441 + if($objAssinaturaDTO != null && $objAssinaturaDTO->isSetDthAberturaAtividade()){
  442 +
  443 + $dtaGeracao = substr($objAssinaturaDTO->getDthAberturaAtividade(),0,10);
  444 +
  445 + $arrMetatags['Data'] = $dtaGeracao;
  446 +
  447 + }
  448 + }
  449 +
  450 +
  451 +
  452 + }
  453 +
  454 + if($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){
  455 +
  456 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  457 + $objAtributoAndamentoDTO->setDblIdProtocoloAtividade($idProcedimento);
  458 + $objAtributoAndamentoDTO->setNumIdTarefaAtividade(TarefaRN::$TI_RECEBIMENTO_DOCUMENTO);
  459 + $objAtributoAndamentoDTO->setStrNome("DOCUMENTO");
  460 + $objAtributoAndamentoDTO->setStrIdOrigem($idProtocolo);
  461 +
  462 + $objAtributoAndamentoDTO->retDthAberturaAtividade();
  463 +
  464 + $objAtributoAndamentoRN = new AtributoAndamentoRN();
  465 +
  466 + $objAtributoAndamentoDTO = $objAtributoAndamentoRN->consultarRN1366($objAtributoAndamentoDTO);
  467 +
  468 + if($objAtributoAndamentoDTO != null && $objAtributoAndamentoDTO->isSetDthAberturaAtividade()){
  469 +
  470 + $dtaGeracao = substr($objAtributoAndamentoDTO->getDthAberturaAtividade(),0,10);
  471 +
  472 + $arrMetatags['Data'] = $dtaGeracao;
  473 +
  474 + }
  475 + }
  476 +
  477 + }else{
  478 + $idProcedimento = $objProtocoloDTO->getDblIdProtocolo();
  479 + }
  480 +
  481 + $parametrosCriptografadosProcesso = Criptografia::criptografa('id_orgao_acesso_externo=0&id_procedimento='.$idProcedimento);
  482 + $urlPesquisaProcesso = 'processo_exibir.php?'.$parametrosCriptografadosProcesso;
  483 + $arvore = $urlPesquisaProcesso;
  484 +
  485 +
  486 + $tituloLinkNumeroProcesso = "<a href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($arvore))) . "\" target=\"_blank\" class=\"protocoloNormal\">";
  487 + $tituloLinkNumeroProcesso .= $dados["protocolo_processo_formatado"];
  488 + $tituloLinkNumeroProcesso .= "</a>";
  489 +
  490 + $tituloProtocolo = $tituloLinkNumeroProcesso;
  491 +
  492 +
  493 + $titulo = $dados["nome_tipo_processo"] . " N&deg; " . $tituloLinkNumeroProcesso;
  494 +
  495 + if (empty($dados["protocolo_documento_formatado"]) == false) {
  496 + $titulo .= " ";
  497 + $parametrosCriptografadosDocumentos = Criptografia::criptografa('id_orgao_acesso_externo=0&id_documento='.$objDocumentoDTO->getDblIdDocumento());
  498 + $endereco = 'documento_consulta_externa.php?'.$parametrosCriptografadosDocumentos;
  499 + $titulo .= "(<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\"";
  500 + $titulo .= " class=\"protocoloNormal\"";
  501 + $titulo .= ">" . $dados["identificacao_protocolo"] . "</a>)";
  502 +
  503 + $tituloProtocolo = "<a target=\"_blank\" href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink($endereco)) . "\" class=\"protocoloNormal\" >".$dados["protocolo_documento_formatado"]. "</a>";
  504 +
  505 + }
  506 +
  507 +
  508 +
  509 +
  510 + $tituloCompleto = "<a href=\"" . PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($arvore))) . "\" target=\"_blank\" class=\"arvore\">";
  511 + $tituloCompleto .= "<img border=\"0\" src=\"solr/img/arvore.png\" alt=\"\" title=\"Visualizar árvore\" width=\"14\" height=\"16\" class=\"arvore\" />";
  512 + $tituloCompleto .= "</a>";
  513 +
  514 + $tituloCompleto .= $titulo;
  515 +
  516 + // REMOVE TAGS DO TÍTULO
  517 + $tituloCompleto = preg_replace("/&lt;.*?&gt;/", "", $tituloCompleto);
  518 +
  519 +
  520 +
  521 +
  522 + if($objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && $bolPesquisaProcessoRestrito){
  523 +
  524 + if(!$bolLinkMetadadosProcessoRestrito || $objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO){
  525 + $tituloCompleto = $objProtocoloDTO->getStrProtocoloFormatado();
  526 + $titulo = $objProtocoloDTO->getStrProtocoloFormatado();
  527 + $tituloProtocolo = $objProtocoloDTO->getStrProtocoloFormatado();
  528 + //$tituloProtocolo = 'N° SEI (Documento/Processo)';
  529 +
  530 + $objHipoteseLegalDTO = new HipoteseLegalDTO();
  531 + $objHipoteseLegalDTO->retTodos(false);
  532 + $objHipoteseLegalDTO->setNumIdHipoteseLegal($objProtocoloDTO->getNumIdHipoteseLegal());
  533 +
  534 + $objHipoteseLegalRN = new HipoteseLegalRN();
  535 + $objHipoteseLegalDTO = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO);
  536 +
  537 + if($objHipoteseLegalDTO != null){
  538 + $snippet = '<b>Hipótese Legal de Restrição de Acesso: '.$objHipoteseLegalDTO->getStrNome().' ('.$objHipoteseLegalDTO->getStrBaseLegal().')</b>';
  539 + $txtDescricaoProcedimentoAcessoRestrito = trim($txtDescricaoProcedimentoAcessoRestrito);
  540 + if( !empty($txtDescricaoProcedimentoAcessoRestrito)){
  541 + $snippet .= '<br/>';
  542 + $snippet .= $txtDescricaoProcedimentoAcessoRestrito;
  543 + }
  544 + }else{
  545 + if( !empty($txtDescricaoProcedimentoAcessoRestrito)){
  546 + $snippet = $txtDescricaoProcedimentoAcessoRestrito;
  547 + }else{
  548 + $snippet = 'Processo de Acesso Restrito';
  549 + }
  550 +
  551 + }
  552 +
  553 + unset($arrMetatags['Usuário'] );
  554 + unset($arrMetatags['Unidade Geradora']);
  555 + unset($arrMetatags['Data']);
  556 + }
  557 +
  558 +
  559 +
  560 +
  561 + }
  562 +
  563 + // Protege contra a não idexação no solr quando o processo passa de público para restrito.
  564 + if(($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && !$bolPesquisaProcessoRestrito) || ($objProtocoloDTO->getStrStaProtocolo() == ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() == ProtocoloRN::$NA_SIGILOSO)){
  565 +
  566 + $tituloCompleto = 'ACESSO RESTRITO';
  567 + $titulo = 'ACESSO RESTRITO';
  568 + $tituloProtocolo = 'ACESSO RESTRITO';
  569 + unset($arrMetatags['Usuário'] );
  570 + unset($arrMetatags['Unidade Geradora']);
  571 + unset($arrMetatags['Data']);
  572 + $snippet = 'ACESSO RESTRITO';
  573 +
  574 +
  575 + }
  576 +
  577 + // Protege contra a não idexação no solr quando o documento passa de público para restrito.
  578 + //if($objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO && !$bolPesquisaDocumentoProcessoRestrito){
  579 + if($objProtocoloDTO->getStrStaProtocolo() != ProtocoloRN::$TP_PROCEDIMENTO && $objProtocoloDTO->getStrStaNivelAcessoGlobal() != ProtocoloRN::$NA_PUBLICO){
  580 +
  581 + $tituloCompleto = 'ACESSO RESTRITO';
  582 + $titulo = 'ACESSO RESTRITO';
  583 + $tituloProtocolo = 'ACESSO RESTRITO';
  584 + unset($arrMetatags['Usuário'] );
  585 + unset($arrMetatags['Unidade Geradora']);
  586 + unset($arrMetatags['Data']);
  587 + $snippet = 'ACESSO RESTRITO';
  588 +
  589 +
  590 + }
  591 +
  592 + $html .= "<table border=\"0\" class=\"resultado\">\n";
  593 + $html .= "<tr class=\"resTituloRegistro\">\n";
  594 + $html .= "<td class=\"resTituloEsquerda\">";
  595 + $html .= $tituloCompleto;
  596 + $html .= "</td>\n";
  597 + $html .= "<td class=\"resTituloDireita\">";
  598 + $html .= $tituloProtocolo;
  599 + $html .= "</td>\n";
  600 + $html .= "</tr>\n";
  601 +
  602 + if (empty($snippet) == false)
  603 + $html .= "<tr>\n
  604 + <td colspan=\"2\" class=\"resSnippet\">
  605 + " . $snippet . "
  606 + </td>\n
  607 + </tr>\n";
  608 +
  609 + if (count($arrMetatags)) {
  610 + $html .= "<tr>\n";
  611 + $html .= "<td colspan=\"2\" class=\"metatag\">\n";
  612 + $html .= "<table>\n";
  613 + $html .= "<tbody>\n";
  614 + $html .= "<tr>\n";
  615 +
  616 + foreach($arrMetatags as $nomeMetaTag => $valorMetaTag){
  617 +
  618 + $html .= "<td>";
  619 + $html .= "<b>" . $nomeMetaTag . ":</b> " . $valorMetaTag;
  620 + $html .= "</td>\n";
  621 +
  622 +
  623 + }
  624 +
  625 + $html .= "</tr>\n";
  626 + $html .= "</tbody>\n";
  627 + $html .= "</table>\n";
  628 + $html .= "</td>\n";
  629 + $html .= "</tr>\n";
  630 + }
  631 +
  632 + $html .= "</table>\n";
  633 + }
  634 +
  635 + $html .= SolrUtilExterno::criarBarraNavegacao($itens, $inicio, 10, PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(),$md5Captcha);
  636 + }
  637 +
  638 + return $html;
  639 + }
  640 +}
  641 +?>
... ...
sei/institucional/pesquisa/ConfiguracaoPesquisa.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/ConfiguracaoPesquisa.php
... ... @@ -0,0 +1,68 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2015-05-20
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * processo_pesquisar
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Pagina de configuração do módulo pesquisa.
  18 + *
  19 + *
  20 + * @package Cade_pesquisa_processo_pesquisar
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../SEI.php';
  32 +
  33 +class ConfiguracaoPesquisa extends InfraConfiguracao {
  34 +
  35 + private static $instance = null;
  36 +
  37 + public static function getInstance(){
  38 + if(ConfiguracaoPesquisa::$instance == null) {
  39 + ConfiguracaoPesquisa::$instance = new ConfiguracaoPesquisa();
  40 + }
  41 +
  42 + return ConfiguracaoPesquisa::$instance;
  43 + }
  44 +
  45 + public function getArrConfiguracoes() {
  46 + return array(
  47 +
  48 + 'Pesquisa' => array(
  49 + 'Legado' => false, // Habilita pesquisa de processos em sistema legado (anterior ao SEI) com banco de dados SQL Server 2000 ou 2008. Nativamente os códigos pertinetes a esta parte do módulo estão estruturados para a realidade interna dos Cade, podendo ser adaptados às necessidades da instalação local do órgão.
  50 + 'Captcha' => true, // Habilita captcha na página principal da Pesquisa Pública, para minimizar ações de "robô".
  51 + 'CaptchaPdf' => true, // Habilita captcha na ação "Gerar PDF" na página de processo, para minimizar ações de "robô".
  52 +
  53 + 'DocumentoProcessoPublico' => true, //Habilita a pesquisa diretamente em processos com nível de acesso global "Público", ou seja, que não tenha nenhum documento "Restrito".
  54 + 'ListaDocumentoProcessoPublico' => true, //Habilita o acesso aos Documentos nos processos com nível de acesso global "Público", ou seja, que não tenha nenhum documento "Restrito".
  55 + 'ListaAndamentoProcessoPublico' => true, //Habilita a exibição dos Andamentos nos processos com nível de acesso global "Público", ou seja, que não tenha nenhum documento "Restrito".
  56 +
  57 + 'ProcessoRestrito' => true, //Habilita a pesquisa diretamente em processos com nível de acesso global "Restrito", ou seja, que contenha qualquer documento "Restrito". O comportamento desta opção depende das próximas três opções abaixo.
  58 + 'MetaDadosProcessoRestrito' => true, //Habilita o acesso aos metadados do Processo com nível de acesso global "Restrito", ou seja, que contenha qualquer documento "Restrito".
  59 + 'ListaDocumentoProcessoRestrito' => true, //Habilita o acesso aos Documentos nos processos com nível de acesso global "Restrito", ou seja, que contenha qualquer documento "Restrito".
  60 + 'ListaAndamentoProcessoRestrito' => true, //Habilita a exibição dos Andamentos nos processos com nível de acesso global "Restrito", ou seja, que contenha qualquer documento "Restrito".
  61 +
  62 + 'AutoCompletarInteressado' => true, //Habilita a função auto completar no campo "Interessado / Remetente" na página principal da Pesquisa Pública.
  63 + 'DescricaoProcedimentoAcessoRestrito' => 'Processo ou Documento de Acesso Restrito - Para condições de acesso verifique a <a style="font-size: 1em;" href="http://www.cade.gov.br/Default.aspx?2808080814f235152223" target="_blank">Resolução n° 11/2014</a> ou entre em contato com o Núcleo Gestor do SEI pelo e-mail sei@cade.gov.br.', //Descrição de justificativa de restrição de acesso e orientações para meios alternativos de solicitação de acesso.
  64 + ),
  65 + );
  66 + }
  67 +}
  68 +?>
0 69 \ No newline at end of file
... ...
sei/institucional/pesquisa/ConverteURI.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/ConverteURI.php
... ... @@ -0,0 +1,60 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-10-02
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * ConverterURI
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Arquivo para conversão de url.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_controlador_ajax_externo
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * a @author e @copyright que devem ser mantidas inalteradas!
  27 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  28 + * <http://www.cade.gov.br>
  29 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  30 + */
  31 +
  32 +require_once ("Criptografia.php");
  33 + class ConverteURI{
  34 +
  35 + public static function converterURI(){
  36 +
  37 + try {
  38 + $arr = explode('?', $_SERVER['REQUEST_URI']);
  39 + $arrParametros = Criptografia::descriptografa($arr[1]);
  40 + //$parametros = explode('&', $arrParametros[0]);
  41 + $parametros = explode('&', $arrParametros);
  42 + $chaves = array();
  43 + $valores = array();
  44 + foreach ($parametros as $parametro){
  45 + $arrChaveValor = explode('=', $parametro);
  46 + $chaves[] = $arrChaveValor[0];
  47 + $valores[] = $arrChaveValor[1];
  48 +
  49 + }
  50 + $novosParametros = array_combine($chaves, array_values($valores));
  51 + $new_query_string = http_build_query($novosParametros);
  52 + $_SERVER['REQUEST_URI'] = $arr[0].'?'.$new_query_string;
  53 + $_GET = $novosParametros;
  54 + }catch (Exception $e){
  55 + throw new InfraException('Erro validando url.', $e);
  56 + }
  57 + }
  58 + }
  59 +
  60 +?>
... ...
sei/institucional/pesquisa/Criptografia.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/Criptografia.php
... ... @@ -0,0 +1,133 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-09-29
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * controlador_ajax_externo
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Arquivo para realizar criptografia de parametros.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_controlador_ajax_externo
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * a @author e @copyright que devem ser mantidas inalteradas!
  27 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  28 + * <http://www.cade.gov.br>
  29 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  30 + */
  31 +
  32 +/**
  33 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  34 +*
  35 +* 01/09/2014 - criado por alex braga
  36 +*
  37 +* Versão do Gerador de Código:
  38 +*
  39 +* Versão no CVS:
  40 +*/
  41 +
  42 +
  43 + class Criptografia{
  44 +
  45 + private static $KEY = 'c@d3s3mp@p3l';
  46 +
  47 + public static function criptografa($texto){
  48 + try {
  49 +
  50 + return strtr(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(Criptografia::$KEY), serialize($texto), MCRYPT_MODE_CBC, md5(md5(Criptografia::$KEY)))), '+/=', '-_,');
  51 +
  52 +
  53 + } catch (Exception $e) {
  54 +
  55 + throw new InfraException('Erro validando link externo.',$e);
  56 + }
  57 + }
  58 +
  59 + public static function descriptografa($texto){
  60 + try {
  61 +
  62 + return unserialize(rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(Criptografia::$KEY), base64_decode(strtr($texto, '-_,', '+/=')), MCRYPT_MODE_CBC, md5(md5(Criptografia::$KEY))), "\0"));
  63 + } catch (Exception $e) {
  64 +
  65 + throw new InfraException('Erro validando link externo.',$e);
  66 + }
  67 + }
  68 +
  69 + //Esta criptografia é usada no site do cade;
  70 + //Alterar metodo de criptografia por uma criptografia php.
  71 + public static function criptografaSiteCade($texto){
  72 +
  73 + $caminho = dirname(__FILE__).'/criptografia/mascaraArgumentos.jar';
  74 + $instrucao = 'java -jar '.$caminho.' \'criptografa\' \''.$texto.'\' \''.Criptografia::$KEY.'\' ';
  75 +
  76 + exec( $instrucao, $saida, $retorno);
  77 + if($retorno !=0){
  78 + throw new InfraException('Erro validando link externo.',$e);
  79 + }else{
  80 + return $saida;
  81 + }
  82 +
  83 + }
  84 + //Esta criptografia é usada no site do cade;
  85 + //Alterar metodo de criptografia por uma criptografia php.
  86 + public static function descriptografaSiteCade($texto){
  87 +
  88 + $caminho = dirname(__FILE__).'/criptografia/mascaraArgumentos.jar';
  89 + $instrucao = 'java -jar '.$caminho.' \'descriptografa\' \''.$texto.'\' \''.Criptografia::$KEY.'\' ';
  90 +
  91 + exec( $instrucao, $saida, $retorno);
  92 + if($retorno !=0){
  93 + throw new InfraException('Erro validando link externo.',$e);
  94 + }else{
  95 + return $saida;
  96 + }
  97 +
  98 + }
  99 +
  100 + //Esta criptografia é usada no site do cade;
  101 + //Alterar metodo de criptografia por uma criptografia php.
  102 + public static function descriptografaArgumentos($parametro){
  103 +
  104 + $parametrosCriptografados = $_SERVER['QUERY_STRING'];
  105 + $parametrosDescriptografados = Criptografia::descriptografa($parametrosCriptografados);
  106 + $arrParametros = explode("&", $parametrosDescriptografados[0]);
  107 + $bolRecuperParametro = false;
  108 + $valorParametro = '';
  109 + foreach ($arrParametros as $arrParametro){
  110 + $parametroRetorno = explode("=", $arrParametro);
  111 + if($parametroRetorno[0] == $parametro){
  112 + $bolRecuperParametro = true;
  113 + $valorParametro = $parametroRetorno[1];
  114 + break;
  115 + }else{
  116 + $bolRecuperParametro = false;
  117 + }
  118 + }
  119 +
  120 + if($bolRecuperParametro){
  121 + return $valorParametro;
  122 + }else{
  123 + throw new InfraException('Erro recuperando parâmetro.');
  124 + }
  125 +
  126 +
  127 + }
  128 +
  129 + }
  130 +
  131 +
  132 +
  133 +?>
0 134 \ No newline at end of file
... ...
sei/institucional/pesquisa/Leia-me.txt 0 → 100644
  1 +++ a/sei/institucional/pesquisa/Leia-me.txt
... ... @@ -0,0 +1,34 @@
  1 +Roteiro de instalação.
  2 +
  3 +1 - Caso ainda não exista, criar a pasta "institucional" na raiz do SEI (é mandatório a manutenção deste nome de pasta conforme o padrão do SEI para módulos):
  4 +
  5 + /sei/institucional
  6 +
  7 +2- Copiar a pasta de código "pesquisa" para a pasta sei/institucional:
  8 +
  9 + /sei/institucional/pesquisa
  10 +
  11 +3- Instalar o modulo php-mycrypt nos servidores de aplicação (este módulo é necessário para criação dos hash nos links de acesso à processos e documentos):
  12 +
  13 + # wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
  14 + # wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
  15 + # rpm -ivh epel-release-6-8.noarch.rpm
  16 + # yum install php-mcrypt
  17 +
  18 +4- Modificar o arquivo ConfiguracaoSEI.php para reconhecer o módulo:
  19 +
  20 + Ex. 'SEI' => array(
  21 + 'URL' => 'http://{nome_servidor}/sei/',
  22 + 'Producao' => true,
  23 + 'RepositorioArquivos' => '/sei-nfs/dados',
  24 + 'Modulos' => array(
  25 + 'Pesquisa' =>dirname(__FILE__).'/institucional/pesquisa',
  26 + ),
  27 +
  28 +5- O link para acesso à página de Pesquisa Pública é o seguinte:
  29 +
  30 + http://{nome_servidor}/sei/institucional/pesquisa/processo_pesquisar.php?acao_externa=protocolo_pesquisar&acao_origem_externa=protocolo_pesquisar&id_orgao_acesso_externo=0
  31 +
  32 +6- Diversas parametrizações de comportamento do módulo podem ser alteradas no arquivo sei/institucional/pesquia/ConfiguracaoPesquisa.php.
  33 +
  34 +7- Orientamos que este arquivo não seja mantido na pasta "sei/institucional/pesquisa" no servidor.
0 35 \ No newline at end of file
... ...
sei/institucional/pesquisa/PesquisaCADE.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/PesquisaCADE.php
... ... @@ -0,0 +1,78 @@
  1 +<?
  2 +
  3 +class PesquisaCADE{
  4 +
  5 +
  6 + public static function executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha,$inicio = 0,$paginaAtual = 0,$maxRetorno = 10){
  7 +
  8 + $objProcessoDTO = new ProcessoDTO();
  9 + $objProcessoDTO->setStrProNumero(str_replace(' ', '', $strProtocoloPesquisa));
  10 + $objProcessoDTO->setNomeParte(InfraString::excluirAcentos($strNomeParticipante));
  11 + $objProcessoDTO->retStrProNumero();
  12 + $objProcessoDTO->retNumProCodigo();
  13 + $objProcessoDTO->retStrTipproNome();
  14 + $objProcessoDTO->retStrProSumula();
  15 + //PaginaSEIExterna::getInstance()->prepararOrdenacao($objProcessoDTO,'ProNumero',InfraDTO::$TIPO_ORDENACAO_ASC);
  16 +
  17 +
  18 + $objProcessoRN = new ProcessoRN();
  19 +
  20 + //conta registro
  21 + //$totalRegistro = $objProcessoRN->contarComFiltro($objProcessoDTO);
  22 +
  23 + $totalRegistro = $objProcessoRN->contarProNumeroParte($objProcessoDTO);
  24 +
  25 + //Pesquisa paginada
  26 + $objProcessoDTO->setNumPaginaAtual($paginaAtual);
  27 + $objProcessoDTO->setNumMaxRegistrosRetorno($maxRetorno);
  28 + //PaginaSEIExterna::getInstance()->processarPaginacao($objProcessoDTO);
  29 + //$arrObjProcessoDTO = $objProcessoRN->listarTodosComFiltro($objProcessoDTO);
  30 + $arrObjProcessoDTO = $objProcessoRN->listarProNumeroParte($objProcessoDTO);
  31 +
  32 +
  33 +
  34 +
  35 + if ($totalRegistro != 0){
  36 +
  37 + //$bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEIExterna','https');
  38 +
  39 + $html = PesquisaUtil::criarBarraEstatisticas($totalRegistro,$inicio,($inicio+10));
  40 + $html .= '<a name = "Pesquisa_Intranet"></a>';
  41 + $html .= '<p style="text-align:center; font-size: 1.6em;"> Pesquisa Processual Site do Cade </p>';
  42 + $html .= '<table id="infraTableIntranet" width="99%" class="resultado">'."\n";
  43 + $html.= '<th>Resultado de pesquisa processual no site do CADE.</th>';
  44 +
  45 + foreach ($arrObjProcessoDTO as $objProtocoloDTO){
  46 + $html .= '<tr class="resTituloRegistro">';
  47 + $html .= '<td class="metatag" colspan="2">'."\n";
  48 + $strLinkArvoreCADE = "http://www.cade.gov.br/Processo.aspx?processo=".$objProtocoloDTO->getStrProNumero();
  49 +
  50 + // if ($bolHttps){
  51 + // $strLinkArvoreCADE = str_replace('http://','https://',$strLinkArvoreCADE);
  52 + // }
  53 +
  54 + $html .= '<a href="'.$strLinkArvoreCADE.'" target="_blank" class="arvore" ><img border="0" src="../../'.PaginaSEIExterna::getInstance()->getDiretorioImagensLocal().'/icone-arvore.png" alt="" title="Visualizar árvore" width="14" height="16" class="arvore" /></a> ';
  55 + //Tipo do Processo
  56 + $html .= '<a href="'.$strLinkArvoreCADE.'" target="_blank" style="font-size: 1em;">' .utf8_decode(iconv('CP850', 'UTF-8', $objProtocoloDTO->getStrTipproNome())).': Nº '. $objProtocoloDTO->getStrProNumero() . '</a>';
  57 + $html .= '</td>';
  58 + $html .= '<td align="right">'.$objProtocoloDTO->getStrProNumero().'</td>';
  59 + $html .= '</tr>'."\n";
  60 + $html .= '<tr class="infraTrClara">';
  61 + $html .= '<td colspan="2" class="metatag" style="padding: 0.8em 0.5em;">';
  62 + $html .= utf8_decode(iconv('CP850', 'UTF-8', $objProtocoloDTO->getStrProSumula()));
  63 + $html .= '<td/>';
  64 + $html .= '<tr/>';
  65 +
  66 +
  67 + }
  68 +
  69 + $html .= '</table>';
  70 + $html .= PesquisaUtil::criarBarraNavegacao($totalRegistro, $inicio, 10, PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(),'intranet',$md5Captcha);
  71 +
  72 + return $html;
  73 + }
  74 +
  75 + }
  76 +}
  77 +
  78 +?>
... ...
sei/institucional/pesquisa/PesquisaControlador.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/PesquisaControlador.php
... ... @@ -0,0 +1,17 @@
  1 +<?
  2 +
  3 + class PesquisaControlador implements ISeiControlador {
  4 +
  5 + public function processar($strAcao){
  6 +
  7 + switch ($strAcao){
  8 +
  9 +
  10 +
  11 + }
  12 +
  13 + return false;
  14 + }
  15 +
  16 + }
  17 +?>
0 18 \ No newline at end of file
... ...
sei/institucional/pesquisa/PesquisaControladorAjax.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/PesquisaControladorAjax.php
... ... @@ -0,0 +1,13 @@
  1 +<?
  2 + class PesquisaControladorAjax implements ISeiControladorAjax {
  3 +
  4 + public function processar($strAcaoAjax){
  5 +
  6 + $xml = null;
  7 +
  8 + return $xml;
  9 + }
  10 +
  11 +}
  12 +
  13 +?>
0 14 \ No newline at end of file
... ...
sei/institucional/pesquisa/PesquisaControladorWebServices.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/PesquisaControladorWebServices.php
... ... @@ -0,0 +1,13 @@
  1 +<?
  2 + class PesquisaControladorWebServices implements ISeiControladorWebServices {
  3 +
  4 + public function processar($strServico){
  5 +
  6 + $strArq = null;
  7 +
  8 +
  9 + return $strArq;
  10 + }
  11 +
  12 +}
  13 +?>
0 14 \ No newline at end of file
... ...
sei/institucional/pesquisa/PesquisaIntegracao.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/PesquisaIntegracao.php
... ... @@ -0,0 +1,44 @@
  1 +<?
  2 + class PesquisaIntegracao implements ISeiIntegracao {
  3 +
  4 + public function __construct(){
  5 + }
  6 +
  7 + public function montarBotaoProcedimento(SeiIntegracaoDTO $objSeiIntegracaoDTO){
  8 +
  9 + }
  10 +
  11 + public function montarIconeProcedimento(SeiIntegracaoDTO $objSeiIntegracaoDTO){
  12 + return array();
  13 + }
  14 +
  15 + public function montarBotaoDocumento(SeiIntegracaoDTO $objSeiIntegracaoDTO){
  16 + return array();
  17 + }
  18 +
  19 + public function montarIconeDocumento(SeiIntegracaoDTO $objSeiIntegracaoDTO){
  20 + return array();
  21 + }
  22 +
  23 + public function excluirProcedimento(ProcedimentoDTO $objProcedimentoDTO){
  24 + }
  25 +
  26 + public function atualizarConteudoDocumento(DocumentoDTO $objDocumentoDTO){
  27 + }
  28 +
  29 + public function excluirDocumento(DocumentoDTO $objDocumentoDTO){
  30 + }
  31 +
  32 + public function montarBotaoControleProcessos(){}
  33 +
  34 + public function montarIconeControleProcessos($arrObjProcedimentoDTO){}
  35 +
  36 + public function montarIconeAcompanhamentoEspecial($arrObjProcedimentoDTO){
  37 + return null;
  38 + }
  39 +
  40 +
  41 +
  42 +
  43 + }
  44 +?>
... ...
sei/institucional/pesquisa/PesquisaSISCADE.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/PesquisaSISCADE.php
... ... @@ -0,0 +1,83 @@
  1 +<?
  2 +
  3 +class PesquisaSISCADE{
  4 +
  5 +
  6 + public static function executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha = null,$inicio = 0,$paginaAtual = 0,$maxRetorno = 10){
  7 +
  8 + $objProcedimentoSiscadeDTO = new ProcedimentoSiscadeDTO();
  9 + $objProcedimentoSiscadeDTO->setStrNrProcedimento(str_replace(' ', '', $strProtocoloPesquisa));
  10 + $objProcedimentoSiscadeDTO->setNumIdConfidencialidade(ProcedimentoSiscadeRN::$NA_PUBLICO);
  11 + $objProcedimentoSiscadeDTO->setStrNomeParte(InfraString::excluirAcentos($strNomeParticipante));
  12 + $objProcedimentoSiscadeDTO->retTodos(true);
  13 + //PaginaSEIExterna::getInstance()->prepararOrdenacao($objProcedimentoSiscadeDTO,'NrProcedimento',InfraDTO::$TIPO_ORDENACAO_ASC);
  14 +
  15 +
  16 + $objProcedimentoSiscadeRN = new ProcedimentoSiscadeRN();
  17 + //conta registro
  18 + //$totalRegistro = $objProcedimentoSiscadeRN->contarComFiltro($objProcedimentoSiscadeDTO);
  19 +
  20 + $totalRegistro = $objProcedimentoSiscadeRN->contarProcedimentoParte($objProcedimentoSiscadeDTO);
  21 +
  22 +
  23 +
  24 + //Pesquisa paginada
  25 +
  26 +
  27 + $objProcedimentoSiscadeDTO->setNumPaginaAtual($paginaAtual);
  28 + $objProcedimentoSiscadeDTO->setNumMaxRegistrosRetorno($maxRetorno);
  29 + //PaginaSEIExterna::getInstance()->processarPaginacao($objProcedimentoSiscadeDTO);
  30 + //$arrObjProcedimentoSiscadeDTO = $objProcedimentoSiscadeRN->listarTodosComFiltro($objProcedimentoSiscadeDTO);
  31 + $arrObjProcedimentoSiscadeDTO = $objProcedimentoSiscadeRN->listarProcedimentoParte($objProcedimentoSiscadeDTO);
  32 +
  33 +
  34 + if ($totalRegistro != 0){
  35 +
  36 + //$bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEIExterna','https');
  37 +
  38 + $html = PesquisaUtil::criarBarraEstatisticas($totalRegistro,$inicio,($inicio+10));
  39 + $html .= '<a name="Pesquisa_Siscade"></a>';
  40 + $html .= '<p style="text-align:center; font-size: 1.6em;"> Pesquisa Processual Siscade </p>';
  41 + $html .= '<table id="infraTableSiscade" width="99%" class="resultado">'."\n";
  42 + $html.= '<th>Resultado de pesquisa processual Siscade</th>';
  43 +
  44 + foreach ($arrObjProcedimentoSiscadeDTO as $objProtocoloDTO){
  45 + $html .= '<tr class="resTituloRegistro">';
  46 + $html .= '<td class="metatag" colspan="2">'."\n";
  47 + $strLinkArvoreCADE = "http://200.198.193.169/SiCADEExternoPesquisaProcessosPublicos.html";
  48 +
  49 + // if ($bolHttps){
  50 + // $strLinkArvoreCADE = str_replace('http://','https://',$strLinkArvoreCADE);
  51 + // }
  52 +
  53 + $html .= '<a href="'.$strLinkArvoreCADE.'" target="_blank" class="arvore"><img border="0" src="../../'.PaginaSEIExterna::getInstance()->getDiretorioImagensLocal().'/icone-arvore.png" alt="" title="Visualizar árvore" width="14" height="16" class="arvore" /></a> ';
  54 + //Tipo do Procedimento
  55 + $html .= '<a href="'.$strLinkArvoreCADE.'" target="_blank" style="font-size: 1em;" onclick="return confirm(\'Você será redirecionado para o Siscade. Digite o N° '.$objProtocoloDTO->getStrNrProcedimento().' para realizar a pesquisa \')" >' . $objProtocoloDTO->getStrNmEspecie() .': Nº '. $objProtocoloDTO->getStrNrProcedimento() . '</a>';
  56 + $html .= '</td>';
  57 + $html .= '<td align="right">'.$objProtocoloDTO->getStrNrProcedimento().'</td>';
  58 + $html .= '</tr>'."\n";
  59 + $html .= '<tr class="infraTrClara">';
  60 + $html .= '<td colspan="2" class="metatag" style="padding: 0.8em 0.5em;">';
  61 + //$html .= utf8_decode(iconv('CP850', 'UTF-8', $objProtocoloDTO->getStrTxResumo()));
  62 + $html .= $objProtocoloDTO->getStrTxResumo();
  63 + $html .= '<td/>';
  64 + $html .= '<tr/>';
  65 +
  66 +
  67 + }
  68 +
  69 + $html .= '</table>';
  70 + $html .= PesquisaUtil::criarBarraNavegacao($totalRegistro, $inicio, 10, PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(),'siscade',$md5Captcha);
  71 +
  72 + return $html;
  73 + }
  74 +
  75 +
  76 + }
  77 +
  78 +
  79 +
  80 +}
  81 +
  82 +
  83 +?>
... ...
sei/institucional/pesquisa/PesquisaUtil.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/PesquisaUtil.php
... ... @@ -0,0 +1,157 @@
  1 +<?
  2 +
  3 +class PesquisaUtil {
  4 +
  5 +
  6 + public static function criarBarraEstatisticas($total,$inicio,$fim) {
  7 + return "<div class=\"barra\">".self::obterTextoBarraEstatisticas($total,$inicio,$fim)."</div>";
  8 + }
  9 +
  10 + public static function obterTextoBarraEstatisticas($total,$inicio,$fim) {
  11 + $ret = '';
  12 + if ($total > 0 && $total != "") {
  13 + if ($total < $fim) {
  14 + $ret .= $total.' resultado'.($total>1?'s':'');
  15 + } else {
  16 + $ret .= "Exibindo " . ($inicio+1) . " - " . $fim . " de " . $total;
  17 + }
  18 + }
  19 + return $ret;
  20 + }
  21 +
  22 + //Cria a navegacao completa
  23 + public static function criarBarraNavegacao($totalRes, $inicio, $numResPorPag, $objPagina, $objSessao, $strLocalPesquisa,$md5Captcha = null,$strControlador = 'processo_pesquisar.php')
  24 + {
  25 +
  26 + if ($totalRes == 0)
  27 + return;
  28 +
  29 + $nav = "<div class=\"paginas\">";
  30 +
  31 + $paginaAtual = $inicio / $numResPorPag + 1;
  32 +
  33 + $urlSemInicio = $strControlador.'?acao_externa='.$_GET['acao_externa']."&acao_origem_externa=protocolo_pesquisar_paginado";
  34 +
  35 + $urlSemInicio .= '&local_pesquisa='.$strLocalPesquisa;
  36 +
  37 + $hash = (!is_null($md5Captcha)) ? "&hash=".$md5Captcha : "";
  38 +
  39 + if ($inicio != null ) {
  40 + $nav .= "<span class=\"pequeno\"><a href=\"javascript:pagina.ir('" . $objPagina->formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='. ($paginaAtual - 2) . "&inicio_cade=" . ($inicio - $numResPorPag) . $hash)) . "')\">Anterior</a></span>\n";
  41 + }
  42 +
  43 + if ($totalRes > $numResPorPag)
  44 + {
  45 + $numPagParaClicar = 12;
  46 +
  47 + if (ceil($totalRes / $numResPorPag) > $numPagParaClicar)
  48 + {
  49 + $iniNav = ($paginaAtual - floor(($numPagParaClicar - 1) / 2)) - 1;
  50 + $fimNav = ($paginaAtual + ceil(($numPagParaClicar - 1) / 2));
  51 +
  52 + if ($iniNav < 0)
  53 + {
  54 + $iniNav = 0;
  55 + $fimNav = $numPagParaClicar;
  56 + }
  57 +
  58 + if ($fimNav > ceil($totalRes / $numResPorPag))
  59 + {
  60 + $fimNav = ceil($totalRes / $numResPorPag);
  61 + $iniNav = $fimNav - $numPagParaClicar;
  62 + }
  63 + }
  64 + else
  65 + {
  66 + $iniNav = 0;
  67 + $fimNav = ceil($totalRes / $numResPorPag);
  68 + }
  69 +
  70 + for ($i = $iniNav; $i < $fimNav; $i++)
  71 + {
  72 + $numPagina = $i;
  73 + if ($inicio == 0 AND $i == 0){
  74 + $nav .= " <b>" . ($i + 1) . "</b> ";
  75 + }elseif (($i + 1) == ($inicio / $numResPorPag + 1)){
  76 + $nav .= " <b>" . ($i + 1) . "</b> ";
  77 + }else{
  78 + //$nav .= " <a href=\"javascript:pagina.ir('" . str_replace('+','%2B',$objPagina->formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='.$numPagina."&inicio=" . ($i * $numResPorPag)))).'#Pesquisa_Siscade' . "')\">" . ($i + 1) . "</a>\n";
  79 + $nav .= " <a href=\"javascript:pagina.ir('" . str_replace('+','%2B',$objPagina->formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='.$numPagina."&inicio_cade=" . ($i * $numResPorPag) . $hash)))."')\">" . ($i + 1) . "</a>\n";
  80 +
  81 + }
  82 + }
  83 + }
  84 +
  85 + if (($inicio / $numResPorPag) + 1 != ceil($totalRes / $numResPorPag)) {
  86 + $nav .= "<span class=\"pequeno\"><a href=\"javascript:pagina.ir('" . $objPagina->formatarXHTML($objSessao->assinarLink($urlSemInicio . '&num_pagina='.$paginaAtual . "&inicio_cade=" . ($inicio + $numResPorPag) . $hash)) . "')\">Próxima</a></span>\n";
  87 + }
  88 +
  89 + $nav .= "</div>";
  90 +
  91 + return $nav;
  92 + }
  93 +
  94 + public static function buscaParticipantes($strNomeParticipante){
  95 +
  96 + $objContatoDTO = new ContatoDTO();
  97 + $objContatoDTO->retNumIdContato();
  98 +
  99 +
  100 + $objContatoDTO->setStrPalavrasPesquisa($strNomeParticipante);
  101 +
  102 + if ($numIdGrupoContato!=''){
  103 + $objContatoDTO->setNumIdGrupoContato($numIdGrupoContato);
  104 + }
  105 +
  106 + $objContatoDTO->setStrSinContexto('S');
  107 +
  108 + $objContatoDTO->setNumMaxRegistrosRetorno(50);
  109 +
  110 + $objContatoDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC);
  111 +
  112 + $objContatoRN = new ContatoRN();
  113 + $arrObjContatoDTO = $objContatoRN->pesquisarRN0471($objContatoDTO);
  114 +
  115 + $ret = PesquisaUtil::preparaIdParticipantes($arrObjContatoDTO);
  116 +
  117 + return $ret;
  118 +
  119 +
  120 +
  121 + }
  122 +
  123 + private static function preparaIdParticipantes($arrObjContatoDTO){
  124 + $strIdParticipante = '';
  125 + if(!empty($arrObjContatoDTO) && count($arrObjContatoDTO) == 1){
  126 + $strIdParticipante = $strIdParticipante.'id_participante:*'.$arrObjContatoDTO[0]->getNumIdContato().'* AND ';
  127 + }
  128 + else if (!empty($arrObjContatoDTO) && count($arrObjContatoDTO) > 1){
  129 + $count = 0;
  130 + $strIdParticipante = 'id_participante:(';
  131 + for($i=0;$i < count($arrObjContatoDTO); $i++){
  132 + $count = $count + 1;
  133 + $strIdParticipante = $strIdParticipante.'*'.$arrObjContatoDTO[$i]->getNumIdContato().'*';
  134 + if($count < count($arrObjContatoDTO)){
  135 + $strIdParticipante = $strIdParticipante.' OR ';
  136 + }
  137 +
  138 + if($count == count($arrObjContatoDTO)){
  139 + $strIdParticipante = $strIdParticipante.') AND ';
  140 + }
  141 + }
  142 +
  143 +// foreach ($arrObjContatoDTO as $objContatoDTO){
  144 +// $strIdParticipante = $strIdParticipante.'*'.$objContatoDTO->getNumIdContato().'*';
  145 +// if(end(array_keys($arrObjContatoDTO->NumIdContato())) == $objContatoDTO->NumIdContato()){
  146 +// $strIdParticipante = $strIdParticipante.' OR ';
  147 +// }
  148 +// }
  149 + }
  150 +
  151 + return $strIdParticipante;
  152 +
  153 + }
  154 +
  155 +}
  156 +
  157 +?>
... ...
sei/institucional/pesquisa/SolrUtilExterno.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/SolrUtilExterno.php
... ... @@ -0,0 +1,209 @@
  1 +<?
  2 +class SolrUtilExterno {
  3 +
  4 +
  5 + public static function formatarCaracteresEspeciais($q){
  6 +
  7 + $arrSolrExc = array(chr(92),'/','+','-','&','|','!','(',')','{','}','[',']','^','~','*','?',':');
  8 +
  9 + foreach($arrSolrExc as $solrExc){
  10 + $q = str_replace($solrExc, chr(92).$solrExc, $q);
  11 + }
  12 +
  13 + return $q;
  14 + }
  15 +
  16 + public static function formatarOperadores($q,$tag=null) {
  17 +
  18 + $q = InfraString::excluirAcentos(InfraString::transformarCaixaBaixa($q));
  19 +
  20 + //remove aspas repetidas
  21 + while(strpos($q,'""')!==false){
  22 + $q = str_replace('""','"',$q);
  23 + }
  24 +
  25 + $arrPalavrasQ = InfraString::agruparItens($q);
  26 +
  27 + //print_r($arrPalavrasQ);
  28 + //die;
  29 +
  30 + for($i=0;$i<count($arrPalavrasQ);$i++){
  31 +
  32 + //número de aspas ímpar, remover do token que ficar com apenas uma
  33 + $arrPalavrasQ[$i] = SolrUtilExterno::formatarCaracteresEspeciais(str_replace('"','',$arrPalavrasQ[$i]));
  34 +
  35 + if ( strpos($arrPalavrasQ[$i],' ') !== false) {
  36 +
  37 + if ($tag==null){
  38 + $arrPalavrasQ[$i] = '"'.$arrPalavrasQ[$i].'"';
  39 + }else{
  40 + $arrPalavrasQ[$i] = $tag.':"'.$arrPalavrasQ[$i].'"';
  41 + }
  42 + }else if($arrPalavrasQ[$i] == 'e') {
  43 + $arrPalavrasQ[$i] = "AND";
  44 + }
  45 + else if($arrPalavrasQ[$i]=='ou') {
  46 + $arrPalavrasQ[$i] = "OR";
  47 + }
  48 + else if($arrPalavrasQ[$i]=='nao') {
  49 + $arrPalavrasQ[$i] = "AND NOT";
  50 + }else{
  51 + if ($tag!=null){
  52 + $arrPalavrasQ[$i] = $tag.':'.$arrPalavrasQ[$i];
  53 + }
  54 + }
  55 + }
  56 +
  57 + $ret = '';
  58 + for($i=0;$i<count($arrPalavrasQ);$i++){
  59 + //Adiciona operador and como padrão se não informado
  60 + if ($i>0){
  61 + if (!in_array($arrPalavrasQ[$i-1],array('AND','OR','AND NOT','(')) && !in_array($arrPalavrasQ[$i],array('AND','OR','AND NOT',')'))){
  62 + $ret .= " AND";
  63 + }
  64 + }
  65 + $ret .= ' '.$arrPalavrasQ[$i];
  66 + }
  67 +
  68 + $ret = str_replace(" AND AND NOT "," AND NOT ", $ret);
  69 +
  70 + if (substr($ret,0,strlen(" AND NOT "))==" AND NOT "){
  71 + $ret = substr($ret, strlen(" AND NOT "));
  72 + $ret = 'NOT '. $ret;
  73 + }
  74 +
  75 + if (substr($ret,0,strlen(" AND "))==" AND "){
  76 + $ret = substr($ret, strlen(" AND "));
  77 + }
  78 +
  79 + if (substr($ret,0,strlen(" OR "))==" OR "){
  80 + $ret = substr($ret, strlen(" OR "));
  81 + }
  82 +
  83 + if (substr($ret,strlen(" AND")*-1)==" AND"){
  84 + $ret = substr($ret,0, strlen(" AND")*-1);
  85 + }
  86 +
  87 + if (substr($ret,strlen(" OR")*-1)==" OR"){
  88 + $ret = substr($ret,0, strlen(" OR")*-1);
  89 + }
  90 +
  91 + if (substr($ret,strlen(" AND NOT")*-1)==" AND NOT"){
  92 + $ret = substr($ret,0, strlen(" AND NOT")*-1);
  93 + }
  94 +
  95 + return $ret;
  96 + }
  97 +
  98 + public static function criarBarraEstatisticas($total,$inicio,$fim) {
  99 + return "<div class=\"barra\">".self::obterTextoBarraEstatisticas($total,$inicio,$fim)."</div>";
  100 + }
  101 +
  102 + public static function obterTextoBarraEstatisticas($total,$inicio,$fim) {
  103 + $ret = '';
  104 + if ($total > 0 && $total != "") {
  105 + if ($total < $fim) {
  106 + $ret .= $total.' resultado'.($total>1?'s':'');
  107 + } else {
  108 + $ret .= "Exibindo " . ($inicio+1) . " - " . $fim . " de " . $total;
  109 + }
  110 + }
  111 + return $ret;
  112 + }
  113 +
  114 + //Cria a navegacao completa
  115 + public static function criarBarraNavegacao($totalRes, $inicio, $numResPorPag, $objPagina, $objSessao, $md5Captcha = null, $strControlador = 'processo_pesquisar.php' )
  116 + {
  117 +
  118 + if ($totalRes == 0)
  119 + return;
  120 +
  121 + $nav = "<div class=\"paginas\">";
  122 +
  123 + $paginaAtual = $inicio / $numResPorPag + 1;
  124 +
  125 + $urlSemInicio = $strControlador.'?acao_externa='.$_GET['acao_externa']."&acao_origem_externa=protocolo_pesquisar_paginado";
  126 +
  127 + $hash = (!is_null($md5Captcha)) ? "&hash=".$md5Captcha : "";
  128 +
  129 + if ($inicio != null ) {
  130 + $nav .= "<span class=\"pequeno\"><a href=\"javascript:pagina.ir('" . $objPagina->formatarXHTML($objSessao->assinarLink($urlSemInicio . "&inicio=" . ($inicio - $numResPorPag) . $hash)) . "')\">Anterior</a></span>\n";
  131 + }
  132 +
  133 + if ($totalRes > $numResPorPag)
  134 + {
  135 + $numPagParaClicar = 12;
  136 +
  137 + if (ceil($totalRes / $numResPorPag) > $numPagParaClicar)
  138 + {
  139 + $iniNav = ($paginaAtual - floor(($numPagParaClicar - 1) / 2)) - 1;
  140 + $fimNav = ($paginaAtual + ceil(($numPagParaClicar - 1) / 2));
  141 +
  142 + if ($iniNav < 0)
  143 + {
  144 + $iniNav = 0;
  145 + $fimNav = $numPagParaClicar;
  146 + }
  147 +
  148 + if ($fimNav > ceil($totalRes / $numResPorPag))
  149 + {
  150 + $fimNav = ceil($totalRes / $numResPorPag);
  151 + $iniNav = $fimNav - $numPagParaClicar;
  152 + }
  153 + }
  154 + else
  155 + {
  156 + $iniNav = 0;
  157 + $fimNav = ceil($totalRes / $numResPorPag);
  158 + }
  159 +
  160 + for ($i = $iniNav; $i < $fimNav; $i++)
  161 + {
  162 + if ($inicio == 0 AND $i == 0){
  163 + $nav .= " <b>" . ($i + 1) . "</b> ";
  164 + }elseif (($i + 1) == ($inicio / $numResPorPag + 1)){
  165 + $nav .= " <b>" . ($i + 1) . "</b> ";
  166 + }else{
  167 + $nav .= " <a href=\"javascript:pagina.ir('" . str_replace('+','%2B',$objPagina->formatarXHTML($objSessao->assinarLink($urlSemInicio . "&inicio=" . ($i * $numResPorPag)))) . $hash . "')\">" . ($i + 1) . "</a>\n";
  168 + }
  169 + }
  170 + }
  171 +
  172 + if (($inicio / $numResPorPag) + 1 != ceil($totalRes / $numResPorPag)) {
  173 + $nav .= "<span class=\"pequeno\"><a href=\"javascript:pagina.ir('" . $objPagina->formatarXHTML($objSessao->assinarLink($urlSemInicio . "&inicio=" . ($inicio + $numResPorPag))) . $hash . "')\">Próxima</a></span>\n";
  174 + }
  175 +
  176 + $nav .= "</div>";
  177 +
  178 + return $nav;
  179 + }
  180 +
  181 + public static function prepararUrl($url){
  182 + $pos = strpos($url,'controlador.php');
  183 + if ($pos !== false){
  184 + $url = ConfiguracaoSEI::getInstance()->getValor('SEI','URL').substr($url,$pos);
  185 + }else{
  186 + $pos = strpos($url,'/publicacoes/controlador_publicacoes.php');
  187 + if ($pos !== false){
  188 + $url = ConfiguracaoSEI::getInstance()->getValor('SEI','URL').substr($url,$pos);
  189 + }
  190 + }
  191 +
  192 + if (ConfiguracaoSEI::getInstance()->getValor('SessaoSEI','https')){
  193 + $url = str_replace('http://','https://',$url);
  194 + }
  195 +
  196 + return $url;
  197 + }
  198 +
  199 + public static function obterTag($reg, $tag, $tipo){
  200 + $ret = $reg->xpath($tipo.'[@name=\''.$tag.'\']');
  201 + if (isset($ret[0])){
  202 + $ret = utf8_decode($ret[0]);
  203 + }else{
  204 + $ret = null;
  205 + }
  206 + return $ret;
  207 + }
  208 +}
  209 +?>
0 210 \ No newline at end of file
... ...
sei/institucional/pesquisa/ajuda_exibir_externo.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/ajuda_exibir_externo.php
... ... @@ -0,0 +1,56 @@
  1 +<?
  2 +/*
  3 +* CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA - CADE
  4 +*
  5 +* 01/10/2014 - criado por alex braga
  6 +*
  7 +*
  8 +* Versão do Gerador de Código:
  9 +*/
  10 +try {
  11 + require_once dirname(__FILE__).'/../../SEI.php';
  12 +
  13 + session_start();
  14 +
  15 + //////////////////////////////////////////////////////////////////////////////
  16 + InfraDebug::getInstance()->setBolLigado(false);
  17 + InfraDebug::getInstance()->setBolDebugInfra(false);
  18 + InfraDebug::getInstance()->limpar();
  19 + //////////////////////////////////////////////////////////////////////////////
  20 +
  21 + SessaoSEIExterna::getInstance()->validarLink();
  22 +
  23 + // SessaoSEI::getInstance()->validarPermissao($_GET['acao']);
  24 +
  25 + $strNomeArquivo = '';
  26 +
  27 + switch($_GET['acao_externa']){
  28 +
  29 + case 'pesquisa_solr_ajuda_externa':
  30 + $strConteudo = file_get_contents('../../ajuda/ajuda_solr.html');
  31 + break;
  32 +
  33 + case 'pesquisa_fts_ajuda_externa':
  34 + $strConteudo = file_get_contents('../../ajuda/ajuda_fts.html');
  35 + break;
  36 +
  37 + case 'assinatura_digital_ajuda_externa':
  38 + $strConteudo = file_get_contents('../../ajuda/assinatura_digital_ajuda.html');
  39 + $strConteudo = str_replace('[servidor]', ConfiguracaoSEI::getInstance()->getValor('SEI','URL'), $strConteudo);
  40 + break;
  41 +
  42 + default:
  43 + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida.");
  44 + }
  45 +
  46 + header('Content-Type: text/html; charset=iso-8859-1');
  47 + header('Vary: Accept');
  48 + header('Cache-Control: no-cache, must-revalidate');
  49 + header('Pragma: no-cache');
  50 +
  51 + echo $strConteudo;
  52 +
  53 +}catch(Exception $e){
  54 + die('Erro realizando download do anexo:'.$e->__toString());
  55 +}
  56 +?>
0 57 \ No newline at end of file
... ...
sei/institucional/pesquisa/bd/ProcedimentoSiscadeBD.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/bd/ProcedimentoSiscadeBD.php
... ... @@ -0,0 +1,157 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-12-15
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * ProcedimentoSiscadeBD
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe Banco de dados Procedimento siscade.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_ProcedimentoSiscadeBD
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../../SEI.php';
  32 +
  33 +class ProcedimentoSiscadeBD extends InfraBD {
  34 +
  35 + private $sqlProcedimentoParte = 'select distinct(pro.NR_PROCEDIMENTO), pro.TX_RESUMO, esp.NM_ESPECIE, pro.ID_CONFIDENCIALIDADE from S_PROCEDIMENTO pro
  36 + inner join S_ESPECIE esp on esp.ID_ESPECIE = pro.ID_ESPECIE
  37 + inner join S_PROCEDIMENTO_PARTE par on par.ID_PROCEDIMENTO = pro.ID_PROCEDIMENTO
  38 + left join S_PESSOA_FISICA fis on fis.ID_PESSOAFISICA = par.ID_PESSOAFISICA
  39 + left join S_PESSOA_JURIDICA jus on jus.ID_PESSOAJURIDICA = par.ID_PESSOAJURIDICA
  40 + left join S_ENTE_ADMINISTRATIVO ent on ent.ID_ENTEADMINISTRATIVO = par.ID_ENTEADMINISTRACAO';
  41 +
  42 + private $operadorWhere = ' where ';
  43 +
  44 + public function __construct(InfraIBanco $objInfraIBanco){
  45 + parent::__construct($objInfraIBanco);
  46 + }
  47 +
  48 + public function contarProcedimentoParte(ProcedimentoSiscadeDTO $objProcedimentoSiscadeDTO){
  49 +
  50 + try {
  51 +
  52 + $where = $this->operadorWhere;
  53 +
  54 + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento())){
  55 + $proNumero = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNrProcedimento().'%');
  56 + $where .= "pro.NR_PROCEDIMENTO like '{$proNumero}'";
  57 +
  58 + }
  59 +
  60 +
  61 + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento()) && !InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){
  62 + $where .= ' and ';
  63 + }
  64 +
  65 +
  66 +
  67 + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){
  68 + $nomeParte = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNomeParte().'%');
  69 + $where .= " (fis.NM_NOME like '{$nomeParte}' or jus.NM_NOME like '{$nomeParte}' or ent.NM_DENOMINACAO like '{$nomeParte}') ";
  70 +
  71 + }
  72 +
  73 + $where .= ' and pro.ID_CONFIDENCIALIDADE = 1';
  74 +
  75 + $sql = 'select count(*) as total from ( '.$this->sqlProcedimentoParte.$where.' ) as procedimento';
  76 +
  77 +
  78 + $rs = $this->getObjInfraIBanco()->consultarSql($sql);
  79 +
  80 + return $rs[0]['total'];
  81 +
  82 + } catch (Exception $e) {
  83 + throw new InfraException('Erro contando procedimento Siscade',$e);
  84 + }
  85 + }
  86 +
  87 + public function listarPaginadoProcedimentoParte(ProcedimentoSiscadeDTO $objProcedimentoSiscadeDTO){
  88 +
  89 +
  90 +
  91 +
  92 + try {
  93 +
  94 + $where = $this->operadorWhere;
  95 +
  96 + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento())){
  97 + $proNumero = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNrProcedimento().'%');
  98 +
  99 +
  100 + $where .= "pro.NR_PROCEDIMENTO like '{$proNumero}'";
  101 +
  102 +
  103 + }
  104 +
  105 + ;
  106 +
  107 + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNrProcedimento()) && !InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){
  108 + $where .= ' and ';
  109 + }
  110 +
  111 +
  112 +
  113 + if(!InfraString::isBolVazia($objProcedimentoSiscadeDTO->getStrNomeParte())){
  114 + $nomeParte = (string)addslashes('%'.$objProcedimentoSiscadeDTO->getStrNomeParte().'%');
  115 + $where .= " (fis.NM_NOME like '{$nomeParte}' or jus.NM_NOME like '{$nomeParte}' or ent.NM_DENOMINACAO like '{$nomeParte}') ";
  116 +
  117 + }
  118 +
  119 + //condição de confidencialidade
  120 +
  121 + $where .= ' and pro.ID_CONFIDENCIALIDADE = 1';
  122 +
  123 + $sql = $this->sqlProcedimentoParte.$where.' order by pro.NR_PROCEDIMENTO';
  124 +
  125 +
  126 + $ini = ($objProcedimentoSiscadeDTO->getNumPaginaAtual() * $objProcedimentoSiscadeDTO->getNumMaxRegistrosRetorno() );
  127 + $qtd = $objProcedimentoSiscadeDTO->getNumMaxRegistrosRetorno();
  128 +
  129 + $rs = $this->getObjInfraIBanco()->paginarSql($sql,$ini,$qtd);
  130 +
  131 + $arrObjProcedimentoSiscadeDTO = array();
  132 +
  133 +
  134 + for($i = 0; $i < count($rs[registrosPagina]); $i++){
  135 + $objProcedimentoSiscadeDTO = new ProcedimentoSiscadeDTO();
  136 + $objProcedimentoSiscadeDTO->setStrNrProcedimento($rs[registrosPagina][$i]['NR_PROCEDIMENTO']);
  137 + $objProcedimentoSiscadeDTO->setStrTxResumo($rs[registrosPagina][$i]['TX_RESUMO']);
  138 + $objProcedimentoSiscadeDTO->setStrNmEspecie($rs[registrosPagina][$i]['NM_ESPECIE']);
  139 + $arrObjProcedimentoSiscadeDTO[] = $objProcedimentoSiscadeDTO;
  140 + }
  141 +
  142 + return $arrObjProcedimentoSiscadeDTO;
  143 +
  144 +
  145 +
  146 + } catch (Exception $e) {
  147 + throw new InfraException('Erro listando procedimento Siscade',$e);
  148 + }
  149 + }
  150 +
  151 +
  152 +}
  153 +
  154 +
  155 +?>
  156 +
  157 +
... ...
sei/institucional/pesquisa/bd/ProcessoBD.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/bd/ProcessoBD.php
... ... @@ -0,0 +1,190 @@
  1 +<?
  2 +
  3 +/**
  4 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  5 + * 2014-11-12
  6 + * Versão do Gerador de Código: 1.0
  7 + * Versão no CVS/SVN:
  8 + *
  9 + * sei
  10 + * pesquisa
  11 + * ProcessoBD
  12 + *
  13 + *
  14 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  15 + */
  16 +
  17 +/**
  18 + * Classe de Banco de dados da tabela processo DBCade.
  19 + *
  20 + *
  21 + * @package institucional_pesquisa_ProcessoBD
  22 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  23 + * @license Creative Commons Atribuição 3.0 não adaptada
  24 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  25 + * @ignore Este código é livre para uso sem nenhuma restrição,
  26 + * salvo pelas informações a seguir referentes
  27 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  28 + * <http://www.cade.gov.br>
  29 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  30 + */
  31 +
  32 +
  33 +
  34 +
  35 +require_once dirname(__FILE__).'/../../../SEI.php';
  36 +
  37 +class ProcessoBD extends InfraBD {
  38 +
  39 + private $sqlRepresentada = 'select distinct(pro.pro_codigo), pro.pro_numero, CAST(pro.pro_sumula AS varchar(1000)) as pro_sumula, tip.tippro_nome
  40 + from processos pro inner join processoXrepresentada representada
  41 + on pro.pro_codigo = representada.pro_codigo
  42 + inner join pessoas pes
  43 + on representada.pes_codigo = pes.pes_codigo
  44 + inner join tipos_processos tip
  45 + on tip.tippro_codigo = pro.tippro_codigo ';
  46 +
  47 + private $sqlRepresentante = 'select distinct(pro.pro_codigo), pro.pro_numero, CAST(pro.pro_sumula AS varchar(1000)) as pro_sumula, tip.tippro_nome
  48 + from processos pro inner join processoXrepresentante representante
  49 + on pro.pro_codigo = representante.pro_codigo
  50 + inner join pessoas pes
  51 + on representante.pes_codigo = pes.pes_codigo
  52 + inner join tipos_processos tip
  53 + on tip.tippro_codigo = pro.tippro_codigo ';
  54 +
  55 + private $sqlRequerente = 'select distinct(pro.pro_codigo), pro.pro_numero, CAST(pro.pro_sumula AS varchar(1000)) as pro_sumula , tip.tippro_nome
  56 + from processos pro inner join processoXrequerente requerente
  57 + on pro.pro_codigo = requerente.pro_codigo
  58 + inner join pessoas pes
  59 + on requerente.pes_codigo = pes.pes_codigo
  60 + inner join tipos_processos tip
  61 + on tip.tippro_codigo = pro.tippro_codigo ';
  62 +
  63 + private $operadoUnion = ' union ';
  64 +
  65 + private $operadorWhere = ' where ';
  66 +
  67 +
  68 +
  69 + public function __construct(InfraIBanco $objInfraIBanco){
  70 + parent::__construct($objInfraIBanco);
  71 + }
  72 +
  73 +
  74 + public function contarPronumeroParte(ProcessoDTO $objProcessoDTO){
  75 +
  76 + try {
  77 +
  78 + $where = $this->operadorWhere;
  79 +
  80 +
  81 + if (!InfraString::isBolVazia($objProcessoDTO->getStrProNumero())){
  82 + $proNumero = (string)addslashes('%'.$objProcessoDTO->getStrProNumero().'%');
  83 + $where .= "pro.pro_numero like '{$proNumero}'";
  84 +
  85 + }
  86 +
  87 +
  88 + if(!InfraString::isBolVazia($objProcessoDTO->getStrProNumero()) && !InfraString::isBolVazia($objProcessoDTO->getNomeParte())){
  89 + $where .= ' and ';
  90 + }
  91 +
  92 + if(!InfraString::isBolVazia($objProcessoDTO->getNomeParte())){
  93 + $nomeParte = (string)addslashes('%'.$objProcessoDTO->getNomeParte().'%');
  94 + $where .= "pes.pes_nome like '{$nomeParte}'";
  95 + }
  96 +
  97 +
  98 + $sql = 'select count(*) as total from ( '.
  99 + $this->sqlRepresentada . $where . $this->operadoUnion .
  100 + $this->sqlRepresentante . $where . $this->operadoUnion .
  101 + $this->sqlRequerente . $where . ' ) as pro_partes ';
  102 +
  103 +
  104 + $rs = $this->getObjInfraIBanco()->consultarSql($sql);
  105 +
  106 +
  107 +
  108 + return $rs[0]['total'];
  109 +
  110 +
  111 +
  112 +
  113 + } catch (Exception $e) {
  114 + throw new InfraException('Error contando processos DBCade',$e);
  115 + }
  116 + }
  117 +
  118 +
  119 + public function listarPaginadoPronumeroParte(ProcessoDTO $objProcessoDTO){
  120 +
  121 + try {
  122 +
  123 +
  124 +
  125 + $where = $this->operadorWhere;
  126 +
  127 +
  128 + if (!InfraString::isBolVazia($objProcessoDTO->getStrProNumero())){
  129 + $proNumero = (string)addslashes('%'.$objProcessoDTO->getStrProNumero().'%');
  130 + $where .= "pro.pro_numero like '{$proNumero}'";
  131 +
  132 + }
  133 +
  134 +
  135 + if(!InfraString::isBolVazia($objProcessoDTO->getStrProNumero()) && !InfraString::isBolVazia($objProcessoDTO->getNomeParte())){
  136 + $where .= ' and ';
  137 + }
  138 +
  139 + if(!InfraString::isBolVazia($objProcessoDTO->getNomeParte())){
  140 + $nomeParte = (string)addslashes('%'.$objProcessoDTO->getNomeParte().'%');
  141 + $where .= "pes.pes_nome like '{$nomeParte}'";
  142 + }
  143 +
  144 + $inicioPaginacao = ($objProcessoDTO->getNumPaginaAtual() * $objProcessoDTO->getNumMaxRegistrosRetorno() ) + 1;
  145 + $numRegistro = ($objProcessoDTO->getNumMaxRegistrosRetorno() * $objProcessoDTO->getNumPaginaAtual()) + $objProcessoDTO->getNumMaxRegistrosRetorno();
  146 + $sql = 'select identity(int,1,1) as InfraRowNumber, * INTO #InfraTabela FROM ( '.
  147 + $this->sqlRepresentada . $where . $this->operadoUnion .
  148 + $this->sqlRepresentante . $where . $this->operadoUnion .
  149 + $this->sqlRequerente . $where . ' ) ' .
  150 + 'as InfraTabela ORDER BY pro_numero ASC select *,
  151 + (select count(*) from #InfraTabela ) as InfraRowCount
  152 + from #InfraTabela where InfraRowNumber BETWEEN '. $inicioPaginacao . ' AND '. $numRegistro .' ORDER BY InfraRowNumber
  153 + drop table #InfraTabela';
  154 +
  155 +
  156 +
  157 +
  158 + $rs = $this->getObjInfraIBanco()->consultarSql($sql);
  159 +
  160 + $arrObjProcessoDTO = array();
  161 +
  162 + for($i = 0; $i < count($rs); $i++){
  163 + $objProcessoDTO = new ProcessoDTO();
  164 + $objProcessoDTO->setStrProNumero($rs[$i]['pro_numero']);
  165 + $objProcessoDTO->setStrProSumula($rs[$i]['pro_sumula']);
  166 + $objProcessoDTO->setStrTipproNome($rs[$i]['tippro_nome']);
  167 + $objProcessoDTO->setNumProCodigo($rs[$i]['pro_codigo']);
  168 + $arrObjProcessoDTO[] = $objProcessoDTO;
  169 + }
  170 +
  171 +
  172 + return $arrObjProcessoDTO;
  173 +
  174 +
  175 +
  176 +
  177 +
  178 +
  179 +
  180 +
  181 + } catch (Exception $e) {
  182 + throw new InfraException('Error listando processos DBCade',$e);
  183 + }
  184 + }
  185 +
  186 +
  187 +}
  188 +
  189 +
  190 +?>
0 191 \ No newline at end of file
... ...
sei/institucional/pesquisa/controlador_ajax_externo.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/controlador_ajax_externo.php
... ... @@ -0,0 +1,85 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-09-29
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * controlador_ajax_externo
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Arquivo para realizar controle requisição ajax.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_controlador_ajax_externo
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * a @author e @copyright que devem ser mantidas inalteradas!
  27 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  28 + * <http://www.cade.gov.br>
  29 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  30 + */
  31 +
  32 +try{
  33 + require_once dirname(__FILE__).'/../../SEI.php';
  34 +
  35 + session_start();
  36 +
  37 + SessaoSEIExterna::getInstance()->validarLink();
  38 +
  39 + //infraTratarErroFatal(SessaoSEIExterna::getInstance(),'controlador_externo.php?acao=infra_erro_fatal_logar');
  40 +
  41 + InfraAjax::decodificarPost();
  42 +
  43 + switch($_GET['acao_ajax_externo']){
  44 +
  45 + case 'contato_auto_completar_contexto_pesquisa':
  46 +
  47 + //alterado para atender anatel exibir apenas nome contato
  48 + $objContatoDTO = new ContatoDTO();
  49 + $objContatoDTO->retNumIdContato();
  50 + $objContatoDTO->retStrSigla();
  51 + $objContatoDTO->retStrNome();
  52 +
  53 + $objContatoDTO->setStrPalavrasPesquisa($_POST['palavras_pesquisa']);
  54 +
  55 + if ($numIdGrupoContato!=''){
  56 + $objContatoDTO->setNumIdGrupoContato($_POST['id_grupo_contato']);
  57 + }
  58 +
  59 + $objContatoDTO->setStrSinContexto('S');
  60 + $objContatoDTO->setNumMaxRegistrosRetorno(50);
  61 + $objContatoDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC);
  62 +
  63 + $objContatoRN = new ContatoRN();
  64 + $arrObjContatoDTO = $objContatoRN->pesquisarRN0471($objContatoDTO);
  65 +
  66 +// $arrObjContatoDTO = ContatoINT::autoCompletarContextoPesquisa($_POST['palavras_pesquisa'],$_POST['id_grupo_contato']);
  67 + $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjContatoDTO,'IdContato', 'Nome');
  68 + break;
  69 + case 'unidade_auto_completar_todas':
  70 + $arrObjUnidadeDTO = UnidadeINT::autoCompletarUnidades($_POST['palavras_pesquisa'],true,$_POST['id_orgao']);
  71 + $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjUnidadeDTO,'IdUnidade', 'Sigla');
  72 + break;
  73 +
  74 + default:
  75 + throw new InfraException("Ação '".$_GET['acao_ajax_externo']."' não reconhecida pelo controlador AJAX externo.");
  76 + }
  77 +
  78 +
  79 + InfraAjax::enviarXML($xml);
  80 +
  81 +}catch(Exception $e){
  82 + //LogSEI::getInstance()->gravar('ERRO AJAX: '.$e->__toString());
  83 + InfraAjax::processarExcecao($e);
  84 +}
  85 +?>
0 86 \ No newline at end of file
... ...
sei/institucional/pesquisa/css/infra-esquema-local.css 0 → 100644
  1 +++ a/sei/institucional/pesquisa/css/infra-esquema-local.css
... ... @@ -0,0 +1,243 @@
  1 +div.infraAreaGlobal{
  2 +width: 98% !important;
  3 +}
  4 +
  5 +div.infraBarraSistemaD{
  6 +padding-top:1em;
  7 +}
  8 +
  9 +.protocoloAberto {
  10 +color:green;
  11 +}
  12 +
  13 +.protocoloFechado {
  14 +color:red;
  15 +}
  16 +
  17 +.protocoloNormal,
  18 +.protocoloAberto,
  19 +.protocoloFechado,
  20 +.linkFuncionalidade {
  21 +text-decoration:none;
  22 +padding:.5em;
  23 +font-size:1.2em !important;
  24 +}
  25 +
  26 +a.protocoloNormal:hover,
  27 +a.protocoloAberto:hover,
  28 +a.protocoloFechado:hover,
  29 +a.linkFuncionalidade:hover{
  30 +text-decoration:underline;
  31 +}
  32 +
  33 +a.ancoraOpcao{
  34 +color:black;
  35 +display:block;
  36 +text-decoration:none;
  37 +padding:.1em .2em .1em .2em;
  38 +width:100%;
  39 +}
  40 +
  41 +div.infraRotuloMenu,
  42 +div.infraSetaMenu{
  43 +color:black;
  44 +}
  45 +
  46 +
  47 +div.infraMenu a{
  48 +background-color:#c7c7c7;
  49 +}
  50 +
  51 +
  52 +div.infraMenu a:hover{
  53 +background-color:white;
  54 +border:.1em solid #dfdfdf;
  55 +}
  56 +
  57 +div.tituloProcessoDocumento {
  58 +padding-top:0.4em;
  59 +padding-bottom:0.4em;
  60 +text-align:center;
  61 +vertical-align:middle;
  62 +width:100%;
  63 +color:#666;
  64 +background-color:#dfdfdf;
  65 +border-bottom:.6em solid white;
  66 +overflow:hidden;
  67 +}
  68 +
  69 +div.tituloProcessoDocumento label {
  70 +font-size:1.4em;
  71 +font-weight:bold;
  72 +color:#666;
  73 +background-color:#dfdfdf;
  74 +}
  75 +
  76 +img.botaoSEI{
  77 +margin:.1em;
  78 +border:.1em solid white;
  79 +height:4em !important;
  80 +width:4em !important;
  81 +}
  82 +
  83 +img.botaoSEI:hover {
  84 +border:.1em solid black;
  85 +}
  86 +
  87 +a.ancoraSigla{
  88 + /* color:#0000CC; */
  89 + text-decoration:none;
  90 + font-size:1em;
  91 +}
  92 +
  93 +a.ancoraSigla:hover{
  94 + text-decoration:underline;
  95 +}
  96 +
  97 +a.ancoraPadraoAzul{
  98 +padding:0 .5em 0 .5em;
  99 +text-decoration:none;
  100 +font-size:1.2em;
  101 +color: #0066CC;
  102 +}
  103 +
  104 +a.ancoraPadraoPreta{
  105 +padding:0 .5em 0 .5em;
  106 +text-decoration:none;
  107 +font-size:1.2em;
  108 +color: black;
  109 +}
  110 +
  111 +a.ancoraPadraoAzul:hover,
  112 +a.ancoraPadraoPreta:hover{
  113 +text-decoration:underline;
  114 +}
  115 +
  116 +
  117 +fieldset.infraFieldset{
  118 +border:.1em solid black;
  119 +}
  120 +
  121 +legend.infraLegend{
  122 +background-color:#e5e5e5;
  123 +color:black;
  124 +border:.1em solid black;
  125 +}
  126 +
  127 +label.infraLabelOpcional,
  128 +label.infraLabelObrigatorio,
  129 +label.infraLabelCheckbox,
  130 +label.infraLabelRadio{
  131 +color:black;
  132 +}
  133 +
  134 +label.infraLabelObrigatorio span.infraTeclaAtalho{
  135 +color:black;
  136 +}
  137 +
  138 +label.infraLabelOpcional span.infraTeclaAtalho{
  139 +color:black;
  140 +}
  141 +
  142 +span.infraTeclaAtalho{
  143 +color:black;
  144 +}
  145 +
  146 +a.ancoraHistoricoProcesso{
  147 +font-size:1em;
  148 +}
  149 +
  150 +a.ancoraVisualizacaoDocumento{
  151 +font-size:1em;
  152 +}
  153 +
  154 +input.infraButton, button.infraButton{
  155 +border-color: #666 #666 #666 #666;
  156 +color:black;
  157 +}
  158 +
  159 +input.infraButton span.infraTeclaAtalho,
  160 +button.infraButton span.infraTeclaAtalho{
  161 +color:black;
  162 +}
  163 +
  164 +label.infraLabelObrigatorio span.infraTeclaAtalho{
  165 +color:black;
  166 +}
  167 +
  168 +.divItemCelula{
  169 + padding:.2em 0 .2em 0;
  170 +}
  171 +
  172 +span.spanItemCelula{
  173 + float:left;
  174 + border:.1em solid transparent;
  175 +}
  176 +
  177 +.divDiamante{
  178 + float:left;
  179 + width:5%;
  180 + border:.1em solid transparent;
  181 +}
  182 +
  183 +
  184 +table.infraTable img.infraImg,
  185 +table.infraTable img.infraImgNormal,
  186 +table.infraTable img.infraImgOpaca{
  187 +padding:0 .2em 0 .2em;
  188 +}
  189 +
  190 +caption.infraCaption{
  191 +color: black;
  192 +}
  193 +
  194 +tr.totalEstatisticas {
  195 +background-color:#ffffdd;
  196 +}
  197 +
  198 +td.totalEstatisticas {
  199 +background-color:#ffffdd;
  200 +}
  201 +
  202 +div.divAreaGrafico {
  203 +float:left;
  204 +/* width:100%; */
  205 +overflow:auto !important;
  206 +padding-top:.5em;
  207 +padding-bottom:1.5em;
  208 +font-size:1.2em;
  209 +}
  210 +
  211 +/* ******************** */
  212 +.infraDivCheckbox{
  213 +}
  214 +
  215 +.infraDivRadio{
  216 +}
  217 +
  218 +.infraDivCheckbox input,
  219 +.infraDivRadio input{
  220 +float:left;
  221 +}
  222 +
  223 +.infraDivCheckbox label,
  224 +.infraDivRadio label{
  225 +float:left;
  226 +padding-left:.2em;
  227 +}
  228 +
  229 +.infraDivCheckbox label{
  230 +line-height:1.8em;
  231 +}
  232 +
  233 +.infraDivRadio label{
  234 +line-height:1.6em;
  235 +}
  236 +
  237 +tr.trVermelha{
  238 +background-color:#f59f9f;
  239 +}
  240 +
  241 +button.buttonWorkflow{
  242 +border: .1em solid red;
  243 +}
... ...
sei/institucional/pesquisa/documento_consulta_externa.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/documento_consulta_externa.php
... ... @@ -0,0 +1,263 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 +*
  5 +* 03/10/2014 - criado por alex braga
  6 +*
  7 +* Versão do Gerador de Código:
  8 +*
  9 +* Versão no CVS:
  10 +*/
  11 +
  12 +try {
  13 + require_once dirname(__FILE__).'/../../SEI.php';
  14 + require_once ("ConverteURI.php");
  15 +
  16 +
  17 + session_start();
  18 +
  19 + //////////////////////////////////////////////////////////////////////////////
  20 + //InfraDebug::getInstance()->setBolLigado(false);
  21 + //InfraDebug::getInstance()->setBolDebugInfra(false);
  22 + //InfraDebug::getInstance()->limpar();
  23 + //////////////////////////////////////////////////////////////////////////////
  24 + ConverteURI::converterURI();
  25 + if (isset($_GET['id_acesso_externo'])){
  26 + SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink();
  27 + }else{
  28 + SessaoSEIExterna::getInstance()->validarLink();
  29 + }
  30 +
  31 +
  32 + $bolListaDocumentoProcessoRestrito = $bolListaDocumentoProcessoRestrito = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','ListaDocumentoProcessoRestrito');
  33 +
  34 + $objDocumentoDTO = new DocumentoDTO();
  35 + $objDocumentoDTO->retDblIdDocumento();
  36 + $objDocumentoDTO->retDblIdProcedimento();
  37 + $objDocumentoDTO->retStrConteudo();
  38 + $objDocumentoDTO->retStrNomeSerie();
  39 + $objDocumentoDTO->retStrStaEditor();
  40 + $objDocumentoDTO->retStrSiglaUnidadeGeradoraProtocolo();
  41 + $objDocumentoDTO->retStrProtocoloDocumentoFormatado();
  42 + $objDocumentoDTO->retStrStaProtocoloProtocolo();
  43 + $objDocumentoDTO->retDblIdDocumentoEdoc();
  44 + $objDocumentoDTO->retStrStaEstadoProtocolo();
  45 + // $objDocumentoDTO->retStrSinAssinaturaBloqueada();
  46 + $objDocumentoDTO->retNumIdUnidadeGeradoraProtocolo();
  47 + $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo();
  48 + $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo();
  49 + $objDocumentoDTO->setDblIdDocumento($_GET['id_documento']);
  50 +
  51 + $objDocumentoRN = new DocumentoRN();
  52 + $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO);
  53 +
  54 +
  55 +
  56 + if ($objDocumentoDTO==null){
  57 + die('Documento não encontrado.');
  58 + }
  59 +
  60 + $objProtocoloProcedimentoDTO = new ProtocoloDTO();
  61 + $objProtocoloProcedimentoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento());
  62 + $objProtocoloProcedimentoDTO->retStrStaNivelAcessoLocal();
  63 +
  64 + $objProtocoloRN = new ProtocoloRN();
  65 + $objProtocoloProcedimentoDTO = $objProtocoloRN->consultarRN0186($objProtocoloProcedimentoDTO);
  66 +
  67 + if($objProtocoloProcedimentoDTO != null && $objProtocoloProcedimentoDTO->getStrStaNivelAcessoLocal() != ProtocoloRN::$NA_PUBLICO){
  68 + die('Documento não encontrado.');
  69 + }
  70 +
  71 + if ($objDocumentoDTO->getStrStaEstadoProtocolo()==ProtocoloRN::$TE_CANCELADO){
  72 + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' foi cancelado.');
  73 + }
  74 +
  75 + if(!$bolListaDocumentoProcessoRestrito){
  76 + if ($objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo()!= ProtocoloRN::$NA_PUBLICO){
  77 + die('Documento não encontrado.');
  78 + }
  79 + }
  80 +
  81 + if($bolListaDocumentoProcessoRestrito){
  82 +
  83 + if($objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){
  84 +
  85 + die('Documento não encontrado.');
  86 +
  87 + }
  88 + }
  89 +
  90 + // Exibe apenas documentos de processos públicos.
  91 +
  92 +
  93 + //Carregar dados do cabeçalho
  94 + $objProcedimentoDTO = new ProcedimentoDTO();
  95 + $objProcedimentoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento());
  96 + $objProcedimentoDTO->setStrSinDocTodos('S');
  97 + $objProcedimentoDTO->setArrDblIdProtocoloAssociado(array($objDocumentoDTO->getDblIdDocumento()));
  98 +
  99 + $objProcedimentoRN = new ProcedimentoRN();
  100 + $arr = $objProcedimentoRN->listarCompleto($objProcedimentoDTO);
  101 +
  102 + if (count($arr)==0){
  103 + die('Processo não encontrado.');
  104 + }
  105 +
  106 + $objAcessoExternoRN = new AcessoExternoRN();
  107 +
  108 + $objProcedimentoDTO = $arr[0];
  109 + $bolFlag = false;
  110 + foreach($objProcedimentoDTO->getArrObjDocumentoDTO() as $dto){
  111 + if ($dto->getDblIdDocumento() == $objDocumentoDTO->getDblIdDocumento()){
  112 + if (SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno()==null){
  113 + if (!$objDocumentoRN->verificarSelecaoAcessoExterno($dto)){
  114 + if ($dto->getStrStaProtocoloProtocolo()==ProtocoloRN::$TP_DOCUMENTO_GERADO && $dto->getStrSinAssinado()=='N'){
  115 + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' ainda não foi assinado.');
  116 + }else{
  117 + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' não está disponível para visualização externa.');
  118 + }
  119 + }
  120 + }else{
  121 +
  122 + if (!$objDocumentoRN->verificarSelecaoAcessoExterno($dto)){
  123 +
  124 + if ($dto->getStrStaProtocoloProtocolo()!=ProtocoloRN::$TP_DOCUMENTO_GERADO){
  125 + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' não está disponível para visualização externa.');
  126 + }else{
  127 +
  128 + $objAcessoExternoDTO = new AcessoExternoDTO();
  129 + $objAcessoExternoDTO->setDblIdDocumento($_GET['id_documento']);
  130 + $objAcessoExternoDTO->setNumIdAcessoExterno($_GET['id_acesso_externo_assinatura']);
  131 +
  132 + if ($objAcessoExternoRN->contar($objAcessoExternoDTO)==0){
  133 +
  134 + if ($dto->getStrSinAssinado()=='N'){
  135 + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' ainda não foi assinado.');
  136 + }else{
  137 + die('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().' não está disponível para assinatura externa.');
  138 + }
  139 +
  140 + }
  141 + }
  142 + }
  143 +
  144 + }
  145 + $bolFlag = true;
  146 + break;
  147 + }
  148 + }
  149 +
  150 + if (!$bolFlag){
  151 + die('Documento não encontrado no processo.');
  152 + }
  153 +
  154 + $strTitulo = $objDocumentoDTO->getStrNomeSerie().' '.$objDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo().' '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado();
  155 +
  156 + if ($objDocumentoDTO->getStrStaEditor()==EditorRN::$TE_EDOC){
  157 + if ($objDocumentoDTO->getDblIdDocumentoEdoc()!=null){
  158 +
  159 + $objDocumentoRN->bloquearAssinaturaVisualizada($objDocumentoDTO);
  160 +
  161 + $objEDocRN = new EDocRN();
  162 + //echo EDocINT::montarVisualizacaoDocumento($objDocumentoDTO->getDblIdDocumentoEdoc());
  163 + echo $objEDocRN->consultarHTMLDocumentoRN1204($objDocumentoDTO);
  164 +
  165 + }else{
  166 + echo 'Documento sem conteúdo.';
  167 + }
  168 + }else if ($objDocumentoDTO->getStrStaEditor()==EditorRN::$TE_INTERNO){
  169 + $objEditorDTO = new EditorDTO();
  170 + $objEditorDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
  171 + $objEditorDTO->setNumIdBaseConhecimento(null);
  172 + $objEditorDTO->setStrSinCabecalho('S');
  173 + $objEditorDTO->setStrSinRodape('S');
  174 + $objEditorDTO->setStrSinIdentificacaoVersao('N');
  175 +
  176 + $objEditorRN = new EditorRN();
  177 + echo $objEditorRN->consultarHtmlVersao($objEditorDTO);
  178 +
  179 + }else if (isset($_GET['id_anexo'])){
  180 +
  181 + $objDocumentoRN->bloquearAssinaturaVisualizada($objDocumentoDTO);
  182 +
  183 + $objAnexoDTO = new AnexoDTO();
  184 + $objAnexoDTO->retNumIdAnexo();
  185 + $objAnexoDTO->retStrNome();
  186 + $objAnexoDTO->setNumIdAnexo($_GET['id_anexo']);
  187 + $objAnexoDTO->retDthInclusao();
  188 +
  189 + $objAnexoRN = new AnexoRN();
  190 + $objAnexoDTO = $objAnexoRN->consultarRN0736($objAnexoDTO);
  191 +
  192 + header("Pragma: public"); // required
  193 + header('Pragma: no-cache');
  194 + header("Expires: 0");
  195 + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
  196 + header("Cache-Control: private","false"); // required for certain browsers
  197 +
  198 + PaginaSEIExterna::getInstance()->montarHeaderDownload($objAnexoDTO->getStrNome());
  199 +
  200 + $fp = fopen($objAnexoRN->obterLocalizacao($objAnexoDTO), "rb");
  201 + while (!feof($fp)) {
  202 + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO);
  203 + }
  204 + fclose($fp);
  205 +
  206 +
  207 + }else if ($objDocumentoDTO->getStrStaProtocoloProtocolo()==ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){
  208 +
  209 + // $objDocumentoRN->bloquearAssinaturaVisualizada($objDocumentoDTO);
  210 +
  211 +
  212 + $objAnexoDTO = new AnexoDTO();
  213 + $objAnexoDTO->retNumIdAnexo();
  214 + $objAnexoDTO->retStrNome();
  215 + $objAnexoDTO->retNumIdAnexo();
  216 + $objAnexoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdDocumento());
  217 + $objAnexoDTO->retDblIdProtocolo();
  218 + $objAnexoDTO->retDthInclusao();
  219 +
  220 + $objAnexoRN = new AnexoRN();
  221 + $arrObjAnexoDTO = $objAnexoRN->listarRN0218($objAnexoDTO);
  222 +
  223 + if (count($arrObjAnexoDTO)!=1){
  224 + $strResultado = '';
  225 + }else{
  226 + $objAnexoDTO = $arrObjAnexoDTO[0];
  227 +
  228 + header("Pragma: public");
  229 + header('Pragma: no-cache');
  230 + header("Expires: 0");
  231 + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
  232 + header("Cache-Control: private","false");
  233 +
  234 + PaginaSEI::getInstance()->montarHeaderDownload($objAnexoDTO->getStrNome());
  235 +
  236 + $fp = fopen($objAnexoRN->obterLocalizacao($objAnexoDTO), "rb");
  237 + while (!feof($fp)) {
  238 + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO);
  239 + }
  240 + fclose($fp);
  241 +
  242 + }
  243 +
  244 + }else{
  245 + echo '<html>';
  246 + echo '<head>';
  247 + echo '<title>:: '.PaginaSEIExterna::getInstance()->getStrNomeSistema().' - '.$strTitulo.' ::</title>';
  248 + echo '</head>';
  249 + echo '<body>';
  250 + //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']);
  251 + echo DocumentoExternoINT::formatarExibicaoConteudo(DocumentoINT::$TV_HTML, $objDocumentoDTO->getStrConteudo(), PaginaSEIExterna::getInstance(), SessaoSEIExterna::getInstance(), '');
  252 + echo '</body>';
  253 + echo '</html>';
  254 + }
  255 +
  256 + $objDocumentoDTO->unSetStrConteudo();
  257 + AuditoriaSEI::getInstance()->auditar('documento_consulta_externa',__FILE__,$objDocumentoDTO);
  258 +
  259 +}catch(Exception $e){
  260 + try{ LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); }catch(Exception $e2){}
  261 + die('Erro consultando documento em acesso externo.');
  262 +}
  263 +?>
0 264 \ No newline at end of file
... ...
sei/institucional/pesquisa/dto/ProcedimentoParteDTO.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/dto/ProcedimentoParteDTO.php
... ... @@ -0,0 +1,68 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-12-15
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * ProcedimentoParteDTO
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe mantem dados procedimento siscade.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_dto_ProcedimentoParteDTO
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../../SEI.php';
  32 +
  33 +class ProcedimentoParteDTO extends InfraDTO {
  34 +
  35 + public function getStrNomeTabela(){
  36 + return 'S_PROCEDIMENTO_PARTE';
  37 + }
  38 +
  39 + public function montar(){
  40 +
  41 +
  42 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdProcedimentoParte', 'ID_PROCEDIMENTOPARTE');
  43 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoParte', 'ID_TIPOPARTE');
  44 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdPessoaFisica', 'ID_PESSOAFISICA');
  45 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdPessoaJuridica', 'ID_PESSOAJURIDICA');
  46 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEnteAdministracao', 'ID_ENTEADMINISTRACAO');
  47 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoPessoaParte', 'ID_TIPOPESSOAPARTE');
  48 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'nrOrdem', 'NR_ORDEM');
  49 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdProcedimento', 'ID_PROCEDIMENTO');
  50 +
  51 + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,'NrProcedimento', 'NR_PROCEDIMENTO', 'S_PROCEDIMENTO');
  52 +
  53 + $this->configurarPK('IdProcedimentoParte', InfraDTO::$TIPO_PK_NATIVA);
  54 + $this->configurarFK('IdPessoaFisica','S_PESSOA_FISICA', 'ID_PESSOAFISICA');
  55 + $this->configurarFK('IdPessoaJuridica','S_PESSOA_JURIDICA', 'ID_PESSOAJURIDICA');
  56 + $this->configurarFK('IdEnteAdministracao','S_ENTE_ADMINISTRATIVO', 'ID_ENTEADMINISTRACAO');
  57 +
  58 +
  59 +
  60 +
  61 +
  62 +
  63 +
  64 +
  65 + }
  66 +
  67 +
  68 +}
... ...
sei/institucional/pesquisa/dto/ProcedimentoSiscadeDTO.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/dto/ProcedimentoSiscadeDTO.php
... ... @@ -0,0 +1,61 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-12-15
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * ProcedimentoSiscadeDTO
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe mantem dados procedimento siscade.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_ProcedimentoSiscadeDTO
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../../SEI.php';
  32 +
  33 +class ProcedimentoSiscadeDTO extends InfraDTO {
  34 +
  35 + public function getStrNomeTabela(){
  36 + return 'S_PROCEDIMENTO';
  37 + }
  38 +
  39 + public function montar(){
  40 +
  41 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdProcedimento', 'ID_PROCEDIMENTO');
  42 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NrProcedimento', 'NR_PROCEDIMENTO');
  43 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'TxResumo', 'TX_RESUMO');
  44 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdConfidencialidade', 'ID_CONFIDENCIALIDADE');
  45 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEspecie', 'ID_ESPECIE');
  46 + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,'NmEspecie', 'NM_ESPECIE', 'S_ESPECIE');
  47 +
  48 + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'NomeParte');
  49 +
  50 +
  51 + $this->configurarPK('IdProcedimento', InfraDTO::$TIPO_PK_NATIVA);
  52 + $this->configurarFK('IdEspecie','S_ESPECIE', 'ID_ESPECIE');
  53 +
  54 +
  55 +
  56 +
  57 +
  58 + }
  59 +
  60 +
  61 +}
... ...
sei/institucional/pesquisa/dto/ProcessoDTO.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/dto/ProcessoDTO.php
... ... @@ -0,0 +1,76 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-09-29
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * Processo DTO
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe mantem dados processo DBCade.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_processo_pesquisar
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +
  32 +
  33 +require_once dirname(__FILE__).'/../../../SEI.php';
  34 +
  35 +class ProcessoDTO extends InfraDTO {
  36 +
  37 + private $nomeParte;
  38 +
  39 + public function setNomeParte($nomeParte){
  40 + $this->nomeParte = $nomeParte;
  41 + }
  42 +
  43 + public function getNomeParte(){
  44 + return $this->nomeParte;
  45 + }
  46 +
  47 + public function getStrNomeTabela(){
  48 + return 'processos';
  49 + }
  50 +
  51 +
  52 +
  53 + public function montar(){
  54 +
  55 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'ProCodigo', 'pro_codigo');
  56 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'ProNumero', 'pro_numero');
  57 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'TipproCodigo', 'tippro_codigo');
  58 + // Verificar como realizar cast nas funções DTO
  59 + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'ProSumula', 'pro_codigo , CAST('.$this->getStrNomeTabela().'.pro_sumula AS TEXT)');
  60 + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,'TipproNome', 'tippro_nome', 'tipos_processos');
  61 +
  62 +
  63 + $this->configurarPK('ProCodigo', InfraDTO::$TIPO_PK_NATIVA);
  64 +
  65 +
  66 +
  67 + $this->configurarFK('TipproCodigo','tipos_processos', 'tippro_codigo');
  68 +
  69 + }
  70 +
  71 +
  72 +
  73 +
  74 +
  75 +
  76 +}
... ...
sei/institucional/pesquisa/dto/ProtocoloPesquisaPublicaDTO.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/dto/ProtocoloPesquisaPublicaDTO.php
... ... @@ -0,0 +1,66 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-09-29
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * Processo DTO
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe mantem dados processo DBCade.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_processo_pesquisar
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +
  32 +
  33 +require_once dirname(__FILE__).'/../../../SEI.php';
  34 +
  35 +class ProtocoloPesquisaPublicaDTO extends InfraDTO {
  36 +
  37 +
  38 +
  39 + public function getStrNomeTabela(){
  40 + return null;
  41 + }
  42 +
  43 +
  44 +
  45 + public function montar(){
  46 +
  47 + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'NumeroSEI');
  48 + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'TipoDocumento');
  49 + $this->adicionarAtributo(InfraDTO::$PREFIXO_DTA, 'Documento');
  50 + $this->adicionarAtributo(InfraDTO::$PREFIXO_DTA, 'Registro');
  51 + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Unidade' );
  52 + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'StaAssociacao');
  53 + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'DocumentoDTO');
  54 + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'ProcedimentoDTO');
  55 +
  56 +
  57 +
  58 +
  59 + }
  60 +
  61 +
  62 +
  63 +
  64 +
  65 +
  66 +}
... ...
sei/institucional/pesquisa/favicon.ico 0 → 100644
No preview for this file type
sei/institucional/pesquisa/field.js 0 → 100644
  1 +++ a/sei/institucional/pesquisa/field.js
... ... @@ -0,0 +1,275 @@
  1 +function partialFields() {
  2 + var contador;
  3 + var erro = false;
  4 + var idUnidadeAberto;
  5 + var mtName;
  6 + var mtValue;
  7 + var partFields = document.getElementById("partialfields");
  8 + for (x = 0; x < mt.length; x++) {
  9 + mtName = mt[x][0];
  10 + if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "input")
  11 + mtValue = utf8Encode(formatarCaracteresEspeciais(removerAcentos(trim(document
  12 + .getElementById(mt[x][1]).value))));
  13 + else if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "select") {
  14 + mtValue = utf8Encode(trim(document.getElementById(mt[x][1]).options[document
  15 + .getElementById(mt[x][1]).selectedIndex].value));
  16 + }
  17 + switch (mtName) {
  18 + case "protocolo_formatado_pesquisa":
  19 + mtValue = mtValue.replace(/[^0-9]/g, "");
  20 + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") {
  21 + if (partFields.value.length > 0) {
  22 + partFields.value += " AND ";
  23 + }
  24 + partFields.value += mtName + ":*;" + mtValue + ";*";
  25 + }
  26 + break;
  27 + default:
  28 + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") {
  29 + var bolCampoMultiplo = false;
  30 + if (mtName == 'id_participante' || mtName == 'id_assunto'
  31 + || mtName == 'id_unidade_acesso'
  32 + || mtName == 'id_unidade_aberto'
  33 + || mtName == 'id_assinante') {
  34 + bolCampoMultiplo = true;
  35 + }
  36 + if (partFields.value.length > 0) {
  37 + partFields.value += " AND ";
  38 + }
  39 + if (bolCampoMultiplo) {
  40 + if(mtName == 'id_participante'){
  41 + partFields.value += mtName + ":(" + mtValue + ")";
  42 + }else{
  43 + partFields.value += mtName + ":*" + mtValue + "*";
  44 + }
  45 + } else {
  46 +
  47 + if(mtName == 'id_participante'){
  48 + partFields.value += mtName + ":(" + mtValue +")";
  49 + }else{
  50 + partFields.value += mtName + ":" + mtValue;
  51 + }
  52 +
  53 +
  54 + }
  55 + }
  56 + break;
  57 + }
  58 + }
  59 + // SIGLAS DOS USU�RIOS
  60 + var strVerificacao = removerAcentos(trim(document
  61 + .getElementById("hdnSiglasUsuarios").value));
  62 + if (strVerificacao != '') {
  63 + var siglas = strVerificacao.split(',');
  64 + if (siglas.length > 0) {
  65 + if (partFields.value.length > 0) {
  66 + partFields.value += " AND ";
  67 + }
  68 + partFields.value += "(sigla_usuario_gerador:"
  69 + + siglas.join(" OR sigla_usuario_gerador:") + ")";
  70 + }
  71 + }
  72 + // CHECKBOX DO PESQUISAR EM
  73 + for (contador = 0; contador < mtCheckbox.length; contador += 1) {
  74 + var campo;
  75 + var campos;
  76 + var dados = [];
  77 + for (campos = 1; campos < mtCheckbox[contador].length; campos += 1) {
  78 + campo = document.getElementById(mtCheckbox[contador][campos]);
  79 + if (campo.checked) {
  80 + dados.push(campo.value);
  81 + }
  82 + }
  83 + if (dados.length > 0) {
  84 + if (partFields.value.length > 0) {
  85 + partFields.value += " AND ";
  86 + }
  87 + partFields.value += mtCheckbox[contador][0] + ":" + dados.join(";");
  88 + }
  89 + }
  90 + var dataInicio = infraTrim(document.getElementById('txtDataInicio').value);
  91 + var dataFim = infraTrim(document.getElementById('txtDataFim').value);
  92 + if (dataInicio != '' || dataFim != '') {
  93 + if (dataInicio != ''
  94 + && !infraValidarData(document.getElementById('txtDataInicio'))) {
  95 + return false;
  96 + }
  97 + if (dataFim != ''
  98 + && !infraValidarData(document.getElementById('txtDataFim'))) {
  99 + return false;
  100 + }
  101 + if (dataInicio != '' && dataFim != ''
  102 + && infraCompararDatas(dataInicio, dataFim) < 0) {
  103 + alert('Per�odo de datas inv�lido.');
  104 + document.getElementById('txtDataInicio').focus();
  105 + return false;
  106 + }
  107 + var dia1 = dataInicio.substr(0, 2);
  108 + var mes1 = dataInicio.substr(3, 2);
  109 + var ano1 = dataInicio.substr(6, 4);
  110 + var dia2 = dataFim.substr(0, 2);
  111 + var mes2 = dataFim.substr(3, 2);
  112 + var ano2 = dataFim.substr(6, 4);
  113 + if (partFields.value.length > 0) {
  114 + partFields.value += " AND ";
  115 + }
  116 + if (dataInicio != '' && dataFim != '') {
  117 + partFields.value += 'dta_geracao:[' + ano1 + '-' + mes1 + '-'
  118 + + dia1 + 'T00:00:00Z TO ' + ano2 + '-' + mes2 + '-' + dia2
  119 + + 'T00:00:00Z]';
  120 + } else if (dataInicio != '') {
  121 + partFields.value += 'dta_geracao:"' + ano1 + '-' + mes1 + '-'
  122 + + dia1 + 'T00:00:00Z"';
  123 + } else {
  124 + partFields.value += 'dta_geracao:"' + ano2 + '-' + mes2 + '-'
  125 + + dia2 + 'T00:00:00Z"';
  126 + }
  127 + }
  128 + return true;
  129 +}
  130 +
  131 +
  132 +function partialFieldsAutoCompletarInteressado() {
  133 + var contador;
  134 + var erro = false;
  135 + var idUnidadeAberto;
  136 + var mtName;
  137 + var mtValue;
  138 + var partFields = document.getElementById("partialfields");
  139 +
  140 + for (x = 0; x < mt.length; x++) {
  141 + mtName = mt[x][0];
  142 +
  143 + if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "input")
  144 + mtValue = utf8Encode(formatarCaracteresEspeciais(removerAcentos(trim(document.getElementById(mt[x][1]).value))));
  145 + else if (document.getElementById(mt[x][1]).tagName.toLowerCase() == "select") {
  146 + mtValue = utf8Encode(trim(document.getElementById(mt[x][1]).options[document.getElementById(mt[x][1]).selectedIndex].value));
  147 + }
  148 +
  149 + switch (mtName) {
  150 +
  151 + case "protocolo_formatado_pesquisa":
  152 +
  153 + mtValue = mtValue.replace(/[^0-9]/g, "");
  154 +
  155 + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") {
  156 + if (partFields.value.length > 0) {
  157 + partFields.value += " AND ";
  158 + }
  159 + partFields.value += mtName + ":*;" + mtValue +";*";
  160 + }
  161 + break;
  162 +
  163 + default:
  164 + if (mtValue.length > 0 && mtValue.toUpperCase() != "NULL") {
  165 +
  166 + var bolCampoMultiplo = false;
  167 +
  168 + if (mtName == 'id_participante' ||
  169 + mtName == 'id_assunto' ||
  170 + mtName == 'id_unidade_acesso' ||
  171 + mtName == 'id_unidade_aberto' ||
  172 + mtName == 'id_assinante'){
  173 +
  174 + bolCampoMultiplo = true;
  175 + }
  176 +
  177 + if (partFields.value.length > 0) {
  178 + partFields.value += " AND ";
  179 + }
  180 + if (bolCampoMultiplo){
  181 + partFields.value += mtName + ":*" + mtValue + "*";
  182 + }else{
  183 + partFields.value += mtName + ":" + mtValue;
  184 + }
  185 +
  186 + }
  187 +
  188 + break;
  189 + }
  190 +
  191 +
  192 + }
  193 +
  194 +
  195 + // SIGLAS DOS USU�RIOS
  196 + var strVerificacao = removerAcentos(trim(document.getElementById("hdnSiglasUsuarios").value));
  197 +
  198 + if (strVerificacao != ''){
  199 +
  200 + var siglas = strVerificacao.split(',');
  201 +
  202 + if (siglas.length > 0) {
  203 + if (partFields.value.length > 0) {
  204 + partFields.value += " AND ";
  205 + }
  206 + partFields.value += "(sigla_usuario_gerador:" + siglas.join(" OR sigla_usuario_gerador:") + ")";
  207 + }
  208 + }
  209 +
  210 + // CHECKBOX DO PESQUISAR EM
  211 +
  212 + for (contador = 0; contador < mtCheckbox.length; contador += 1) {
  213 + var campo;
  214 + var campos;
  215 + var dados = [];
  216 +
  217 + for (campos = 1; campos < mtCheckbox[contador].length; campos += 1) {
  218 + campo = document.getElementById(mtCheckbox[contador][campos]);
  219 +
  220 + if (campo.checked) {
  221 + dados.push(campo.value);
  222 + }
  223 + }
  224 +
  225 + if (dados.length > 0) {
  226 + if (partFields.value.length > 0) {
  227 + partFields.value += " AND ";
  228 + }
  229 +
  230 + partFields.value += mtCheckbox[contador][0] + ":" + dados.join(";");
  231 + }
  232 + }
  233 +
  234 + var dataInicio = infraTrim(document.getElementById('txtDataInicio').value);
  235 + var dataFim = infraTrim(document.getElementById('txtDataFim').value);
  236 +
  237 + if (dataInicio!='' || dataFim!=''){
  238 +
  239 + if (dataInicio != '' && !infraValidarData(document.getElementById('txtDataInicio'))){
  240 + return false;
  241 + }
  242 +
  243 + if (dataFim!='' && !infraValidarData(document.getElementById('txtDataFim'))){
  244 + return false;
  245 + }
  246 +
  247 + if (dataInicio!='' && dataFim!='' && infraCompararDatas(dataInicio,dataFim) < 0){
  248 + alert('Período de datas inválido.');
  249 + document.getElementById('txtDataInicio').focus();
  250 + return false;
  251 + }
  252 +
  253 + var dia1 = dataInicio.substr(0,2);
  254 + var mes1 = dataInicio.substr(3,2);
  255 + var ano1 = dataInicio.substr(6,4);
  256 +
  257 + var dia2 = dataFim.substr(0,2);
  258 + var mes2 = dataFim.substr(3,2);
  259 + var ano2 = dataFim.substr(6,4);
  260 +
  261 + if (partFields.value.length > 0) {
  262 + partFields.value += " AND ";
  263 + }
  264 +
  265 + if (dataInicio != '' && dataFim != '') {
  266 + partFields.value += 'dta_geracao:[' + ano1 + '-' + mes1 + '-' + dia1 + 'T00:00:00Z TO ' + ano2 + '-' + mes2 + '-' + dia2 +'T00:00:00Z]';
  267 + }else if (dataInicio != ''){
  268 + partFields.value += 'dta_geracao:"'+ ano1 + '-' + mes1 + '-' + dia1 + 'T00:00:00Z"';
  269 + }else{
  270 + partFields.value += 'dta_geracao:"'+ ano2 + '-' + mes2 + '-' + dia2 + 'T00:00:00Z"';
  271 + }
  272 + }
  273 +
  274 + return true;
  275 +}
0 276 \ No newline at end of file
... ...
sei/institucional/pesquisa/imagens/bg_barra_sistema.jpg 0 → 100644

842 Bytes

sei/institucional/pesquisa/imagens/cade_cadastro.gif 0 → 100644

180 Bytes

sei/institucional/pesquisa/imagens/sei_chave_restrito.gif 0 → 100644

587 Bytes

sei/institucional/pesquisa/imagens/sei_logo_azul_celeste.jpg 0 → 100644

9.71 KB

sei/institucional/pesquisa/imagens/sei_logo_verde_limao.jpg 0 → 100644

8.82 KB

sei/institucional/pesquisa/imagens/sei_logo_vermelho.jpg 0 → 100644

9.29 KB

sei/institucional/pesquisa/int/DocumentoExternoINT.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/int/DocumentoExternoINT.php
... ... @@ -0,0 +1,180 @@
  1 +<?php
  2 +
  3 +/**
  4 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  5 +* 2014-12-15
  6 +* Versão do Gerador de Código: 1.0
  7 +* Versão no CVS/SVN:
  8 +*
  9 +* sei
  10 +* pesquisa
  11 +* ProcedimentoSiscadeBD
  12 +*
  13 +*
  14 +* @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  15 +*/
  16 +
  17 +/**
  18 + * Classe Banco de dados Procedimento siscade.
  19 +*
  20 +*
  21 +* @package institucional_pesquisa_ProcedimentoSiscadeBD
  22 +* @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  23 +* @license Creative Commons Atribuição 3.0 não adaptada
  24 +* <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  25 +* @ignore Este código é livre para uso sem nenhuma restrição,
  26 +* salvo pelas informações a seguir referentes
  27 +* @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  28 +* <http://www.cade.gov.br>
  29 +* @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  30 +*/
  31 +
  32 +class DocumentoExternoINT extends DocumentoINT{
  33 +
  34 + public static function formatarExibicaoConteudo($strTipoVisualizacao, $strConteudo, $objInfraPagina=null, $objInfraSessao=null, $strLinkDownload=null){
  35 +
  36 + $strResultado = '';
  37 +
  38 + if (!InfraString::isBolVazia($strConteudo)){
  39 +
  40 + if (substr($strConteudo,0,5) != '<?xml'){
  41 + $strResultado = $strConteudo;
  42 + }else{
  43 +
  44 + //die($strConteudo);
  45 +
  46 + //internamente o DOM utiliza UTF-8 mesmo passando iso-8859-1
  47 + //por isso e necessario usar utf8_decode
  48 + $objXml = new DomDocument('1.0','iso-8859-1');
  49 +
  50 + /*
  51 + $strConteudo = '<?xml version="1.0"?>
  52 + <documento>
  53 + <atributo id="" tipo="" nome="" titulo="Atributo A">nomeA</atributo>
  54 + <atributo id="" tipo="" nome="" titulo="Atributo B">nomeB</atributo>
  55 + <atributo id="" tipo="" nome="" titulo="Atributo C">
  56 + <valores>
  57 + <valor id="" tipo="" nome="" titulo="Valor C1">nomeC1</valor>
  58 + <valor id="" tipo="" nome="" titulo="Valor C2">nomeC2</valor>
  59 + </valores>
  60 + </atributo>
  61 + <atributo id="" tipo="" nome="" titulo="Atributo D">
  62 + <valores id="" tipo="" nome="" titulo="Valores D1">
  63 + <valor id="" tipo="" nome="" titulo="Valor D1V1">D1V1</valor>
  64 + <valor id="" tipo="" nome="" titulo="Valor D1V2">D1V2</valor>
  65 + <valor id="" tipo="" nome="" titulo="Valor D1V3">D1V3</valor>
  66 + </valores>
  67 + <valores id="" tipo="" nome="" titulo="Valores D2">
  68 + <valor id="" tipo="" nome="" titulo="Valor D2V1">D2V1</valor>
  69 + <valor id="" tipo="" nome="" titulo="Valor D2V2">D2V2</valor>
  70 + <valor id="" tipo="" nome="" titulo="Valor D2V3">D2V3</valor>
  71 + </valores>
  72 + <valores id="" tipo="" nome="" titulo="Valores D3">
  73 + <valor id="" tipo="" nome="" nome="d3v1" titulo="Valor D3V1">D3V1</valor>
  74 + <valor id="" tipo="" nome="" titulo="Valor D3V2">D3V2</valor>
  75 + <valor id="" tipo="" nome="" titulo="Valor D3V3">D3V3</valor>
  76 + </valores>
  77 + </atributo>
  78 + </documento>';
  79 + */
  80 +
  81 + $objXml->loadXML($strConteudo);
  82 +
  83 + $arrAtributos = $objXml->getElementsByTagName('atributo');
  84 +
  85 + if ($strTipoVisualizacao == self::$TV_HTML){
  86 +
  87 + $strNovaLinha = '<br />';
  88 + $strItemInicio = '<b>';
  89 + $strItemFim = '</b>';
  90 + $strSubitemInicio = '<i>';
  91 + $strSubitemFim = '</i>';
  92 + $strEspaco = '&nbsp;';
  93 +
  94 + }else{
  95 +
  96 + $strNovaLinha = "\n";
  97 + $strItemInicio = '';
  98 + $strItemFim = '';
  99 + $strSubitemInicio = '';
  100 + $strSubitemFim = '';
  101 + $strEspaco = ' ';
  102 +
  103 + }
  104 +
  105 + $strResultado = '';
  106 +
  107 + if ($objInfraSessao!=null){
  108 + $bolAcaoDownload = $objInfraSessao->verificarPermissao('documento_download_anexo');
  109 + }
  110 +
  111 + foreach($arrAtributos as $atributo){
  112 +
  113 + $arrValores = $atributo->getElementsByTagName('valores');
  114 +
  115 + if ($arrValores->length==0){
  116 + //não mostra item que não possua valor
  117 + if (!InfraString::isBolVazia($atributo->nodeValue)){
  118 + $strResultado .= $strNovaLinha.$strItemInicio.self::formatarTagConteudo($strTipoVisualizacao,$atributo->getAttribute('titulo')).$strItemFim.': '.$strNovaLinha.$strEspaco.$strEspaco.self::formatarTagConteudo($strTipoVisualizacao,$atributo->nodeValue);
  119 + $strResultado .= $strNovaLinha;
  120 + }
  121 + }else{
  122 +
  123 + if ($atributo->getAttribute('titulo')!=''){
  124 + $strResultado .= $strNovaLinha.$strItemInicio.self::formatarTagConteudo($strTipoVisualizacao,$atributo->getAttribute('titulo')).$strItemFim.':';
  125 + }
  126 +
  127 + foreach($arrValores as $valores){
  128 +
  129 + if ($valores->getAttribute('titulo')!=''){
  130 + $strResultado .= $strNovaLinha.$strEspaco.$strEspaco.$strSubitemInicio.self::formatarTagConteudo($strTipoVisualizacao,$valores->getAttribute('titulo')).':'.$strSubitemFim;
  131 + }
  132 +
  133 + $arrValor = $valores->getElementsByTagName('valor');
  134 +
  135 + foreach($arrValor as $valor){
  136 +
  137 + $strResultado .= $strNovaLinha.$strEspaco.$strEspaco.$strEspaco.$strEspaco;
  138 +
  139 + if ($valor->getAttribute('titulo')!=''){
  140 + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->getAttribute('titulo')).': ';
  141 + }
  142 +
  143 + if ($valor->getAttribute('tipo')=='ANEXO'){
  144 + if ($objInfraPagina==null || $objInfraSessao==null || $strLinkDownload==null){
  145 + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue);
  146 + }else {
  147 + if ($bolAcaoDownload){
  148 + $objAnexoDTO = new AnexoDTO();
  149 + $objAnexoDTO->setNumIdAnexo($valor->getAttribute('id'));
  150 + $objAnexoRN = new AnexoRN();
  151 + if ($objAnexoRN->contarRN0734($objAnexoDTO)>0){
  152 + //$strResultado .= '<a href="'.$objInfraPagina->formatarXHTML($objInfraSessao->assinarLink($strLinkDownload.'&id_anexo='.$valor->getAttribute('id'))).'" target="_blank" class="ancoraVisualizacaoDocumento">'.self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue).'</a>';
  153 + $strResultado = '<span>'.self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue).'<span>';
  154 + }else{
  155 + $strResultado .= '<a href="javascript:void(0);" onclick="alert(\'Este anexo foi excluído.\');" class="ancoraVisualizacaoDocumento">'.self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue).'</a>';
  156 + }
  157 + }else{
  158 + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue);
  159 + }
  160 + }
  161 + }else{
  162 + $strResultado .= self::formatarTagConteudo($strTipoVisualizacao,$valor->nodeValue);
  163 + }
  164 + }
  165 +
  166 + if ($arrValor->length>1){
  167 + $strResultado .= $strNovaLinha;
  168 + }
  169 + }
  170 + $strResultado .= $strNovaLinha;
  171 + }
  172 + }
  173 + }
  174 + }
  175 + return $strResultado;
  176 + }
  177 +
  178 +}
  179 +
  180 +?>
0 181 \ No newline at end of file
... ...
sei/institucional/pesquisa/processo_exibe_arquivo.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/processo_exibe_arquivo.php
... ... @@ -0,0 +1,99 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 +*
  5 +* 02/10/2014 - criado por alex braga
  6 +*
  7 +* Versão do Gerador de Código:
  8 +*
  9 +* Versão no CVS:
  10 +*/
  11 +try {
  12 + require_once dirname(__FILE__).'/../../SEI.php';
  13 +
  14 + session_start();
  15 +
  16 + //////////////////////////////////////////////////////////////////////////////
  17 + InfraDebug::getInstance()->setBolLigado(false);
  18 + InfraDebug::getInstance()->setBolDebugInfra(false);
  19 + InfraDebug::getInstance()->limpar();
  20 + //////////////////////////////////////////////////////////////////////////////
  21 +
  22 + if (isset($_GET['id_acesso_externo'])){
  23 + SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink();
  24 + }else{
  25 + SessaoSEIExterna::getInstance()->validarLink();
  26 + }
  27 +
  28 + switch($_GET['acao_externa']){
  29 +
  30 + case 'usuario_externo_exibir_arquivo':
  31 +
  32 + AuditoriaSEI::getInstance()->auditar('usuario_externo_exibir_arquivo', __FILE__);
  33 +/*
  34 + * SEI 2.5.1 */
  35 + $infraParametroDTO = new InfraParametroDTO();
  36 + $infraParametroDTO->setStrNome('SEI_VERSAO');
  37 + $infraParametroDTO->retStrValor();
  38 +
  39 + $infraParametroRN = new InfraParametroRN();
  40 + $infraParametroDTO = $infraParametroRN->consultar($infraParametroDTO);
  41 + $versaoSei = $infraParametroDTO->getStrValor();
  42 + print_r($versaoSei);
  43 +
  44 +
  45 + if($versaoSei == '2.5.1'){
  46 +
  47 + header("Pragma: public");
  48 + header('Pragma: no-cache');
  49 + header("Expires: 0");
  50 + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
  51 + header("Cache-Control: private","false");
  52 + PaginaSEIExterna::getInstance()->montarHeaderDownload($_GET['nome_arquivo'],'attachment');
  53 +
  54 + $fp = fopen(dirname(__FILE__).'/../../'.DIR_UPLOAD.'/'.$_GET['nome_arquivo'], "rb");
  55 + while (!feof($fp)) {
  56 + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO);
  57 + }
  58 + fclose($fp);
  59 + break;
  60 +
  61 + }else{
  62 + /*
  63 + * SEI 2.5.2 */
  64 + header("Pragma: public");
  65 + header('Pragma: no-cache');
  66 + header("Expires: 0");
  67 + header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
  68 + header("Cache-Control: private","false");
  69 + $strNomeDownload=$_GET['nome_download'];
  70 +
  71 + if (InfraString::isBolVazia($strNomeDownload)){
  72 + $strNomeDownload=$_GET['nome_arquivo'];
  73 + }
  74 +
  75 + PaginaSEI::getInstance()->montarHeaderDownload($strNomeDownload,'attachment');
  76 +
  77 + $fp = fopen(DIR_SEI_TEMP.'/'.$_GET['nome_arquivo'], "rb");
  78 + while (!feof($fp)) {
  79 + echo fread($fp, TAM_BLOCO_LEITURA_ARQUIVO);
  80 + }
  81 + fclose($fp);
  82 +
  83 + break;
  84 +
  85 + }
  86 +
  87 +
  88 +
  89 +
  90 +
  91 + default:
  92 + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida.");
  93 + }
  94 +
  95 +}catch(Exception $e){
  96 + try{ LogSEI::getInstance()->gravar(InfraException::inspecionar($e)."\n".'$_GET: '.print_r($_GET,true)); }catch(Exception $e2){}
  97 + die('Erro exibindo arquivo em acesso externo.');
  98 +}
  99 +?>
0 100 \ No newline at end of file
... ...
sei/institucional/pesquisa/processo_exibir.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/processo_exibir.php
... ... @@ -0,0 +1,869 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 +*
  5 +* 29/09/2014 - criado por alex braga
  6 +*
  7 +* Versão do Gerador de Código:
  8 +*
  9 +* Versão no CVS:
  10 +*/
  11 +
  12 +try {
  13 + require_once dirname(__FILE__).'/../../SEI.php';
  14 +
  15 + session_start();
  16 +
  17 + //////////////////////////////////////////////////////////////////////////////
  18 + InfraDebug::getInstance()->setBolLigado(false);
  19 + InfraDebug::getInstance()->setBolDebugInfra(true);
  20 + InfraDebug::getInstance()->limpar();
  21 + //////////////////////////////////////////////////////////////////////////////
  22 +
  23 + if (isset($_GET['id_acesso_externo'])){
  24 + SessaoSEIExterna::getInstance($_GET['id_acesso_externo'])->validarLink();
  25 + }else{
  26 + ConverteURI::converterURI();
  27 + SessaoSEIExterna::getInstance()->validarLink();
  28 +
  29 + }
  30 +
  31 + //carrega configurações pesquisa
  32 + $bolListaDocumentoProcessoPublico = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','ListaDocumentoProcessoPublico');
  33 + $bolListaAndamentoProcessoPublico = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','ListaAndamentoProcessoPublico');
  34 + $bolCaptchaGerarPdf = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','CaptchaPdf');
  35 + $bolLinkMetadadosProcessoRestrito = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','MetaDadosProcessoRestrito');
  36 + $bolListaAndamentoProcessoRestrito = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','ListaAndamentoProcessoRestrito');
  37 + $bolListaDocumentoProcessoRestrito = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','ListaDocumentoProcessoRestrito');
  38 +
  39 + if($bolCaptchaGerarPdf) {
  40 + $strCodigoParaGeracaoCaptcha = InfraCaptcha::obterCodigo();
  41 + $md5Captcha = md5(InfraCaptcha::gerar($strCodigoParaGeracaoCaptcha));
  42 + }else {
  43 + $md5Captcha = null;
  44 + }
  45 +
  46 + PaginaSEIExterna::getInstance()->setTipoPagina(PaginaSEIExterna::$TIPO_PAGINA_SEM_MENU);
  47 +
  48 + $strTitulo = 'Pesquisa Processual';
  49 +
  50 + //SessaoSEIExterna::getInstance()->validarPermissao($_GET['acao']);
  51 +
  52 +
  53 + //Carregar id do participante
  54 +// $objAcessoExternoDTO = new AcessoExternoDTO();
  55 +// $objAcessoExternoDTO->retDblIdDocumento();
  56 +// $objAcessoExternoDTO->retStrSinProcesso();
  57 +// $objAcessoExternoDTO->retNumIdParticipante();
  58 +
  59 +// $numIdAcessoExterno = null;
  60 +// if (isset($_GET['id_acesso_externo']) && $_GET['id_acesso_externo']!=''){
  61 +// $numIdAcessoExterno = $_GET['id_acesso_externo'];
  62 +// }else if (isset($_GET['id_acesso_externo_assinatura']) && $_GET['id_acesso_externo_assinatura']!=''){
  63 +// $numIdAcessoExterno = $_GET['id_acesso_externo_assinatura'];
  64 +// }
  65 +
  66 +// $objAcessoExternoDTO->setNumIdAcessoExterno($numIdAcessoExterno);
  67 +
  68 +// $objAcessoExternoRN = new AcessoExternoRN();
  69 +// $objAcessoExternoDTO = $objAcessoExternoRN->consultar($objAcessoExternoDTO);
  70 +
  71 +// if ($objAcessoExternoDTO==null){
  72 +// SessaoSEIExterna::getInstance()->sair(null, 'Registro de acesso externo não encontrado.');
  73 +// }
  74 +
  75 +// if ($objAcessoExternoDTO->getStrSinProcesso()=='N'){
  76 +// SessaoSEIExterna::getInstance()->sair(null, 'Usuário externo sem acesso ao processo solicitado.');
  77 +// }
  78 +
  79 +// //Carregar id do protocolo
  80 +// $objParticipanteDTO = new ParticipanteDTO();
  81 +// $objParticipanteDTO->retDblIdProtocolo();
  82 +// $objParticipanteDTO->setNumIdParticipante($objAcessoExternoDTO->getNumIdParticipante());
  83 +
  84 +// $objParticipanteRN = new ParticipanteRN();
  85 +// $objParticipanteDTO = $objParticipanteRN->consultarRN1008($objParticipanteDTO);
  86 +
  87 +// if (isset($_GET['id_procedimento_anexado'])){
  88 +
  89 +// $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();
  90 +// $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($objParticipanteDTO->getDblIdProtocolo());
  91 +// $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($_GET['id_procedimento_anexado']);
  92 +// $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO);
  93 +
  94 +// $objRelProtocoloProtocoloRN = new RelProtocoloProtocoloRN();
  95 +// if ($objRelProtocoloProtocoloRN->contarRN0843($objRelProtocoloProtocoloDTO)==0){
  96 +// SessaoSEIExterna::getInstance()->sair(null, 'Processo solicitado não está anexado ao processo original.');
  97 +// }
  98 +
  99 +// $dblIdProcedimento = $_GET['id_procedimento_anexado'];
  100 +
  101 +// }else{
  102 +// $dblIdProcedimento = $objParticipanteDTO->getDblIdProtocolo();
  103 +// }
  104 +
  105 + $dblIdProcedimento = $_GET['id_procedimento'];
  106 +
  107 + //Carregar dados do cabeçalho
  108 + $objProcedimentoDTO = new ProcedimentoDTO();
  109 + $objProcedimentoDTO->retStrNomeTipoProcedimento();
  110 + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();
  111 + $objProcedimentoDTO->retDtaGeracaoProtocolo();
  112 + $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo();
  113 + $objProcedimentoDTO->retStrStaNivelAcessoLocalProtocolo();
  114 + $objProcedimentoDTO->retNumIdHipoteseLegalProtocolo();
  115 +
  116 + $objProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento);
  117 + $objProcedimentoDTO->setStrSinDocTodos('S');
  118 + $objProcedimentoDTO->setStrSinProcAnexados('S');
  119 + //$objProcedimentoDTO->setStrSinDocAnexos('S');
  120 + //$objProcedimentoDTO->setStrSinDocConteudo('S');
  121 +
  122 + $objProcedimentoRN = new ProcedimentoRN();
  123 + $arr = $objProcedimentoRN->listarCompleto($objProcedimentoDTO);
  124 +
  125 + if (count($arr)==0){
  126 + //SessaoSEIExterna::getInstance()->sair(null, 'Processo não encontrado.');
  127 + die('Processo não encontrado.');
  128 + }
  129 +
  130 + $objProcedimentoDTO = $arr[0];
  131 +
  132 +
  133 + if(!$bolLinkMetadadosProcessoRestrito){
  134 + if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()!= ProtocoloRN::$NA_PUBLICO){
  135 + die('Processo não encontrado.');
  136 + }
  137 + }
  138 +
  139 + if($bolLinkMetadadosProcessoRestrito){
  140 +
  141 + if($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO ){
  142 +
  143 + die('Processo não encontrado.');
  144 +
  145 + }
  146 + }
  147 +
  148 + //Carregar interessados no processo
  149 + $objInteressadosParticipanteDTO = new ParticipanteDTO();
  150 + $objInteressadosParticipanteDTO->retStrNomeContato();
  151 + $objInteressadosParticipanteDTO->setDblIdProtocolo($dblIdProcedimento);
  152 + $objInteressadosParticipanteDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
  153 +
  154 +
  155 + $objInteressadosParticipanteRN = new ParticipanteRN();
  156 +
  157 + $objInteressadosParticipanteDTO = $objInteressadosParticipanteRN->listarRN0189($objInteressadosParticipanteDTO);
  158 +
  159 + if (count($objInteressadosParticipanteDTO)==0){
  160 + $strInteressados = '&nbsp;';
  161 + }else{
  162 + $strInteressados = '';
  163 + foreach($objInteressadosParticipanteDTO as $objInteressadoParticipanteDTO){
  164 + $strInteressados .= $objInteressadoParticipanteDTO->getStrNomeContato()."<br /> ";
  165 + }
  166 + }
  167 +
  168 +
  169 + //Mensagem Processo Restrito
  170 + $strMensagemProcessoRestrito = '';
  171 + $strHipoteseLegal = '';
  172 + if($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_RESTRITO && $bolLinkMetadadosProcessoRestrito){
  173 +
  174 + $objHipoteseLegalDTO = new HipoteseLegalDTO();
  175 + $objHipoteseLegalDTO->setNumIdHipoteseLegal($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo());
  176 + $objHipoteseLegalDTO->retStrBaseLegal();
  177 + $objHipoteseLegalDTO->retStrNome();
  178 +
  179 + $objHipoteseLegalRN = new HipoteseLegalRN();
  180 + $objHipoteseLegalDTO = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO);
  181 +
  182 + if($objHipoteseLegalDTO != null){
  183 +
  184 + $strHipoteseLegal .= '<img src="/infra_css/imagens/espaco.gif">';
  185 + $strHipoteseLegal .= '<img src="imagens/sei_chave_restrito.gif" align="absbottom" title="Acesso Restrito.&#13'.PaginaSEIExterna::getInstance()->formatarXHTML($objHipoteseLegalDTO->getStrNome().' ('.$objHipoteseLegalDTO->getStrBaseLegal().')').'">';
  186 +
  187 + }
  188 +
  189 + $strMensagemProcessoRestrito = '<p style="font-size: 1.2em;"> '.ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','DescricaoProcedimentoAcessoRestrito').'</p>';
  190 +
  191 + }
  192 +
  193 +
  194 + $strResultadoCabecalho = '';
  195 + $strResultadoCabecalho .= '<table id="tblCabecalho" width="99.3%" class="infraTable" summary="Cabeçalho de Processo" >'."\n";
  196 + $strResultadoCabecalho .= '<tr><th class="infraTh" colspan="2">Autuação</th></tr>'."\n";
  197 + $strResultadoCabecalho .= '<tr class="infraTrClara"><td width="20%">Processo:</td><td>'.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().$strHipoteseLegal.'</td></tr>'."\n";
  198 + $strResultadoCabecalho .= '<tr class="infraTrClara"><td width="20%">Tipo:</td><td>'.PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTO->getStrNomeTipoProcedimento()).'</td></tr>'."\n";
  199 + $strResultadoCabecalho .= '<tr class="infraTrClara"><td width="20%">Data de Registro:</td><td>'.$objProcedimentoDTO->getDtaGeracaoProtocolo().'</td></tr>'."\n";
  200 + $strResultadoCabecalho .= '<tr class="infraTrClara"><td width="20%">Interessados:</td><td> '.$strInteressados.'</td></tr>'."\n";
  201 + $strResultadoCabecalho .= '</table>'."\n";
  202 +
  203 +
  204 +
  205 +
  206 +
  207 +
  208 + //$arrObjDocumentoDTO = InfraArray::indexarArrInfraDTO($objProcedimentoDTO->getArrObjDocumentoDTO(),'IdDocumento');
  209 + $arrObjRelProtocoloProtocoloDTO = array();
  210 +
  211 + if($bolListaDocumentoProcessoPublico && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_PUBLICO ){
  212 + $arrObjRelProtocoloProtocoloDTO = $objProcedimentoDTO->getArrObjRelProtocoloProtocoloDTO();
  213 + }else if($bolListaDocumentoProcessoRestrito && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_RESTRITO){
  214 + $arrObjRelProtocoloProtocoloDTO = $objProcedimentoDTO->getArrObjRelProtocoloProtocoloDTO();
  215 + }
  216 +
  217 + // Objeto Fake para paginação.
  218 + $objProtocoloPesquisaPublicaPaginacaoDTO = new ProtocoloPesquisaPublicaDTO();
  219 + $objProtocoloPesquisaPublicaPaginacaoDTO->retTodos(true);
  220 + PaginaSEIExterna::getInstance()->prepararOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO, 'Registro', InfraDTO::$TIPO_ORDENACAO_ASC);
  221 + //PaginaSEIExterna::getInstance()->prepararPaginacao($objProtocoloPesquisaPublicaPaginacaoDTO,4);
  222 + //PaginaSEIExterna::getInstance()->processarPaginacao($objProtocoloPesquisaPublicaPaginacaoDTO);
  223 + $arrObjProtocoloPesquisaPublicaDTO = array();
  224 +
  225 + $objDocumentoRN = new DocumentoRN();
  226 +
  227 + $numProtocolos = 0;
  228 + $numDocumentosPdf = 0;
  229 + $strCssMostrarAcoes = '.colunaAcoes {display:none;}'."\n";
  230 +
  231 + $strThCheck = PaginaSEIExterna::getInstance()->getThCheck();
  232 +
  233 + foreach($arrObjRelProtocoloProtocoloDTO as $objRelProtocoloProtocoloDTO){
  234 +
  235 + if ($objRelProtocoloProtocoloDTO->getStrStaAssociacao()==RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO){
  236 +
  237 + $objDocumentoDTO = $objRelProtocoloProtocoloDTO->getObjProtocoloDTO2();
  238 + //valida documentos para retornar
  239 + if ($objDocumentoRN->verificarSelecaoAcessoExterno($objDocumentoDTO)){
  240 +
  241 + $objProtocoloPesquisaPublicaDTO = new ProtocoloPesquisaPublicaDTO();
  242 + $objProtocoloPesquisaPublicaDTO->setStrNumeroSEI($objDocumentoDTO->getStrProtocoloDocumentoFormatado());
  243 + $objProtocoloPesquisaPublicaDTO->setStrTipoDocumento(PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie().' '.$objDocumentoDTO->getStrNumero()));
  244 +
  245 +
  246 + if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){
  247 +
  248 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  249 + $objAtributoAndamentoDTO->setDblIdProtocoloAtividade($objProcedimentoDTO->getDblIdProcedimento());
  250 + $objAtributoAndamentoDTO->setNumIdTarefaAtividade(TarefaRN::$TI_RECEBIMENTO_DOCUMENTO);
  251 + $objAtributoAndamentoDTO->setStrNome("DOCUMENTO");
  252 + $objAtributoAndamentoDTO->setStrIdOrigem($objDocumentoDTO->getDblIdDocumento());
  253 +
  254 + $objAtributoAndamentoDTO->retDthAberturaAtividade();
  255 +
  256 + $objAtributoAndamentoRN = new AtributoAndamentoRN();
  257 +
  258 + $objAtributoAndamentoDTO = $objAtributoAndamentoRN->consultarRN1366($objAtributoAndamentoDTO);
  259 +
  260 + if($objAtributoAndamentoDTO != null && $objAtributoAndamentoDTO->isSetDthAberturaAtividade()){
  261 +
  262 + $dtaRecebimento = substr($objAtributoAndamentoDTO->getDthAberturaAtividade(),0,10);
  263 +
  264 + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($dtaRecebimento);
  265 +
  266 + }else{
  267 +
  268 + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objDocumentoDTO->getDtaGeracaoProtocolo());
  269 + }
  270 +
  271 + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objDocumentoDTO->getDtaGeracaoProtocolo());
  272 +
  273 + }else if ($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_GERADO){
  274 +
  275 + $objAssinaturaDTO = new AssinaturaDTO();
  276 + $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
  277 + $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC);
  278 + $objAssinaturaDTO->retDthAberturaAtividade();
  279 +
  280 + $objAssinaturaRN = new AssinaturaRN();
  281 + $arrObjAssinaturaDTO = $objAssinaturaRN->listarRN1323($objAssinaturaDTO);
  282 +
  283 + if(is_array($arrObjAssinaturaDTO) && count($arrObjAssinaturaDTO) > 0) {
  284 +
  285 + $objAssinaturaDTO = $arrObjAssinaturaDTO[0];
  286 +
  287 + if($objAssinaturaDTO != null && $objAssinaturaDTO->isSetDthAberturaAtividade()){
  288 +
  289 + $dtaAssinatura = substr($objAssinaturaDTO->getDthAberturaAtividade(),0,10);
  290 +
  291 + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($dtaAssinatura);
  292 + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($dtaAssinatura);
  293 +
  294 + }else{
  295 + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objDocumentoDTO->getDtaGeracaoProtocolo());
  296 + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objDocumentoDTO->getDtaGeracaoProtocolo());
  297 + }
  298 + }else{
  299 +
  300 + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objDocumentoDTO->getDtaGeracaoProtocolo());
  301 + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objDocumentoDTO->getDtaGeracaoProtocolo());
  302 + }
  303 +
  304 +
  305 +
  306 +
  307 + }
  308 +
  309 +
  310 + $objProtocoloPesquisaPublicaDTO->setStrUnidade($objDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo());
  311 + $objProtocoloPesquisaPublicaDTO->setStrStaAssociacao($objRelProtocoloProtocoloDTO->getStrStaAssociacao());
  312 + $objProtocoloPesquisaPublicaDTO->setObjDocumentoDTO($objDocumentoDTO);
  313 +
  314 +
  315 + $arrObjProtocoloPesquisaPublicaDTO[] = $objProtocoloPesquisaPublicaDTO;
  316 + $numProtocolos++;
  317 + }
  318 + }else if ($objRelProtocoloProtocoloDTO->getStrStaAssociacao()==RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO){
  319 +
  320 + $objProcedimentoDTOAnexado = $objRelProtocoloProtocoloDTO->getObjProtocoloDTO2();
  321 +
  322 + $objProtocoloPesquisaPublicaDTO = new ProtocoloPesquisaPublicaDTO();
  323 + $objProtocoloPesquisaPublicaDTO->setStrNumeroSEI($objProcedimentoDTOAnexado->getStrProtocoloProcedimentoFormatado());
  324 + $objProtocoloPesquisaPublicaDTO->setStrTipoDocumento(PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTOAnexado->getStrNomeTipoProcedimento()));
  325 + $objProtocoloPesquisaPublicaDTO->setDtaDocumento($objProcedimentoDTOAnexado->getDtaGeracaoProtocolo());
  326 + $objProtocoloPesquisaPublicaDTO->setDtaRegistro($objProcedimentoDTOAnexado->getDtaGeracaoProtocolo());
  327 + $objProtocoloPesquisaPublicaDTO->setStrUnidade($objProcedimentoDTOAnexado->getStrSiglaUnidadeGeradoraProtocolo());
  328 + $objProtocoloPesquisaPublicaDTO->setStrStaAssociacao($objRelProtocoloProtocoloDTO->getStrStaAssociacao());
  329 + $objProtocoloPesquisaPublicaDTO->setObjProcedimentoDTO($objProcedimentoDTOAnexado);
  330 +
  331 + $arrObjProtocoloPesquisaPublicaDTO[] = $objProtocoloPesquisaPublicaDTO;
  332 +
  333 +
  334 + $numProtocolos++;
  335 + }
  336 + }
  337 +
  338 +
  339 + if ($numProtocolos > 0){
  340 +
  341 +
  342 +
  343 + $strResultado = '<table id="tblDocumentos" width="99.3%" class="infraTable" summary="Lista de Documentos" >
  344 + <caption class="infraCaption" >'.PaginaSEIExterna::getInstance()->gerarCaptionTabela("Protocolos",$numProtocolos).'</caption>
  345 + <tr>
  346 + <th class="infraTh" width="1%">'.$strThCheck.'</th>
  347 + <th class="infraTh" width="15%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Documento / Processo','NumeroSEI',$arrObjProtocoloPesquisaPublicaDTO,true).'</th>
  348 + <th class="infraTh" width="15%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Tipo de Documento','TipoDocumento',$arrObjProtocoloPesquisaPublicaDTO,true).'</th>
  349 + <th class="infraTh" width="15%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Data do Documento','Documento',$arrObjProtocoloPesquisaPublicaDTO,true).'</th>
  350 + <th class="infraTh" width="15%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Data de Registro','Registro',$arrObjProtocoloPesquisaPublicaDTO,true).'</th>
  351 + <th class="infraTh" width="15%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objProtocoloPesquisaPublicaPaginacaoDTO,'Unidade','Unidade',$arrObjProtocoloPesquisaPublicaDTO,true).'</th>
  352 +
  353 + </tr>';
  354 +
  355 + // monta tabela documentos
  356 + foreach ($arrObjProtocoloPesquisaPublicaDTO as $objProtocoloPesquisaPublicaDTO){
  357 +
  358 + if($objProtocoloPesquisaPublicaDTO->getStrStaAssociacao() == RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO){
  359 +
  360 + $objDocumentoDTO = $objProtocoloPesquisaPublicaDTO->getObjDocumentoDTO();
  361 + $urlCripografadaDocumeto = Criptografia::criptografa('id_documento='.$objDocumentoDTO->getDblIdDocumento().'&id_orgao_acesso_externo=0');
  362 + $strLinkDocumento = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink('documento_consulta_externa.php?'.$urlCripografadaDocumeto));
  363 +
  364 + $strResultado .= '<tr class="infraTrClara">';
  365 +
  366 + //Cria checkbox para gerar PDF, verifica se o Processo é público e o Acesso Local do Protocolo é Público
  367 + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO){
  368 + if($objDocumentoRN->verificarSelecaoGeracaoPdf($objDocumentoDTO)){
  369 + $strResultado .= '<td align="center">'.PaginaSEIExterna::getInstance()->getTrCheck($numDocumentosPdf++, $objDocumentoDTO->getDblIdDocumento(), $objDocumentoDTO->getStrNomeSerie()).'</td>';
  370 + }else{
  371 + $strResultado .= '<td>&nbsp;</td>';
  372 + }
  373 + }else{
  374 + $strResultado .= '<td>&nbsp;</td>';
  375 + }
  376 +
  377 +
  378 + //Exibe link de documentos com nivel de acesso local Público de processo público
  379 + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){
  380 + $strResultado .= '<td align="center" style="padding-right:22px"><a href="javascript:void(0);" onclick="window.open(\''.$strLinkDocumento.'\');" alt="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" title="'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie()).'" class="ancoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</a></td>';
  381 + }else{
  382 + if($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){
  383 +
  384 + //necessario para retornar id hipotese legal do documento
  385 + $strHipoteseLegalDocumento = '';
  386 + $objProtocoloDocumentoDTO = new ProtocoloDTO();
  387 + $objProtocoloDocumentoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdDocumento());
  388 + $objProtocoloDocumentoDTO->retNumIdHipoteseLegal();
  389 +
  390 + $objProtocoloRN = new ProtocoloRN();
  391 + $objProtocoloDocumentoDTO = $objProtocoloRN->consultarRN0186($objProtocoloDocumentoDTO);
  392 +
  393 + if($objProtocoloDocumentoDTO != null){
  394 +
  395 + $objHipoteseLegaDocumentoDTO = new HipoteseLegalDTO();
  396 + $objHipoteseLegaDocumentoDTO->setNumIdHipoteseLegal($objProtocoloDocumentoDTO->getNumIdHipoteseLegal());
  397 + $objHipoteseLegaDocumentoDTO->retStrNome();
  398 + $objHipoteseLegaDocumentoDTO->retStrBaseLegal();
  399 +
  400 + $objHipoteseLegalRN = new HipoteseLegalRN();
  401 + $objHipoteseLegaDocumentoDTO = $objHipoteseLegalRN->consultar($objHipoteseLegaDocumentoDTO);
  402 +
  403 +
  404 + if($objHipoteseLegaDocumentoDTO != null){
  405 +
  406 + $strHipoteseLegalDocumento .= $objHipoteseLegaDocumentoDTO->getStrNome().' ('.$objHipoteseLegaDocumentoDTO->getStrBaseLegal().')';
  407 + }
  408 + }
  409 +
  410 +
  411 +
  412 + $strResultado .= '<td align="center" ><span class="retiraAncoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</span>';
  413 + $strResultado .= '<img src="/infra_css/imagens/espaco.gif">';
  414 + $strResultado .= '<img src="imagens/sei_chave_restrito.gif" align="absbottom" title="Acesso Restrito.&#13'.PaginaSEIExterna::getInstance()->formatarXHTML($strHipoteseLegalDocumento).'">';
  415 + $strResultado .= '</td>';
  416 +
  417 + }else{
  418 + $strResultado .= '<td align="center" style="padding-right:22px" ><span class="retiraAncoraPadraoAzul">'.$objDocumentoDTO->getStrProtocoloDocumentoFormatado().'</span>';
  419 + }
  420 +
  421 +
  422 + }
  423 +
  424 + $strResultado .= '<td align="center">'.PaginaSEIExterna::getInstance()->formatarXHTML($objDocumentoDTO->getStrNomeSerie().' '.$objDocumentoDTO->getStrNumero()).'</td>
  425 + <td align="center">'.$objProtocoloPesquisaPublicaDTO->getDtaDocumento().'</td>
  426 + <td align="center">'.$objProtocoloPesquisaPublicaDTO->getDtaRegistro().'</td>
  427 + <td align="center"><a alt="'.$objDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo().'" title="'.$objDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo().'" class="ancoraSigla">'.$objDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo().'</a></td>
  428 + <td align="center" class="colunaAcoes">';
  429 +
  430 + $strResultado .='</td></tr>';
  431 +
  432 + }else if($objProtocoloPesquisaPublicaDTO->getStrStaAssociacao() == RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO){
  433 +
  434 +
  435 + $strResultado .= '<tr class="infraTrClara">';
  436 + $strResultado .= '<td>&nbsp;</td>';
  437 + $strHipoteseLegalAnexo .= '';
  438 +
  439 + $objProcedimentoDTOAnexado = $objProtocoloPesquisaPublicaDTO->getObjProcedimentoDTO();
  440 +
  441 + // cria indicação de acesso restrito com hipotese legal.
  442 + if($objProcedimentoDTOAnexado->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){
  443 +
  444 + $strHipoteseLegalAnexo = '';
  445 + $objProtocoloAnexoDTO = new ProtocoloDTO();
  446 + $objProtocoloAnexoDTO->setDblIdProtocolo($objProcedimentoDTOAnexado->getDblIdProcedimento());
  447 + $objProtocoloAnexoDTO->retNumIdHipoteseLegal();
  448 +
  449 + $objProtocoloRN = new ProtocoloRN();
  450 + $objProtocoloAnexoDTO = $objProtocoloRN->consultarRN0186($objProtocoloAnexoDTO);
  451 +
  452 + if($objProtocoloAnexoDTO != null){
  453 +
  454 + $objHipoteseLegaAnexoDTO = new HipoteseLegalDTO();
  455 + $objHipoteseLegaAnexoDTO->setNumIdHipoteseLegal($objProtocoloAnexoDTO->getNumIdHipoteseLegal());
  456 + $objHipoteseLegaAnexoDTO->retStrNome();
  457 + $objHipoteseLegaAnexoDTO->retStrBaseLegal();
  458 +
  459 + $objHipoteseLegalRN = new HipoteseLegalRN();
  460 + $objHipoteseLegaDocumentoDTO = $objHipoteseLegalRN->consultar($objHipoteseLegaAnexoDTO);
  461 +
  462 +
  463 + if($objHipoteseLegaDocumentoDTO != null){
  464 +
  465 + $strHipoteseLegalAnexo .= $objHipoteseLegaDocumentoDTO->getStrNome().' ('.$objHipoteseLegaDocumentoDTO->getStrBaseLegal().')';
  466 + }
  467 + }
  468 + $strProtocoloRestrito .= '<img src="imagens/sei_chave_restrito.gif" align="absbottom" title="Acesso Restrito.&#13'.$strHipoteseLegalAnexo.'">';
  469 + }
  470 +
  471 + if($objProcedimentoDTOAnexado->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO && $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_PUBLICO ){
  472 + $parametrosCriptografadosProcesso = Criptografia::criptografa('id_orgao_acesso_externo=0&id_procedimento='.$objProcedimentoDTOAnexado->getDblIdProcedimento());
  473 + $urlPesquisaProcesso = 'processo_exibir.php?'.$parametrosCriptografadosProcesso;
  474 +
  475 + // $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()));
  476 +
  477 + $strLinkProcessoAnexado = PaginaSEI::getInstance()->formatarXHTML(SessaoSEI::getInstance()->assinarLink(SolrUtilExterno::prepararUrl($urlPesquisaProcesso)));
  478 +
  479 +
  480 + $strResultado .= '<td align="center"><a href="javascript:void(0);" onclick="window.open(\''.$strLinkProcessoAnexado.'\');" alt="'.$objProcedimentoDTOAnexado->getStrNomeTipoProcedimento().'" title="'.$objProcedimentoDTOAnexado->getStrNomeTipoProcedimento().'" class="ancoraPadraoAzul">'.$objProcedimentoDTOAnexado->getStrProtocoloProcedimentoFormatado().'</a>'.$strProtocoloRestrito.'</td>';
  481 +
  482 + }else{
  483 +
  484 + $strResultado .= '<td align="center" style="padding-right:22px" ><span class="retiraAncoraPadraoAzul">'.PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTOAnexado->getStrProtocoloProcedimentoFormatado()).' </span>'.$strProtocoloRestrito.'</td>';
  485 +
  486 + }
  487 +
  488 + $strResultado.= '<td align="center">'.PaginaSEIExterna::getInstance()->formatarXHTML($objProcedimentoDTOAnexado->getStrNomeTipoProcedimento()).'</td>
  489 + <td align="center">'.$objProtocoloPesquisaPublicaDTO->getDtaDocumento().'</td>
  490 + <td align="center">'.$objProtocoloPesquisaPublicaDTO->getDtaRegistro().'</td>
  491 + <td align="center"><a alt="'.$objProcedimentoDTOAnexado->getStrDescricaoUnidadeGeradoraProtocolo().'" title="'.$objProcedimentoDTOAnexado->getStrDescricaoUnidadeGeradoraProtocolo().'" class="ancoraSigla">'.$objProcedimentoDTOAnexado->getStrSiglaUnidadeGeradoraProtocolo().'</a></td>
  492 + <td align="center" class="colunaAcoes">&nbsp;</td>';
  493 + $strResultado .='</tr>';
  494 +
  495 + }
  496 + }
  497 +
  498 + $strResultado.='</table>';
  499 +
  500 + }
  501 +
  502 +
  503 + $arrComandos = array();
  504 + if ($numDocumentosPdf > 0){
  505 + if($bolCaptchaGerarPdf){
  506 + $strComando = '<button type="button" accesskey="G" name="btnGerarPdfModal" value="Gerar PDF" onclick="gerarPdfModal();" class="infraButton"><span class="infraTeclaAtalho">G</span>erar PDF</button>';
  507 + }else{
  508 + $strComando = '<button type="button" accesskey="G" name="btnGerarPdfModal" value="Gerar PDF" onclick="gerarPdf();" class="infraButton"><span class="infraTeclaAtalho">G</span>erar PDF</button>';
  509 + }
  510 +
  511 + $arrComandos[] = $strComando;
  512 +
  513 + }
  514 +
  515 + //Carregar histórico
  516 +
  517 + $numRegistrosAtividades = 0;
  518 +
  519 +
  520 + if(($bolListaAndamentoProcessoPublico && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_PUBLICO) ||
  521 + ($bolListaAndamentoProcessoRestrito && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_RESTRITO) ){
  522 +
  523 + $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO();
  524 + $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento);
  525 + $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_EXTERNO);
  526 + $objProcedimentoHistoricoDTO->setStrSinGerarLinksHistorico('N');
  527 +
  528 + //$arrIdTarefa = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','ArrIdTarefaAndamento');
  529 + //$objProcedimentoHistoricoDTO->setNumIdTarefa($arrIdTarefa);
  530 +
  531 + $objProcedimentoRN = new ProcedimentoRN();
  532 + $objProcedimentoDTORet = $objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO);
  533 + $arrObjAtividadeDTO = $objProcedimentoDTORet->getArrObjAtividadeDTO();
  534 +
  535 + $numRegistrosAtividades = count($arrObjAtividadeDTO);
  536 + }
  537 +
  538 +
  539 +
  540 +
  541 + if ($numRegistrosAtividades > 0){
  542 +
  543 + $bolCheck = false;
  544 +
  545 + $strResultadoAndamentos = '';
  546 +
  547 + $strResultadoAndamentos .= '<table id="tblHistorico" width="99.3%" class="infraTable" summary="Histórico de Andamentos">'."\n";
  548 + $strResultadoAndamentos .= '<caption class="infraCaption">'.PaginaSEIExterna::getInstance()->gerarCaptionTabela('Andamentos',$numRegistrosAtividades).'</caption>';
  549 + $strResultadoAndamentos .= '<tr>';
  550 + $strResultadoAndamentos .= '<th class="infraTh" width="20%">Data/Hora</th>';
  551 + $strResultadoAndamentos .= '<th class="infraTh" width="10%">Unidade</th>';
  552 + $strResultadoAndamentos .= '<th class="infraTh">Descrição</th>';
  553 + $strResultadoAndamentos .= '</tr>'."\n";
  554 +
  555 + $strQuebraLinha = '<span style="line-height:.5em"><br /></span>';
  556 +
  557 +
  558 + foreach($arrObjAtividadeDTO as $objAtividadeDTO){
  559 +
  560 + //InfraDebug::getInstance()->gravar($objAtividadeDTO->getNumIdAtividade());
  561 +
  562 + $strResultadoAndamentos .= "\n\n".'<!-- '.$objAtividadeDTO->getNumIdAtividade().' -->'."\n";
  563 +
  564 + if ($objAtividadeDTO->getStrSinUltimaUnidadeHistorico() == 'S'){
  565 + $strAbertas = 'class="andamentoAberto"';
  566 + }else{
  567 + $strAbertas = 'class="andamentoConcluido"';
  568 + }
  569 +
  570 + $strResultadoAndamentos .= '<tr '.$strAbertas.'>';
  571 + $strResultadoAndamentos .= "\n".'<td align="center">';
  572 + $strResultadoAndamentos .= substr($objAtividadeDTO->getDthAbertura(),0,16);
  573 + $strResultadoAndamentos .= '</td>';
  574 +
  575 + $strResultadoAndamentos .= "\n".'<td align="center">';
  576 + $strResultadoAndamentos .= '<a alt="'.$objAtividadeDTO->getStrDescricaoUnidade().'" title="'.$objAtividadeDTO->getStrDescricaoUnidade().'" class="ancoraSigla">'.$objAtividadeDTO->getStrSiglaUnidade().'</a>';
  577 + $strResultadoAndamentos .= '</td>';
  578 +
  579 + $strResultadoAndamentos .= "\n";
  580 + $strResultadoAndamentos .= "\n".'<td>';
  581 +
  582 + if (!InfraString::isBolVazia($objAtividadeDTO->getStrNomeTarefa())){
  583 + $strResultadoAndamentos .= nl2br($objAtividadeDTO->getStrNomeTarefa()).$strQuebraLinha;
  584 + }
  585 +
  586 + $strResultadoAndamentos .= '</td>';
  587 +
  588 + $strResultadoAndamentos .= '</tr>';
  589 + }
  590 + $strResultadoAndamentos .= '</table><br />';
  591 + }
  592 +
  593 +
  594 +
  595 + AuditoriaSEI::getInstance()->auditar('processo_consulta_externa', __FILE__, strip_tags($strResultadoCabecalho)."\n".strip_tags($strResultado));
  596 +
  597 + if ($_POST['hdnFlagGerar']=='1'){
  598 +
  599 + if(md5($_POST['txtCaptcha']) != $_POST['hdnCaptchaMd5'] && $_GET['hash'] != $_POST['hdnCaptchaMd5'] && $bolCaptchaGerarPdf == true){
  600 + PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.');
  601 +
  602 + }else {
  603 +
  604 +
  605 + $objDocumentoRN = new DocumentoRN();
  606 +
  607 + $parArrObjDocumentoDTO = InfraArray::converterArrInfraDTO(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()),'IdDocumento');
  608 + $objDocumentoDTO = new DocumentoDTO();
  609 + $objDocumentoDTO->retDblIdDocumento();
  610 + $objDocumentoDTO->setDblIdDocumento($parArrObjDocumentoDTO, InfraDTO::$OPER_IN);
  611 + $objDocumentoDTO->retDblIdProcedimento();
  612 + $objDocumentoDTO->retStrStaNivelAcessoGlobalProtocolo();
  613 + $objDocumentoDTO->retStrStaNivelAcessoLocalProtocolo();
  614 + $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO);
  615 +
  616 + foreach ($arrObjDocumentoDTO as $objDocumentoDTO){
  617 +
  618 + //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
  619 + if($bolListaDocumentoProcessoRestrito){
  620 + if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() != ProtocoloRN::$NA_PUBLICO){
  621 + die ("Erro ao Gerar Pdf");
  622 + }
  623 + }else if($bolListaDocumentoProcessoPublico){
  624 + if($objDocumentoDTO->getDblIdProcedimento() != $dblIdProcedimento || $objDocumentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_PUBLICO){
  625 + die ("Erro ao Gerar Pdf");
  626 + }
  627 + }else{
  628 + die ("Erro ao Gerar Pdf");
  629 + }
  630 +
  631 +
  632 + }
  633 +
  634 +
  635 + $objDocumentoRN = new DocumentoRN();
  636 + $objAnexoDTO = $objDocumentoRN->gerarPdf(InfraArray::gerarArrInfraDTO('DocumentoDTO','IdDocumento',PaginaSEIExterna::getInstance()->getArrStrItensSelecionados()));
  637 +
  638 + $bolGeracaoOK = true;
  639 +
  640 + }
  641 +
  642 + }
  643 +
  644 +}catch(Exception $e){
  645 + PaginaSEIExterna::getInstance()->processarExcecao($e);
  646 +}
  647 +
  648 +
  649 +PaginaSEIExterna::getInstance()->montarDocType();
  650 +PaginaSEIExterna::getInstance()->abrirHtml();
  651 +PaginaSEIExterna::getInstance()->abrirHead();
  652 +PaginaSEIExterna::getInstance()->montarMeta();
  653 +PaginaSEIExterna::getInstance()->montarTitle(':: '.PaginaSEIExterna::getInstance()->getStrNomeSistema().' - '.$strTitulo.' ::');
  654 +PaginaSEIExterna::getInstance()->montarStyle();
  655 +PaginaSEIExterna::getInstance()->abrirStyle();
  656 +echo $strCssMostrarAcoes;
  657 +?>
  658 +
  659 +div.infraBarraSistemaE {width:90%}
  660 +div.infraBarraSistemaD {width:5%}
  661 +div.infraBarraComandos {width:99%}
  662 +
  663 +table caption {
  664 + text-align:left !important;
  665 + font-size: 1.2em;
  666 + font-weight:bold;
  667 +}
  668 +
  669 +.andamentoAberto {
  670 + background-color:white;
  671 +}
  672 +
  673 +.andamentoConcluido {
  674 + background-color:white;
  675 +}
  676 +
  677 +
  678 +#tblCabecalho{margin-top:1;}
  679 +#tblDocumentos {margin-top:1.5em;}
  680 +#tblHistorico {margin-top:1.5em;}
  681 +
  682 +<? if($bolCaptchaGerarPdf) { ?>
  683 +#lblCaptcha {position: absolute; top:30%; left: 20%; width: 80%}
  684 +#txtCaptcha{position: absolute; top:56%; left: 20%; height:15%; width:56%;font-size: 3em;}
  685 +#btnEnviarCaptcha {position: absolute; top:80%; left: 20%; width:56%}
  686 +
  687 +#divInfraModal{
  688 +
  689 + display: none;
  690 + position: fixed;
  691 + z-index: 1;
  692 + padding-top: 100px;
  693 + left: 0;
  694 + top: 0;
  695 + width: 50%;
  696 + height: 50%;
  697 + overflow: auto;
  698 +
  699 +}
  700 +
  701 +
  702 +
  703 +.close {
  704 + color: white;
  705 + float: right;
  706 + font-size: 28px;
  707 + font-weight: bold;
  708 +}
  709 +
  710 +.close:hover,
  711 +.close:focus {
  712 + color: #000;
  713 + text-decoration: none;
  714 + cursor: pointer;
  715 +}
  716 +
  717 +.modal-header {
  718 + padding: 2px 16px;
  719 + background-image: url("imagens/bg_barra_sistema.jpg");
  720 + color: white;
  721 +}
  722 +
  723 +.modal-body {padding: 2px 16px;}
  724 +
  725 +.modal-footer {
  726 + padding: 2px 16px;
  727 + background-color: #5cb85c;
  728 + color: white;
  729 +}
  730 +<? } ?>
  731 +
  732 +span.retiraAncoraPadraoAzul{font-size: 1.2em;}
  733 +
  734 +<?
  735 +PaginaSEIExterna::getInstance()->fecharStyle();
  736 +PaginaSEIExterna::getInstance()->montarJavaScript();
  737 +PaginaSEIExterna::getInstance()->abrirJavaScript();
  738 +?>
  739 +
  740 +function inicializar(){
  741 +
  742 + <?if ($bolGeracaoOK){?>
  743 +
  744 +
  745 + <!--
  746 + //window.open('<?=SessaoSEIExterna::getInstance()->assinarLink('processo_exibe_arquivo.php?id_acesso_externo='.$_GET['id_acesso_externo'].'&acao_externa=usuario_externo_exibir_arquivo&nome_arquivo='.$objAnexoDTO->getStrNome().'&nome_download=SEI-'.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'.pdf');?>');
  747 + -->
  748 +
  749 + window.open('<?=SessaoSEIExterna::getInstance()->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');?>');
  750 +
  751 +
  752 + <?}?>
  753 +
  754 + infraEfeitoTabelas();
  755 +}
  756 +
  757 +
  758 +<?
  759 +if($bolCaptchaGerarPdf){
  760 +?>
  761 +
  762 +$(document).unbind("keyup").keyup(function(e){
  763 + e.preventDefault();
  764 + var code = e.which;
  765 + if(code==13){
  766 + var modal = document.getElementById('divInfraModal');
  767 + if(modal.style.display == "block"){
  768 + fecharPdfModal();
  769 + gerarPdf();
  770 +
  771 + }
  772 + }
  773 +});
  774 +
  775 +
  776 +
  777 +function gerarPdfModal(){
  778 +
  779 + if (document.getElementById('hdnInfraItensSelecionados').value==''){
  780 + alert('Nenhum documento selecionado.');
  781 + return;
  782 + }
  783 + var modal = document.getElementById('divInfraModal');
  784 + modal.style.display = "block";
  785 +
  786 +}
  787 +
  788 +function fecharPdfModal(){
  789 +
  790 + var modal = document.getElementById('divInfraModal');
  791 + modal.style.display = "none";
  792 +}
  793 +
  794 +window.onclick = function(event) {
  795 + var modal = document.getElementById('divInfraModal');
  796 + if (event.target == modal) {
  797 + modal.style.display = "none";
  798 + }
  799 +}
  800 +
  801 +<?
  802 +}
  803 +?>
  804 +
  805 +function gerarPdf() {
  806 +
  807 + if (document.getElementById('hdnInfraItensSelecionados').value==''){
  808 + alert('Nenhum documento selecionado.');
  809 + return;
  810 + }
  811 +
  812 + <?
  813 + if($bolCaptchaGerarPdf){
  814 + ?>
  815 + fecharPdfModal();
  816 + <?
  817 + }
  818 + ?>
  819 +
  820 + infraExibirAviso(false);
  821 +
  822 + document.getElementById('hdnFlagGerar').value = '1';
  823 + document.getElementById('frmProcessoAcessoExternoConsulta').submit();
  824 +}
  825 +
  826 +<?
  827 +PaginaSEIExterna::getInstance()->fecharJavaScript();
  828 +PaginaSEIExterna::getInstance()->fecharHead();
  829 +PaginaSEIExterna::getInstance()->abrirBody($strTitulo,'onload="inicializar();"');
  830 +?>
  831 +
  832 +<form id="frmProcessoAcessoExternoConsulta" method="post">
  833 +<?
  834 +if($bolCaptchaGerarPdf){
  835 + echo '
  836 + <div id="divInfraModal" class="infraFundoTransparente" style="position: fixed; width: 100%; height: 100%; visibility: visible;">
  837 + <div id="divCaptcha" class="infraAreaDados" style="height: 220px; width: 230px; background-color:white">
  838 + <div class="modal-header">
  839 + <span id="spnClose" class="close" onclick="fecharPdfModal();">×</span>
  840 + <h2 style ="color: white;font-size: 1.2em;font-weight: bold;">Digite o Código da Imagem</h2>
  841 + </div>
  842 + <div class="modal-body">
  843 + <label id="lblCaptcha" accesskey="" class="infraLabelObrigatorio">
  844 + <img src="/infra_js/infra_gerar_captcha.php?codetorandom='.$strCodigoParaGeracaoCaptcha.'" alt="Não foi possível carregar imagem de confirmação" /> </label>
  845 + <input type="text" id="txtCaptcha" name="txtCaptcha" class="infraText" maxlength="4" value="" />
  846 + <button id="btnEnviarCaptcha" type="submit" accesskey="G" name="btnEnviarCaptcha" value="Enviar" onclick="gerarPdf();" class="infraButton"><span class="infraTeclaAtalho">E</span>nviar</button>
  847 + </div>
  848 +
  849 + </div>
  850 + </div>
  851 + ';
  852 +
  853 +}
  854 +PaginaSEIExterna::getInstance()->montarBarraComandosSuperior($arrComandos);
  855 +echo $strResultadoCabecalho;
  856 +echo $strMensagemProcessoRestrito;
  857 +PaginaSEIExterna::getInstance()->montarAreaTabela($strResultado,$numProtocolos);
  858 +echo $strResultadoAndamentos;
  859 +?>
  860 +<input type="hidden" id="hdnFlagGerar" name="hdnFlagGerar" value="0" />
  861 + <?if($bolCaptchaGerarPdf) { ?>
  862 + <input type="hidden" id="hdnCaptchaMd5" name="hdnCaptchaMd5" class="infraText" value="<?=md5(InfraCaptcha::gerar($strCodigoParaGeracaoCaptcha));?>" />
  863 + <?} ?>
  864 +</form>
  865 +<?
  866 +PaginaSEIExterna::getInstance()->montarAreaDebug();
  867 +PaginaSEIExterna::getInstance()->fecharBody();
  868 +PaginaSEIExterna::getInstance()->fecharHtml();
  869 +?>
0 870 \ No newline at end of file
... ...
sei/institucional/pesquisa/processo_pesquisar.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/processo_pesquisar.php
... ... @@ -0,0 +1,861 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-09-29
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * processo_pesquisar
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Pagina de apresentação da página de pesquisa.
  18 + *
  19 + *
  20 + * @package Cade_pesquisa_processo_pesquisar
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +
  32 +try {
  33 + require_once dirname(__FILE__).'/../../SEI.php';
  34 + require_once ("ConverteURI.php");
  35 +
  36 + session_start();
  37 +
  38 + InfraDebug::getInstance()->setBolLigado(false);
  39 + InfraDebug::getInstance()->setBolDebugInfra(false);
  40 + InfraDebug::getInstance()->limpar();
  41 +
  42 + $bolBanco = false;
  43 + $bolFTS = false;
  44 + $bolSolr = false;
  45 + $bolLegado = false;
  46 + $bolCaptcha = false;
  47 + $bolAutocompletarInterressado = ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','AutoCompletarInteressado');
  48 +
  49 + if (ConfiguracaoSEI::getInstance()->getValor('Pesquisa','Banco')){
  50 + $bolBanco = true;
  51 + if (ConfiguracaoSEI::getInstance()->getValor('Pesquisa','SqlServerFullTextSearch')){
  52 + $bolFTS = true;
  53 + }
  54 + }else if (ConfiguracaoSEI::getInstance()->getValor('Pesquisa','Solr')){
  55 + $bolSolr = true;
  56 + require_once dirname(__FILE__).'/BuscaProtocoloExterno.php';
  57 + }
  58 +
  59 + if (ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','Legado')){
  60 + $bolLegado = true;
  61 + }
  62 +
  63 + if (ConfiguracaoPesquisa::getInstance()->getValor('Pesquisa','Captcha')){
  64 + $bolCaptcha = true;
  65 + }
  66 +
  67 + SessaoSEIExterna::getInstance()->validarLink();
  68 +
  69 + PaginaSEIExterna::getInstance()->setBolXHTML(false);
  70 +
  71 + if($bolCaptcha) {
  72 + $strCodigoParaGeracaoCaptcha = InfraCaptcha::obterCodigo();
  73 + $md5Captcha = md5(InfraCaptcha::gerar($strCodigoParaGeracaoCaptcha));
  74 + }else {
  75 + $md5Captcha = null;
  76 + }
  77 + if (isset($_POST['hdnFlagPesquisa']) || isset($_POST['sbmLimpar'])){
  78 +
  79 + if(isset($_POST['sbmLimpar'])){
  80 +
  81 + PaginaSEIExterna::getInstance()->limparCampos();
  82 + PaginaSEIExterna::getInstance()->salvarCampo('rdoData', '');
  83 + PaginaSEIExterna::getInstance()->salvarCampo('chkSinProcessos', 'P');
  84 +
  85 +
  86 + }else{
  87 +
  88 + PaginaSEIExterna::getInstance()->salvarCampo('chkSinProcessos', $_POST['chkSinProcessos']);
  89 + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosGerados', $_POST['chkSinDocumentosGerados']);
  90 + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosRecebidos', $_POST['chkSinDocumentosRecebidos']);
  91 +
  92 + PaginaSEIExterna::getInstance()->salvarCamposPost(array('q',
  93 + 'txtParticipante',
  94 + 'hdnIdParticipante',
  95 + 'txtAssinante',
  96 + 'hdnIdAssinante',
  97 + 'txtDescricaoPesquisa',
  98 + 'txtObservacaoPesquisa',
  99 + 'txtAssunto',
  100 + 'hdnIdAssunto',
  101 + 'txtUnidade',
  102 + 'hdnIdUnidade',
  103 + 'txtProtocoloPesquisa',
  104 + 'selTipoProcedimentoPesquisa',
  105 + 'selSeriePesquisa',
  106 + 'txtNumeroDocumentoPesquisa',
  107 + 'rdoData',
  108 + 'txtDataInicio',
  109 + 'txtDataFim',
  110 + 'hdnSiglasUsuarios',
  111 + 'txtSiglaUsuario1',
  112 + 'txtSiglaUsuario2',
  113 + 'txtSiglaUsuario3',
  114 + 'txtSiglaUsuario4'
  115 + ));
  116 +
  117 + }
  118 +
  119 +
  120 + }else{
  121 +
  122 + PaginaSEIExterna::getInstance()->salvarCampo('q', '');
  123 + PaginaSEIExterna::getInstance()->salvarCampo('txtProtocoloPesquisa', $strProtocoloFormatadoLimpo);
  124 + PaginaSEIExterna::getInstance()->salvarCampo('chkSinProcessos', 'P');
  125 + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosGerados', '');
  126 + PaginaSEIExterna::getInstance()->salvarCampo('chkSinDocumentosRecebidos', '');
  127 + PaginaSEIExterna::getInstance()->salvarCampo('txtParticipante', '');
  128 + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdParticipante', '');
  129 + PaginaSEIExterna::getInstance()->salvarCampo('txtAssinante', '');
  130 + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdAssinante', '');
  131 + PaginaSEIExterna::getInstance()->salvarCampo('txtDescricaoPesquisa', '');
  132 + PaginaSEIExterna::getInstance()->salvarCampo('txtObservacaoPesquisa', '');
  133 + PaginaSEIExterna::getInstance()->salvarCampo('txtAssunto', '');
  134 + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdAssunto', '');
  135 + PaginaSEIExterna::getInstance()->salvarCampo('txtUnidade', '');
  136 + PaginaSEIExterna::getInstance()->salvarCampo('hdnIdUnidade', '');
  137 + //PaginaSEIExterna::getInstance()->salvarCampo('txtProtocoloPesquisa', '');
  138 + PaginaSEIExterna::getInstance()->salvarCampo('selTipoProcedimentoPesquisa', '');
  139 + PaginaSEIExterna::getInstance()->salvarCampo('selSeriePesquisa', '');
  140 + PaginaSEIExterna::getInstance()->salvarCampo('txtNumeroDocumentoPesquisa', '');
  141 + PaginaSEIExterna::getInstance()->salvarCampo('rdoData', '');
  142 + PaginaSEIExterna::getInstance()->salvarCampo('txtDataInicio', '');
  143 + PaginaSEIExterna::getInstance()->salvarCampo('txtDataFim', '');
  144 + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario1', '');
  145 + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario2', '');
  146 + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario3', '');
  147 + PaginaSEIExterna::getInstance()->salvarCampo('txtSiglaUsuario4', '');
  148 + PaginaSEIExterna::getInstance()->salvarCampo('hdnSiglasUsuarios', '');
  149 + }
  150 +
  151 +
  152 + switch($_GET['acao_externa']){
  153 +
  154 + case 'protocolo_pesquisar':
  155 + case 'protocolo_pesquisa_rapida':
  156 +
  157 +
  158 + $strTitulo = 'Pesquisa Pública';
  159 +
  160 +
  161 + // Altero os caracteres 'Coringas' por aspas Duplas para não dar erro de Js no IE
  162 + $strPalavrasPesquisa = str_replace("$*",'\"',PaginaSEIExterna::getInstance()->recuperarCampo('q'));
  163 + $strSinProcessos = PaginaSEIExterna::getInstance()->recuperarCampo('chkSinProcessos');
  164 + $strSinDocumentosGerados = PaginaSEIExterna::getInstance()->recuperarCampo('chkSinDocumentosGerados');
  165 + $strSinDocumentosRecebidos = PaginaSEIExterna::getInstance()->recuperarCampo('chkSinDocumentosRecebidos');
  166 + $strIdParticipante = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdParticipante');
  167 + $strNomeParticipante = PaginaSEIExterna::getInstance()->recuperarCampo('txtParticipante');
  168 + $strIdAssinante = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdAssinante');
  169 + $strNomeAssinante = PaginaSEIExterna::getInstance()->recuperarCampo('txtAssinante');
  170 + $strDescricaoPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtDescricaoPesquisa');
  171 + $strObservacaoPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtObservacaoPesquisa');
  172 + $strIdAssunto = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdAssunto');
  173 + $strDescricaoAssunto = PaginaSEIExterna::getInstance()->recuperarCampo('txtAssunto');
  174 + $strIdUnidade = PaginaSEIExterna::getInstance()->recuperarCampo('hdnIdUnidade');
  175 + $strDescricaoUnidade = PaginaSEIExterna::getInstance()->recuperarCampo('txtUnidade');
  176 + $strProtocoloPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtProtocoloPesquisa');
  177 + $numIdTipoProcedimento = PaginaSEIExterna::getInstance()->recuperarCampo('selTipoProcedimentoPesquisa','null');
  178 + $numIdSerie = PaginaSEIExterna::getInstance()->recuperarCampo('selSeriePesquisa','null');
  179 + $strNumeroDocumentoPesquisa = PaginaSEIExterna::getInstance()->recuperarCampo('txtNumeroDocumentoPesquisa');
  180 + $strStaData = PaginaSEIExterna::getInstance()->recuperarCampo('rdoData','0');
  181 + $strDataInicio = PaginaSEIExterna::getInstance()->recuperarCampo('txtDataInicio');
  182 + $strDataFim = PaginaSEIExterna::getInstance()->recuperarCampo('txtDataFim');
  183 + $strSiglaUsuario1 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario1');
  184 + $strSiglaUsuario2 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario2');
  185 + $strSiglaUsuario3 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario3');
  186 + $strSiglaUsuario4 = PaginaSEIExterna::getInstance()->recuperarCampo('txtSiglaUsuario4');
  187 + $strUsuarios = PaginaSEIExterna::getInstance()->recuperarCampo('hdnSiglasUsuarios');
  188 + $strParticipanteSolr = '';
  189 +
  190 + //Opção de Auto Completar Interressado
  191 + if(!$bolAutocompletarInterressado){
  192 +
  193 + if(!InfraString::isBolVazia($strNomeParticipante)){
  194 + $strParticipanteSolr = PesquisaUtil::buscaParticipantes($strNomeParticipante);
  195 + }
  196 +
  197 + }
  198 +
  199 +
  200 +
  201 + $strDisplayAvancado = 'block';
  202 + $bolPreencheuAvancado = false;
  203 + if (($strSinProcessos=='P' || $strSinDocumentosGerados=='G' || $strSinDocumentosRecebidos=='R') &&
  204 + !InfraString::isBolVazia($strIdParticipante) ||
  205 + !InfraString::isBolVazia($strParticipanteSolr) ||
  206 + !InfraString::isBolVazia($strIdAssinante) ||
  207 + !InfraString::isBolVazia($strDescricaoPesquisa) ||
  208 + !InfraString::isBolVazia($strObservacaoPesquisa) ||
  209 + !InfraString::isBolVazia($strIdAssunto) ||
  210 + !InfraString::isBolVazia($strIdUnidade) ||
  211 + !InfraString::isBolVazia($strProtocoloPesquisa) ||
  212 + !InfraString::isBolVazia($numIdTipoProcedimento) ||
  213 + !InfraString::isBolVazia($numIdSerie) ||
  214 + !InfraString::isBolVazia($strNumeroDocumentoPesquisa) ||
  215 + !InfraString::isBolVazia($strDataInicio) ||
  216 + !InfraString::isBolVazia($strDataFim) ||
  217 + !InfraString::isBolVazia(str_replace(',','',$strUsuarios))){
  218 +
  219 + //$strDisplayAvancado = 'none';
  220 + $bolPreencheuAvancado = true;
  221 + }
  222 +
  223 + $q = PaginaSEIExterna::getInstance()->recuperarCampo('q');
  224 +
  225 + $inicio = intval($_REQUEST["inicio"]);
  226 +
  227 + $strResultado = '';
  228 +
  229 + if (isset($_POST['sbmPesquisar']) || ($_GET['acao_origem_externa'] == "protocolo_pesquisar_paginado")){
  230 +
  231 + if(md5($_POST['txtCaptcha']) != $_POST['hdnCaptchaMd5'] && $_GET['hash'] != $_POST['hdnCaptchaMd5'] && $bolCaptcha == true){
  232 + PaginaSEIExterna::getInstance()->setStrMensagem('Código de confirmação inválido.');
  233 + }else{
  234 + //preencheu palavra de busca ou alguma opção avançada
  235 + if (!InfraString::isBolVazia($q) || $bolPreencheuAvancado) {
  236 +
  237 + if ($bolSolr){
  238 + try{
  239 + $strResultado = BuscaProtocoloExterno::executar($q, $strDescricaoPesquisa, $strObservacaoPesquisa, $inicio, 100, $strParticipanteSolr,$md5Captcha);
  240 + }catch(Exception $e){
  241 + LogSEI::getInstance()->gravar(InfraException::inspecionar($e));
  242 + throw new InfraException('Erro realizando pesquisa.',$e);
  243 + }
  244 + }else if ($bolBanco){
  245 + $objIndexacaoProtocoloDTO = new IndexacaoProtocoloDTO();
  246 + $objIndexacaoProtocoloDTO->setStrIdxConteudo($strPalavrasPesquisa);
  247 + $objIndexacaoProtocoloDTO->setStrSinProcessos($strSinProcessos);
  248 + $objIndexacaoProtocoloDTO->setStrSinDocumentosGerados($strSinDocumentosGerados);
  249 + $objIndexacaoProtocoloDTO->setStrSinDocumentosRecebidos($strSinDocumentosRecebidos);
  250 + $objIndexacaoProtocoloDTO->setStrIdxParticipante($strIdParticipante);
  251 + $objIndexacaoProtocoloDTO->setStrIdxAssinante($strIdAssinante);
  252 + $objIndexacaoProtocoloDTO->setStrIdxDescricao($strDescricaoPesquisa);
  253 + $objIndexacaoProtocoloDTO->setStrIdxObservacao($strObservacaoPesquisa);
  254 + $objIndexacaoProtocoloDTO->setStrIdxAssunto($strIdAssunto);
  255 + $objIndexacaoProtocoloDTO->setNumIdUnidadeGeradora($strIdUnidade);
  256 + $objIndexacaoProtocoloDTO->setStrProtocoloFormatadoPesquisa(InfraUtil::retirarFormatacao($strProtocoloPesquisa));
  257 + $objIndexacaoProtocoloDTO->setNumIdTipoProcedimento($numIdTipoProcedimento);
  258 + $objIndexacaoProtocoloDTO->setNumIdSerie($numIdSerie);
  259 + $objIndexacaoProtocoloDTO->setStrNumero($strNumeroDocumentoPesquisa);
  260 + $objIndexacaoProtocoloDTO->setStrStaTipoData($strStaData);
  261 + $objIndexacaoProtocoloDTO->setDtaInicio($strDataInicio);
  262 + $objIndexacaoProtocoloDTO->setDtaFim($strDataFim);
  263 + $objIndexacaoProtocoloDTO->setStrSiglaUsuarioGerador($strUsuarios);
  264 +
  265 + PaginaSEIExterna::getInstance()->prepararPaginacao($objIndexacaoProtocoloDTO);
  266 +
  267 + $objIndexacaoProtocoloRN = new IndexacaoProtocoloRN();
  268 + $arrObjIndexacaoProtocoloDTO = $objIndexacaoProtocoloRN->pesquisar($objIndexacaoProtocoloDTO);
  269 +
  270 + PaginaSEIExterna::getInstance()->processarPaginacao($objIndexacaoProtocoloDTO);
  271 +
  272 + ////////////////////////////////////////
  273 + $numRegistros = count($arrObjIndexacaoProtocoloDTO);
  274 +
  275 + if ($numRegistros){
  276 +
  277 + $bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEIExterna','https');
  278 +
  279 + $strSumarioTabela = 'Tabela de Resultados.';
  280 + $strCaptionTabela = 'Resultados';
  281 +
  282 + $strResultado = '';
  283 + $strResultado .= '<table id="tblResultado" width="99%" class="infraTable">'."\n";
  284 + $strResultado .= '<caption class="infraCaption">'.PaginaSEIExterna::getInstance()->gerarCaptionTabela($strCaptionTabela,$numRegistros).'</caption>';
  285 + $strResultado .= '<th>Resultado de pesquisa sistema SEI CADE</th>';
  286 + for($i = 0;$i < $numRegistros; $i++){
  287 + $strResultado .= '<tr class="infraTrEscura">';
  288 + $strResultado .= '<td colspan="2">'."\n";
  289 +
  290 + $strLinkArvore = $arrObjIndexacaoProtocoloDTO[$i]->getStrLinkArvore();
  291 +
  292 + if ($bolHttps){
  293 + $strLinkArvore = str_replace('http://','https://',$strLinkArvore);
  294 + }
  295 +
  296 + $strResultado .= '<a href="'.PaginaSEIExterna::getInstance()->formatarXHTML(SessaoSEIExterna::getInstance()->assinarLink($strLinkArvore)).'" target="_blank" class="arvore"><img border="0" src="'.PaginaSEIExterna::getInstance()->getDiretorioImagensLocal().'/icone-arvore.png" alt="" title="Visualizar árvore" width="14" height="16" class="arvore" /></a> ';
  297 + $strResultado .= $arrObjIndexacaoProtocoloDTO[$i]->getStrNomeTipoProcedimento().' Nº '.$arrObjIndexacaoProtocoloDTO[$i]->getStrProtocoloProcessoFormatado();
  298 +
  299 + if ($arrObjIndexacaoProtocoloDTO[$i]->getStrStaProtocolo()!=ProtocoloRN::$TP_PROCEDIMENTO){
  300 +
  301 + $strLinkDocumento = $arrObjIndexacaoProtocoloDTO[$i]->getStrUrl();
  302 +
  303 + if ($bolHttps){
  304 + $strLinkDocumento = str_replace('http://','https://',$strLinkDocumento);
  305 + }
  306 +
  307 + $strResultado .= ' (<a target="_blank" href="'.PaginaSEIExterna::getInstance()->formatarXHTML(SessaoSEIExterna::getInstance()->assinarLink($strLinkDocumento)).'" ';
  308 +
  309 + if (strpos($arrObjIndexacaoProtocoloDTO[$i]->getStrIdxUnidadeAberto(),';'.SessaoSEIExterna::getInstance()->getNumIdUnidadeAtual().';')!==false) {
  310 + $strResultado .= " title=\"Aberto nesta unidade\" class=\"protocoloAberto\"";
  311 + } else {
  312 + $strResultado .= " title=\"Fechado nesta unidade\" class=\"protocoloNormal\"";
  313 + }
  314 +
  315 + $strResultado .= ' style="font-size:1em !important;">'.$arrObjIndexacaoProtocoloDTO[$i]->getStrIdentificacaoProtocolo().'</a>)';
  316 + }
  317 + $strResultado .= '</td>';
  318 + $strResultado .= '<td align="right">'.$arrObjIndexacaoProtocoloDTO[$i]->getStrProtocoloDocumentoFormatado().'</td>';
  319 + $strResultado .= '</tr>'."\n";
  320 +
  321 + $strResultado .= '<tr class="infraTrClara">';
  322 + $strResultado .= '<td align="center" width="33%">Unidade Geradora: <a alt="'.$arrObjIndexacaoProtocoloDTO[$i]->getStrDescricaoUnidadeGeradora().'" title="'.$arrObjIndexacaoProtocoloDTO[$i]->getStrDescricaoUnidadeGeradora().'" class="ancoraSigla">'.$arrObjIndexacaoProtocoloDTO[$i]->getStrSiglaUnidadeGeradora().'</a></td>';
  323 + $strResultado .= '<td align="center" width="33%">Data: '.$arrObjIndexacaoProtocoloDTO[$i]->getDtaGeracao().'</td>';
  324 + $strResultado .= '<td align="center" width="33%"></td>';
  325 + $strResultado .= "</tr>";
  326 +
  327 + }
  328 +
  329 + $strResultado .= '</table>';
  330 + }
  331 +
  332 + }
  333 +
  334 + }
  335 +
  336 + // Verifica se a opção de pesquisa em sistemas (ConfiguracaoPesquisa.php) está habilitada.
  337 + if($bolLegado){
  338 +
  339 + //PESQUISA PROCESSUAL SISCADE E INTRANET
  340 + if (!InfraString::isBolVazia($strProtocoloPesquisa) || !InfraString::isBolVazia($strNomeParticipante)){
  341 +
  342 + if(!isset($_GET['local_pesquisa']) || !isset($_GET['num_pagina']) || !isset($_GET['inicio_cade'])){
  343 +
  344 +
  345 + $strResultadoSISCADE = PesquisaSISCADE::executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha);
  346 + $strResultadoIntranet = PesquisaCADE::executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha);
  347 +
  348 +
  349 + }else{
  350 + $numPagina = $_GET['num_pagina'];
  351 + $inicio = $_GET['inicio_cade'];
  352 + $localPesquisa = $_GET['local_pesquisa'];
  353 +
  354 + switch ($localPesquisa) {
  355 + case 'siscade':
  356 + $strResultadoIntranet = PesquisaCADE::executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha);
  357 + $strResultadoSISCADE = PesquisaSISCADE::executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha,$inicio,$numPagina);
  358 + break;
  359 + case 'intranet':
  360 + $strResultadoIntranet = PesquisaCADE::executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha,$inicio,$numPagina);
  361 + $strResultadoSISCADE = PesquisaSISCADE::executar($strProtocoloPesquisa,$strNomeParticipante,$md5Captcha);
  362 + }
  363 +
  364 + }
  365 +
  366 +
  367 +
  368 +
  369 + }
  370 + }
  371 + //Exibe resultado de não encontrado apenas se em nenhuma pesquisa houve resultado
  372 +
  373 + if(strpos($strResultado, 'sem-resultado')){
  374 +
  375 + if(!empty($strResultadoSISCADE) || !empty($strResultadoIntranet) ){
  376 + $strResultado = '';
  377 + }
  378 + }
  379 +
  380 +
  381 + }
  382 +
  383 +
  384 + }
  385 +
  386 +
  387 +
  388 + break;
  389 +
  390 + default:
  391 + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida.");
  392 + }
  393 +
  394 + $strItensSelTipoProcedimento = TipoProcedimentoINT::montarSelectNome('null','&nbsp;',$numIdTipoProcedimento);
  395 + $strItensSelSerie = SerieINT::montarSelectNomeRI0802('null','&nbsp;',$numIdSerie);
  396 +
  397 + $strLinkAjaxContatos = SessaoSEIExterna::getInstance()->assinarLink('controlador_ajax_externo.php?acao_ajax_externo=contato_auto_completar_contexto_pesquisa&id_orgao_acesso_externo=0');
  398 + $strLinkAjaxUsuarios = SessaoSEIExterna::getInstance()->assinarLink('controlador_ajax.php?acao_ajax=usuario_auto_completar');
  399 + $strLinkAjaxAssuntoRI1223 = SessaoSEIExterna::getInstance()->assinarLink('controlador_ajax.php?acao_ajax=assunto_auto_completar_RI1223');
  400 + $strLinkAjaxUnidade = SessaoSEIExterna::getInstance()->assinarLink('controlador_ajax_externo.php?acao_ajax_externo=unidade_auto_completar_todas&id_orgao_acesso_externo=0');
  401 +
  402 +
  403 + if ($strStaData=='0'){
  404 + $strDisplayPeriodoExplicito = $strDisplayAvancado;
  405 + }else{
  406 + $strDisplayPeriodoExplicito = 'none';
  407 + }
  408 +
  409 + $strLinkAjuda = '';
  410 + if ($bolFTS){
  411 + $strLinkAjuda = PaginaSEIExterna::getInstance()->formatarXHTML(SessaoSEIExterna::getInstance()->assinarLink('ajuda_exibir_externo.php?acao_externa=pesquisa_fts_ajuda_externa&id_orgao_acesso_externo=0'));
  412 + }else if ($bolSolr){
  413 + $strLinkAjuda = PaginaSEIExterna::getInstance()->formatarXHTML(SessaoSEIExterna::getInstance()->assinarLink('ajuda_exibir_externo.php?acao_externa=pesquisa_solr_ajuda_externa&id_orgao_acesso_externo=0'));
  414 + }
  415 +
  416 +}catch(Exception $e){
  417 + PaginaSEIExterna::getInstance()->processarExcecao($e);
  418 +}
  419 +PaginaSEIExterna::getInstance()->montarDocType();
  420 +PaginaSEIExterna::getInstance()->abrirHtml();
  421 +PaginaSEIExterna::getInstance()->abrirHead();
  422 +PaginaSEIExterna::getInstance()->montarMeta();
  423 +PaginaSEIExterna::getInstance()->montarTitle(':: '.PaginaSEIExterna::getInstance()->getStrNomeSistema().' - '.$strTitulo.' ::');
  424 +PaginaSEIExterna::getInstance()->montarStyle();
  425 +PaginaSEIExterna::getInstance()->abrirStyle();
  426 +?>
  427 +
  428 +#lblPalavrasPesquisa{position:absolute;left:0%;top:4%;width:20%;}
  429 +#q{position:absolute;left:21%;top:1%;width:60%;}
  430 +#ancAjuda{position:absolute;left:82%;top:%;visibility:<?= ($bolFTS || $bolSolr) ? 'visible' : 'hidden'?>}
  431 +#sbmPesquisar {position:absolute;left:86%;top:5%; width:10%;}
  432 +#lnkAvancado {position:absolute;left:96%;top:5%;display:none;}
  433 +
  434 +#lblPesquisarEm {position:absolute;left:0%;top:17%;width:20%;}
  435 +#divSinProcessos {position:absolute;left:21%;top:15%;}
  436 +#divSinDocumentosGerados {position:absolute;left:38%;top:15%;}
  437 +#divSinDocumentosRecebidos {position:absolute;left:61%;top:15%;}
  438 +
  439 +#lblParticipante {position:absolute;left:0%;top:28%;width:20%;}
  440 +#txtParticipante {position:absolute;left:21%;top:27%;width:60%;}
  441 +
  442 +
  443 +
  444 +#lblUnidade {position:absolute;left:0%;top:40%;width:20%;}
  445 +#txtUnidade{position:absolute;left:21%;top:39%;width:60%;}
  446 +#lblProtocoloPesquisa{position:absolute;left:0%;top:50%;width:20%;}
  447 +#txtProtocoloPesquisa{position:absolute;left:21%;top:35%;width:20%;}
  448 +#lblProtocoloPesquisaComplemento {position:absolute;left:42%;top:14%;width:25%;}
  449 +#lblAssinante {position:absolute;left:0%;top:18%;width:20%;}
  450 +#txtAssinante {position:absolute;left:21%;top:17%;width:60%;}
  451 +#lblDescricaoPesquisa {position:absolute;left:0%;top:26%;width:20%;}
  452 +#txtDescricaoPesquisa {position:absolute;left:21%;top:25%;width:60%;}
  453 +#ancAjudaDescricao{position:absolute;left:82%;top:25%;visibility:<?= ($bolFTS || $bolSolr) ? 'visible' : 'hidden'?>}
  454 +#lblObservacaoPesquisa {position:absolute;left:0%;top:34%;width:20%;}
  455 +#txtObservacaoPesquisa {position:absolute;left:21%;top:33%;width:60%;}
  456 +#ancAjudaObservacao {position:absolute;left:82%;top:33%;visibility:<?= ($bolFTS || $bolSolr) ? 'visible' : 'hidden'?>}
  457 +#lblAssunto {position:absolute;left:0%;top:42%;width:20%;}
  458 +#txtAssunto {position:absolute;left:21%;top:41%;width:60%;}
  459 +#imgPesquisarAssuntos {position:absolute;top:41%;left:82%;}
  460 +#lblTipoProcedimentoPesquisa {position:absolute;left:0%;top:52%;width:20%;}
  461 +#selTipoProcedimentoPesquisa {position:absolute;left:21%;top:51%;width:60.5%;}
  462 +#lblSeriePesquisa {position:absolute;left:0%;top:64%;width:20%;}
  463 +#selSeriePesquisa {position:absolute;left:21%;top:63%;width:60.5%;}
  464 +
  465 +#lblNumeroDocumentoPesquisa
  466 +{position:absolute;left:0%;top:76%;width:20%;}
  467 +#txtNumeroDocumentoPesquisa
  468 +{position:absolute;left:21%;top:75%;width:20%;} #lblData
  469 +{position:absolute;left:0%;top:76%;width:20%;} #divOptPeriodoExplicito
  470 +{position:absolute;left:21%;top:75%;} #divOptPeriodo30
  471 +{position:absolute;left:40%;top:75%;} #divOptPeriodo60
  472 +{position:absolute;left:55%;top:75%;} #txtDataInicio
  473 +{position:absolute;left:21%;top:0%;width:9%;} #imgDataInicio
  474 +{position:absolute;left:31%;top:10%;} #lblDataE
  475 +{position:absolute;left:33%;top:10%;width:1%;} #txtDataFim
  476 +{position:absolute;left:35%;top:0%;width:9%;} #imgDataFim
  477 +{position:absolute;left:45%;top:10%;} #lblSiglaUsuario
  478 +{position:absolute;left:0%;top:0%;width:20%;} #txtSiglaUsuario1
  479 +{position:absolute;left:21%;top:0%;width:9%;} #txtSiglaUsuario2
  480 +{position:absolute;left:31%;top:0%;width:9%;} #txtSiglaUsuario3
  481 +{position:absolute;left:41%;top:0%;width:9%;} #txtSiglaUsuario4
  482 +{position:absolute;left:51%;top:0%;width:9%;}
  483 +
  484 +#divAvancado {display: <?=$strDisplayAvancado?>;}
  485 +#divPeriodoExplicito {display:<?=$strDisplayPeriodoExplicito?>;}
  486 +#divUsuario {display:<?=$strDisplayAvancado?>;}
  487 +#lnkAvancado{ border-bottom: 1px solid transparent; color: #0000b0;text-decoration: none; }
  488 +.sugestao{ font-size: 1.2em; }
  489 +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; }
  490 +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; }
  491 +div#conteudo > div.sem-resultado { font-size:1.2em; margin: .5em 0 0 0; }
  492 +div#conteudo table { border-collapse: collapse; border-spacing: 0px; }
  493 +div#conteudo > table { margin: 0 0 .5em; width: 100%; }
  494 +table.resultado td {background: #f0f0f0; padding: .3em .5em; }
  495 +div#conteudo > table > tbody > tr:first-child > td { background: #e0e0e0; }
  496 +tr.resTituloRegistro td {background: #e0e0e0; }
  497 +div#conteudo a.protocoloAberto, div#conteudo a.protocoloNormal{ font-size:1.1em !important; }
  498 +div#conteudo a.protocoloAberto:hover, div#conteudo a.protocoloNormal:hover{text-decoration:underline !important; }
  499 +div#conteudo td.metatag > table{ border-collapse: collapse; margin: 0px auto; white-space: nowrap; }
  500 +
  501 +div#conteudo td.metatag > table { text-align: left; width:75%; }
  502 +
  503 +div#conteudo td.metatag > table > tbody > tr > td { color: #333333; font-size: .9em; padding: 0 2em; width:30%; }
  504 +div#conteudo td.metatag > table > tbody > tr > td:first-child { width:45%; }
  505 +div#conteudo td.metatag > table > tbody > tr > td > b { color: #006600; font-weight:normal; }
  506 +span.pequeno { font-size: .9em; }
  507 +div#mensagem { background:#e0e0e0; border-color: #c0c0c0; border-style: solid; border-width: .1em; margin: 4em auto 0; padding: 2em; }
  508 +div#mensagem > span.pequeno { color:#909090; font-size: .9em; }
  509 +td.resTituloEsquerda img.arvore { margin:0px 5px -3px 0px; }
  510 +td.resTituloDireita { text-align:right; width:20%; }
  511 +
  512 +div.paginas, div.paginas * { font-size: 12px; } div.paginas b {font-weight: bold; }
  513 +div.paginas a { border-bottom: 1px solid transparent; color: #000080; text-decoration: none; }
  514 +div.paginas a:hover { border-bottom: 1px solid #000000; color: #800000; }
  515 +td.resSnippet b { font-weight:bold; }
  516 +#divInfraAreaTabela tr.infraTrClara td {padding:.3em;}
  517 +#divInfraAreaTabela table.infraTable {border-spacing:0;}
  518 +
  519 +<? if($bolCaptcha) { ?>
  520 +#sbmPesquisar {position:absolute;left:86%;top:42%;width:10%;font-size: 1.2em}
  521 +#sbmLimpar {position:absolute;left:86%;top:52%; width:10%;font-size: 1.2em}
  522 +#lblCodigo {position:absolute;left:86%;top:8%;width:10%;}
  523 +#lblCaptcha {position:absolute;left:86%;top:0%;}
  524 +#txtCaptcha{position:absolute;left:86%;top:18%;width:10%;height:18%;font-size:3em;}
  525 +<?}else { ?>
  526 +#sbmPesquisar {position:absolute;left:86%;top:10%;width:10%;font-size: 1.2em}
  527 +#sbmLimpar {position:absolute;left:86%;top:70%; width:10%;font-size: 1.2em}
  528 +<?} ?>
  529 +
  530 +<?
  531 +PaginaSEIExterna::getInstance()->fecharStyle();
  532 +
  533 +PaginaSEIExterna::getInstance()->montarJavaScript();
  534 +if ($bolSolr){
  535 + PaginaSEIExterna::getInstance()->adicionarJavaScript('../../solr/js/sistema.js');
  536 +}
  537 +PaginaSEIExterna::getInstance()->abrirJavaScript();
  538 +?>
  539 +
  540 +
  541 +var objAutoCompletarInteressadoRI1225 = null;
  542 +var objAutoCompletarUsuario = null;
  543 +var objAutoCompletarAssuntoRI1223 = null;
  544 +var objAutoCompletarUnidade = null;
  545 +
  546 +
  547 +
  548 +function inicializar(){
  549 +
  550 +
  551 + infraOcultarMenuSistemaEsquema();
  552 +
  553 + <?if($bolAutocompletarInterressado) {?>
  554 +
  555 + //Interessado/Remetente
  556 + objAutoCompletarInteressadoRI1225 = new infraAjaxAutoCompletar('hdnIdParticipante','txtParticipante','<?=$strLinkAjaxContatos?>');
  557 + //objAutoCompletarInteressadoRI1225.maiusculas = true;
  558 + //objAutoCompletarInteressadoRI1225.mostrarAviso = true;
  559 + //objAutoCompletarInteressadoRI1225.tempoAviso = 1000;
  560 + //objAutoCompletarInteressadoRI1225.tamanhoMinimo = 3;
  561 + objAutoCompletarInteressadoRI1225.limparCampo = true;
  562 + //objAutoCompletarInteressadoRI1225.bolExecucaoAutomatica = false;
  563 +
  564 +
  565 +
  566 + objAutoCompletarInteressadoRI1225.prepararExecucao = function(){
  567 + return 'palavras_pesquisa='+document.getElementById('txtParticipante').value;
  568 + };
  569 + objAutoCompletarInteressadoRI1225.selecionar('<?=$strIdParticipante;?>','<?=PaginaSEI::getInstance()->formatarParametrosJavascript($strNomeParticipante)?>');
  570 +
  571 + <?}?>
  572 +
  573 + //Unidades
  574 + objAutoCompletarUnidade = new infraAjaxAutoCompletar('hdnIdUnidade','txtUnidade','<?=$strLinkAjaxUnidade?>');
  575 +
  576 +
  577 + objAutoCompletarUnidade.limparCampo = true;
  578 + objAutoCompletarUnidade.prepararExecucao = function(){
  579 + return 'palavras_pesquisa='+document.getElementById('txtUnidade').value;
  580 + };
  581 + objAutoCompletarUnidade.selecionar('<?=$strIdUnidade;?>','<?=PaginaSEIExterna::getInstance()->formatarParametrosJavascript($strDescricaoUnidade)?>');
  582 +
  583 + document.getElementById('txtProtocoloPesquisa').focus();
  584 +
  585 +
  586 + //remover a string null dos combos
  587 + document.getElementById('selTipoProcedimentoPesquisa').options[0].value='';
  588 + document.getElementById('selSeriePesquisa').options[0].value='';
  589 +
  590 + infraProcessarResize();
  591 +
  592 +
  593 + <? if ($strLinkVisualizarSigilosoPublicado != ''){ ?>
  594 + infraAbrirJanela('<?=$strLinkVisualizarSigilosoPublicado?>','janelaSigilosoPublicado',750,550,'location=0,status=1,resizable=1,scrollbars=1',false);
  595 + <? } ?>
  596 +
  597 + <? if ($bolSolr){?>
  598 + sistemaInicializar();
  599 + <? } ?>
  600 +
  601 + <?$localPesquisa = $_GET['local_pesquisa']; ?>
  602 + <?if($localPesquisa == 'siscade' ) {?>
  603 + location.hash="#Pesquisa_Siscade";
  604 + <? } ?>
  605 + <?if($localPesquisa == 'intranet' ) {?>
  606 + location.hash="#Pesquisa_Intranet";
  607 + <? } ?>
  608 +}
  609 +
  610 +
  611 +function tratarPeriodo(valor){
  612 + if (valor=='0'){
  613 + document.getElementById('divPeriodoExplicito').style.display='block';
  614 + document.getElementById('txtDataInicio').value='';
  615 + document.getElementById('txtDataFim').value='';
  616 + }else if (valor =='30'){
  617 + document.getElementById('divPeriodoExplicito').style.display='none';
  618 + document.getElementById('txtDataInicio').value='<?php echo ProtocoloINT::calcularDataInicial(30); ?>';
  619 + document.getElementById('txtDataFim').value='<?php echo date('d/m/Y'); ?>';
  620 + }else if (valor =='60'){
  621 + document.getElementById('divPeriodoExplicito').style.display='none';
  622 + document.getElementById('txtDataInicio').value='<?php echo ProtocoloINT::calcularDataInicial(60); ?>';
  623 + document.getElementById('txtDataFim').value='<?php echo date('d/m/Y'); ?>';
  624 + }
  625 +}
  626 +
  627 +function sugerirUsuario(obj){
  628 + if (infraTrim(obj.value)==''){
  629 + obj.value = '<?=SessaoSEIExterna::getInstance()->getStrSiglaUsuario()?>';
  630 + }
  631 +}
  632 +
  633 +
  634 +
  635 +function obterUsuarios(){
  636 + var objHdnUsuarios = document.getElementById('hdnSiglasUsuarios');
  637 + objHdnUsuarios.value = '';
  638 +
  639 + if (document.getElementById('txtSiglaUsuario1').value != ''){
  640 + if (objHdnUsuarios.value == ''){
  641 + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario1').value);
  642 + }else {
  643 + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario1').value);
  644 + }
  645 + }
  646 + if (document.getElementById('txtSiglaUsuario2').value != ''){
  647 + if (objHdnUsuarios.value == ''){
  648 + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario2').value);
  649 + }else {
  650 + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario2').value);
  651 + }
  652 + }
  653 + if (document.getElementById('txtSiglaUsuario3').value != ''){
  654 + if (objHdnUsuarios.value == ''){
  655 + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario3').value);
  656 + }else {
  657 + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario3').value);
  658 + }
  659 + }
  660 + if (document.getElementById('txtSiglaUsuario4').value != ''){
  661 + if (objHdnUsuarios.value == ''){
  662 + objHdnUsuarios.value += infraTrim(document.getElementById('txtSiglaUsuario4').value);
  663 + }else {
  664 + objHdnUsuarios.value += ',' + infraTrim(document.getElementById('txtSiglaUsuario4').value);
  665 + }
  666 + }
  667 +}
  668 +
  669 +
  670 +
  671 +
  672 +
  673 +
  674 +
  675 +
  676 +function onSubmitForm(){
  677 +
  678 + if (!document.getElementById('chkSinProcessos').checked && !document.getElementById('chkSinDocumentosGerados').checked && !document.getElementById('chkSinDocumentosRecebidos').checked){
  679 + alert('Selecione pelo menos uma das opções de pesquisa avançada: Processos, Documentos Gerados ou Documento Recebidos');
  680 + return false;
  681 + }
  682 +
  683 + obterUsuarios();
  684 +
  685 +
  686 +
  687 +
  688 + <?if ($bolSolr){?>
  689 + limpaFields();
  690 + return partialFields();
  691 +
  692 + <?}else{?>
  693 + return true;
  694 + <?}?>
  695 +}
  696 +
  697 +function exibirAvancado(){
  698 +
  699 + if (document.getElementById('divAvancado').style.display=='none'){
  700 + document.getElementById('divAvancado').style.display = 'block';
  701 +
  702 + if (document.getElementById('optPeriodoExplicito').checked){
  703 + document.getElementById('divPeriodoExplicito').style.display='block';
  704 + }else{
  705 + document.getElementById('divPeriodoExplicito').style.display='none';
  706 + }
  707 + document.getElementById('divUsuario').style.display = 'block';
  708 +
  709 + }else{
  710 + document.getElementById('divAvancado').style.display = 'none';
  711 + document.getElementById('divPeriodoExplicito').style.display='none';
  712 + document.getElementById('divUsuario').style.display='none';
  713 + document.getElementById('txtProtocoloPesquisa').focus();
  714 + }
  715 +
  716 + infraProcessarResize();
  717 +}
  718 +
  719 +<?
  720 +PaginaSEIExterna::getInstance()->fecharJavaScript();
  721 +PaginaSEIExterna::getInstance()->fecharHead();
  722 +PaginaSEIExterna::getInstance()->abrirBody($strTitulo,'onload="inicializar();"');
  723 +?>
  724 + <form id="seiSearch" name="seiSearch" method="post" onsubmit="return onSubmitForm();" action="<?=PaginaSEIExterna::getInstance()->formatarXHTML(SessaoSEIExterna::getInstance()->assinarLink('processo_pesquisar.php?acao_externa='.$_GET['acao_externa'].'&acao_origem_externa='.$_GET['acao_externa'].$strParametros))?>">
  725 + <br />
  726 + <br />
  727 +
  728 + <div id="divGeral" class="infraAreaDados" style="height: 3.2em; width: 99%; overflow: visible;">
  729 + <label id="lblProtocoloPesquisa" for="txtProtocoloPesquisa" accesskey="" class="infraLabelOpcional">Nº do Processo ou Documento:</label>
  730 + <input type="text" id="txtProtocoloPesquisa" name="txtProtocoloPesquisa" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strProtocoloPesquisa);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  731 +
  732 + <?if($bolCaptcha) { ?>
  733 + <label id="lblCaptcha" accesskey="" class="infraLabelObrigatorio">
  734 + <img src="/infra_js/infra_gerar_captcha.php?codetorandom=<?=$strCodigoParaGeracaoCaptcha;?>" alt="Não foi possível carregar imagem de confirmação" /> </label>
  735 + <?} else {?>
  736 + <input type="submit" id="sbmPesquisar"name="sbmPesquisar" value="Pesquisar" class="infraButton" />
  737 + <input type="submit" id="sbmLimpar"name="sbmLimpar" value="Limpar Campos" class="infraButton" />
  738 + <?}?>
  739 +
  740 +
  741 + </div>
  742 + <div id="divAvancado" class="infraAreaDados" style="height: 20em; width: 99%;">
  743 + <?if($bolCaptcha) { ?>
  744 + <label id="lblCodigo" for="txtCaptcha" accesskey="" class="infraLabelOpcional">Digite o código da imagem</label>
  745 + <input type="text" id="txtCaptcha" name="txtCaptcha" class="infraText" maxlength="4" value="" />
  746 + <input type="submit" id="sbmPesquisar"name="sbmPesquisar" value="Pesquisar" class="infraButton" />
  747 + <input type="submit" id="sbmLimpar"name="sbmLimpar" value="Limpar Campos" class="infraButton" />
  748 + <?}?>
  749 +
  750 +
  751 + <label id="lblPalavrasPesquisa" for="q" accesskey="" class="infraLabelOpcional">Pesquisa Livre:</label>
  752 + <input type="text" id="q" name="q" class="infraText" value="<?=str_replace('\\','',str_replace('"','&quot;',PaginaSEIExterna::tratarHTML($strPalavrasPesquisa)))?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  753 + <a id="ancAjuda" href="<?=$strLinkAjuda?>" target="janAjuda" title="Ajuda para Pesquisa" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>"><img src="<?=PaginaSEIExterna::getInstance()->getDiretorioImagensGlobal()?>/ajuda.gif" class="infraImg" /> </a>
  754 +
  755 + <label id="lblPesquisarEm" accesskey="" class="infraLabelObrigatorio">Pesquisar em:</label>
  756 +
  757 + <div id="divSinProcessos" class="infraDivCheckbox">
  758 + <input type="checkbox" id="chkSinProcessos" name="chkSinProcessos" value="P" class="infraCheckbox" <?=($strSinProcessos=='P'?'checked="checked"':'')?> tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  759 + <label id="lblSinProcessos" for="chkSinProcessos" accesskey="" class="infraLabelCheckbox">Processos</label>
  760 + </div>
  761 + <div id="divSinDocumentosGerados" class="infraDivCheckbox" title="Documento nato do Sei">
  762 + <input type="checkbox" id="chkSinDocumentosGerados" name="chkSinDocumentosGerados" value="G" class="infraCheckbox" <?=($strSinDocumentosGerados=='G'?'checked="checked"':'')?> tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  763 + <label id="lblSinDocumentosGerados" for="chkSinDocumentosGerados" accesskey="" class="infraLabelCheckbox">Documentos Gerados</label>
  764 + </div>
  765 +
  766 + <div id="divSinDocumentosRecebidos" class="infraDivCheckbox" title="Arquivo anexo">
  767 + <input type="checkbox" id="chkSinDocumentosRecebidos" name="chkSinDocumentosRecebidos" value="R" class="infraCheckbox" <?=($strSinDocumentosRecebidos=='R'?'checked="checked"':'')?> tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  768 + <label id="lblSinDocumentosRecebidos" for="chkSinDocumentosRecebidos" accesskey="" class="infraLabelCheckbox">Documentos Externos</label>
  769 + </div>
  770 +
  771 +
  772 +
  773 + <label id="lblParticipante" for="txtParticipante" accesskey="" class="infraLabelOpcional">Interessado / Remetente:</label>
  774 + <input type="text" id="txtParticipante" name="txtParticipante" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strNomeParticipante);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  775 + <input type="hidden" id="hdnIdParticipante" name="hdnIdParticipante" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strIdParticipante)?>" />
  776 +
  777 +
  778 + <label id="lblUnidade" for="txtUnidade" class="infraLabelOpcional">Unidade:</label>
  779 + <input type="text" id="txtUnidade" name="txtUnidade" class="infraText" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" value="<?=PaginaSEIExterna::tratarHTML($strDescricaoUnidade)?>" />
  780 + <input type="hidden" id="hdnIdUnidade" name="hdnIdUnidade" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strIdUnidade)?>" />
  781 +
  782 + <label id="lblTipoProcedimentoPesquisa" for="selTipoProcedimentoPesquisa" accesskey="" class="infraLabelOpcional">Tipo do Processo:</label>
  783 + <select id="selTipoProcedimentoPesquisa" name="selTipoProcedimentoPesquisa" class="infraSelect" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" >
  784 + <?=$strItensSelTipoProcedimento?>
  785 + </select>
  786 +
  787 + <label id="lblSeriePesquisa" for="selSeriePesquisa" accesskey="" class="infraLabelOpcional">Tipo do Documento:</label>
  788 + <select id="selSeriePesquisa" name="selSeriePesquisa" class="infraSelect" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" >
  789 + <?=$strItensSelSerie?>
  790 + </select>
  791 +
  792 + <label id="lblData" class="infraLabelOpcional">Data:</label>
  793 +
  794 + <div id="divOptPeriodoExplicito" class="infraDivRadio">
  795 + <input type="radio" name="rdoData" id="optPeriodoExplicito" value="0" onclick="tratarPeriodo(this.value);" <?=($strStaData=='0'?'checked="checked"':'')?> class="infraRadio"/>
  796 + <label id="lblPeriodoExplicito" accesskey="" for="optPeriodoExplicito" class="infraLabelRadio" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>">Período explícito</label>
  797 + </div>
  798 +
  799 + <div id="divOptPeriodo30" class="infraDivRadio">
  800 + <input type="radio" name="rdoData" id="optPeriodo30" value="30" onclick="tratarPeriodo(this.value);" <?=($strStaData=='30'?'checked="checked"':'')?> class="infraRadio"/>
  801 + <label id="lblPeriodo30" accesskey="" for="optPeriodo30" class="infraLabelRadio" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>">30 dias</label>
  802 + </div>
  803 +
  804 + <div id="divOptPeriodo60" class="infraDivRadio">
  805 + <input type="radio" name="rdoData" id="optPeriodo60" value="60" onclick="tratarPeriodo(this.value);" <?=($strStaData=='60'?'checked="checked"':'')?> class="infraRadio"/>
  806 + <label id="lblPeriodo60" accesskey="" for="optPeriodo60" class="infraLabelRadio" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>">60 dias</label>
  807 + </div>
  808 + </div>
  809 +
  810 + <div id="divPeriodoExplicito" class="infraAreaDados" style="height:2.5em;width:99%;top:50%;margin-top:-20px">
  811 + <input type="text" id="txtDataInicio" name="txtDataInicio" onkeypress="return infraMascaraData(this, event)" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strDataInicio);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  812 + <img id="imgDataInicio" src="/infra_css/imagens/calendario.gif" onclick="infraCalendario('txtDataInicio',this);" alt="Selecionar Data Inicial" title="Selecionar Data Inicial" class="infraImg" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  813 + <label id="lblDataE" for="txtDataE" accesskey="" class="infraLabelOpcional">&nbsp;e&nbsp;</label>
  814 + <input type="text" id="txtDataFim" name="txtDataFim" onkeypress="return infraMascaraData(this, event)" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strDataFim);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  815 + <img id="imgDataFim" src="/infra_css/imagens/calendario.gif" onclick="infraCalendario('txtDataFim',this);" alt="Selecionar Data Final" title="Selecionar Data Final" class="infraImg" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  816 + </div>
  817 +
  818 +
  819 + <input type="hidden" id="txtNumeroDocumentoPesquisa" name="txtNumeroDocumentoPesquisa" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strNumeroDocumentoPesquisa);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  820 + <input type="hidden" id="txtAssinante" name="txtAssinante" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strNomeAssinante);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  821 + <input type="hidden" id="hdnIdAssinante" name="hdnIdAssinante" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strIdAssinante)?>" />
  822 + <input type="hidden" id="txtDescricaoPesquisa" name="txtDescricaoPesquisa" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strDescricaoPesquisa);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  823 + <input type="hidden" id="txtAssunto" name="txtAssunto" class="infraText" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" value="<?=PaginaSEIExterna::tratarHTML($strDescricaoAssunto)?>" />
  824 + <input type="hidden" id="hdnIdAssunto" name="hdnIdAssunto" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strIdAssunto)?>" />
  825 + <input type="hidden" id="txtSiglaUsuario1" name="txtSiglaUsuario1" onfocus="sugerirUsuario(this);" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strSiglaUsuario1);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  826 + <input type="hidden" id="txtSiglaUsuario2" name="txtSiglaUsuario2" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strSiglaUsuario2);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  827 + <input type="hidden" id="txtSiglaUsuario3" name="txtSiglaUsuario3" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strSiglaUsuario3);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  828 + <input type="hidden" id="txtSiglaUsuario4" name="txtSiglaUsuario4" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strSiglaUsuario4);?>" tabindex="<?=PaginaSEIExterna::getInstance()->getProxTabDados()?>" />
  829 + <input type="hidden" id="hdnSiglasUsuarios" name="hdnSiglasUsuarios" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strUsuarios)?>" />
  830 + <input type="hidden" id="hdnSiglasUsuarios" name="hdnSiglasUsuarios" class="infraText" value="<?=PaginaSEIExterna::tratarHTML($strUsuarios)?>" />
  831 + <?if($bolCaptcha) { ?>
  832 + <input type="hidden" id="hdnCaptchaMd5" name="hdnCaptchaMd5" class="infraText" value="<?=md5(InfraCaptcha::gerar(PaginaSEIExterna::tratarHTML($strCodigoParaGeracaoCaptcha)));?>" />
  833 + <?} ?>
  834 + <input id="partialfields" name="partialfields" type="hidden" value="" />
  835 + <input id="requiredfields" name="requiredfields" type="hidden" value="" />
  836 + <input id="as_q" name="as_q" type="hidden" value="" />
  837 +
  838 + <input type="hidden" id="hdnFlagPesquisa" name="hdnFlagPesquisa" value="1" />
  839 +<?
  840 + if ($bolSolr){
  841 + echo '<div id="conteudo" style="width:99%;" class="infraAreaTabela">';
  842 + echo $strResultado;
  843 + echo $strResultadoIntranet;
  844 + echo $strResultadoSISCADE;
  845 +
  846 + }else if ($bolBanco){
  847 + PaginaSEIExterna::getInstance()->montarAreaTabela($strResultado,$numRegistros);
  848 + echo $strResultadoIntranet;
  849 + echo $strResultadoSISCADE;
  850 + }
  851 +
  852 +
  853 +
  854 +
  855 + PaginaSEIExterna::getInstance()->montarAreaDebug();
  856 +?>
  857 + </form>
  858 +<?
  859 +PaginaSEIExterna::getInstance()->fecharBody();
  860 +PaginaSEIExterna::getInstance()->fecharHtml();
  861 +?>
0 862 \ No newline at end of file
... ...
sei/institucional/pesquisa/rn/ProcedimentoSiscadeRN.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/rn/ProcedimentoSiscadeRN.php
... ... @@ -0,0 +1,187 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-12-15
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * ProcedimentoSiscadeRN
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe regra de negocio procedimento siscade.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_ProcedimentoSiscadeRN
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../../SEI.php';
  32 +
  33 +class ProcedimentoSiscadeRN extends InfraRN{
  34 +
  35 + //NA = Nível de Acesso
  36 + public static $NA_PUBLICO = '1';
  37 + public static $NA_RESTRITO = '2';
  38 + public static $NA_SIGILOSO = '3';
  39 +
  40 + public function __construct(){
  41 + parent::__construct();
  42 + }
  43 +
  44 + protected function inicializarObjInfraIBanco(){
  45 + return BancoSISCADE::getInstance('BancoSISCADE');
  46 + }
  47 +
  48 + protected function listarTodosComFiltroConectado(ProcedimentoSiscadeDTO $objetoDTO){
  49 + try {
  50 +
  51 +
  52 +
  53 + if($objetoDTO->isSetStrNrProcedimento()){
  54 + if(trim($objetoDTO->getStrNrProcedimento())!=''){
  55 +
  56 + $strProcessoPesquisa = InfraString::transformarCaixaAlta($objetoDTO->getStrNrProcedimento());
  57 + $arrProcessoPesquisa = explode(' ',$strProcessoPesquisa);
  58 +
  59 +
  60 +
  61 + for($i=0;$i<count($arrProcessoPesquisa);$i++){
  62 + $arrProcessoPesquisa[$i] = '%'.$arrProcessoPesquisa[$i].'%';
  63 + }
  64 +
  65 + if (count($arrProcessoPesquisa)==1){
  66 + $objetoDTO->setStrNrProcedimento($arrProcessoPesquisa[0],InfraDTO::$OPER_LIKE);
  67 +
  68 +
  69 + }else{
  70 + $objetoDTO->unSetStrNrProcedimento();
  71 + $a = array_fill(0,count($arrProcessoPesquisa),'ProNumero');
  72 + $b = array_fill(0,count($arrProcessoPesquisa),InfraDTO::$OPER_LIKE);
  73 + $d = array_fill(0,count($arrProcessoPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);
  74 + $objetoDTO->adicionarCriterio($a,$b,$arrProcessoPesquisa,$d);
  75 +
  76 +
  77 +
  78 + }
  79 + }else{
  80 + $objetoDTO->unSetStrNrProcedimento();
  81 + }
  82 +
  83 +
  84 + }
  85 +
  86 +
  87 +
  88 + $objetoBD = new ProcedimentoSiscadeBD($this->getObjInfraIBanco());
  89 +
  90 +
  91 +
  92 + $ret = $objetoBD->listar($objetoDTO);
  93 +
  94 + return $ret;
  95 +
  96 + } catch (Exception $e) {
  97 + throw new InfraException('Erro listando Processos Siscade com filtro.',$e);
  98 + }
  99 + }
  100 +
  101 + protected function contarComFiltroConectado(ProcedimentoSiscadeDTO $objetoDTO){
  102 + try {
  103 +
  104 + if($objetoDTO->isSetStrNrProcedimento()){
  105 + if(trim($objetoDTO->getStrNrProcedimento())!=''){
  106 +
  107 + $strProcessoPesquisa = InfraString::transformarCaixaAlta($objetoDTO->getStrNrProcedimento());
  108 + $arrProcessoPesquisa = explode(' ',$strProcessoPesquisa);
  109 +
  110 +
  111 +
  112 + for($i=0;$i<count($arrProcessoPesquisa);$i++){
  113 + $arrProcessoPesquisa[$i] = '%'.$arrProcessoPesquisa[$i].'%';
  114 + }
  115 +
  116 + if (count($arrProcessoPesquisa)==1){
  117 + $objetoDTO->setStrNrProcedimento($arrProcessoPesquisa[0],InfraDTO::$OPER_LIKE);
  118 +
  119 +
  120 + }else{
  121 + $objetoDTO->unSetStrNrProcedimento();
  122 + $a = array_fill(0,count($arrProcessoPesquisa),'ProNumero');
  123 + $b = array_fill(0,count($arrProcessoPesquisa),InfraDTO::$OPER_LIKE);
  124 + $d = array_fill(0,count($arrProcessoPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);
  125 + $objetoDTO->adicionarCriterio($a,$b,$arrProcessoPesquisa,$d);
  126 +
  127 +
  128 +
  129 + }
  130 + }else{
  131 + $objetoDTO->unSetStrNrProcedimento();
  132 + }
  133 +
  134 +
  135 + }
  136 +
  137 + $objetoBD = new ProcedimentoSiscadeBD($this->getObjInfraIBanco());
  138 +
  139 + $ret = $objetoBD->contar($objetoDTO);
  140 +
  141 + return $ret;
  142 +
  143 + } catch (Exception $e) {
  144 + throw new InfraException('Erro listando Processos Siscade com filtro.',$e);
  145 + }
  146 + }
  147 +
  148 + protected function contarProcedimentoParteConectado(ProcedimentoSiscadeDTO $objProcedimentoSiscadeDTO){
  149 +
  150 + try {
  151 +
  152 + $objProcedimentoSiscadeBD = new ProcedimentoSiscadeBD($this->getObjInfraIBanco());
  153 + $ret = $objProcedimentoSiscadeBD->contarProcedimentoParte($objProcedimentoSiscadeDTO);
  154 +
  155 + return $ret;
  156 +
  157 + } catch (Exception $e) {
  158 + throw new InfraException('Erro contando Procedimento Siscade.',$e);
  159 + }
  160 +
  161 + }
  162 +
  163 + protected function listarProcedimentoParteConectado(ProcedimentoSiscadeDTO $objProcedimentoSiscadeDTO){
  164 +
  165 + try {
  166 +
  167 + $objProcedimentoSiscadeBD = new ProcedimentoSiscadeBD($this->getObjInfraIBanco());
  168 + $ret = $objProcedimentoSiscadeBD->listarPaginadoProcedimentoParte($objProcedimentoSiscadeDTO);
  169 +
  170 +
  171 + return $ret;
  172 +
  173 + } catch (Exception $e) {
  174 + throw new InfraException('Erro listando Procedimento Siscade.',$e);
  175 + }
  176 + }
  177 +
  178 +
  179 +
  180 +
  181 +
  182 +
  183 +}
  184 +
  185 +
  186 +
  187 +?>
... ...
sei/institucional/pesquisa/rn/ProcessoRN.php 0 → 100644
  1 +++ a/sei/institucional/pesquisa/rn/ProcessoRN.php
... ... @@ -0,0 +1,177 @@
  1 +<?
  2 +/**
  3 + * CONSELHO ADMINISTRATIVO DE DEFESA ECONÔMICA
  4 + * 2014-12-15
  5 + * Versão do Gerador de Código: 1.0
  6 + * Versão no CVS/SVN:
  7 + *
  8 + * sei
  9 + * pesquisa
  10 + * ProcessoRN
  11 + *
  12 + *
  13 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  14 + */
  15 +
  16 +/**
  17 + * Classe regra de negocio processo DBCade.
  18 + *
  19 + *
  20 + * @package institucional_pesquisa_ProcessoRN
  21 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  22 + * @license Creative Commons Atribuição 3.0 não adaptada
  23 + * <http://creativecommons.org/licenses/by/3.0/deed.pt_BR>
  24 + * @ignore Este código é livre para uso sem nenhuma restrição,
  25 + * salvo pelas informações a seguir referentes
  26 + * @copyright Conselho Administrativo de Defesa Econômica ©2014-2018
  27 + * <http://www.cade.gov.br>
  28 + * @author Alex Alves Braga <bsi.alexbraga@gmail.com>
  29 + */
  30 +
  31 +require_once dirname(__FILE__).'/../../../SEI.php';
  32 +
  33 +class ProcessoRN extends InfraRN{
  34 +
  35 +
  36 +
  37 + public function __construct(){
  38 + parent::__construct();
  39 + }
  40 +
  41 + protected function inicializarObjInfraIBanco(){
  42 + return BancoCADE::getInstance('BancoDBCADE');
  43 + }
  44 +
  45 + protected function listarConectado(ProcessoDTO $objProcessoDTO){
  46 + try {
  47 +
  48 + $objProcessoBD = new ProcessoBD($this->getObjInfraIBanco());
  49 + $ret = $objProcessoBD->listar($objProcessoDTO);
  50 +
  51 + return $ret;
  52 + } catch (Exception $e) {
  53 +
  54 + throw new InfraException('Erro listando Processos, ',$e);
  55 +
  56 + }
  57 + }
  58 +
  59 + protected function listarTodosComFiltroConectado(ProcessoDTO $objProcessoDTO){
  60 + try {
  61 +
  62 + if($objProcessoDTO->isSetStrProNumero()){
  63 + if(trim($objProcessoDTO->getStrProNumero())!=''){
  64 +
  65 + $strProcessoPesquisa = InfraString::transformarCaixaAlta($objProcessoDTO->getStrProNumero());
  66 + $arrProcessoPesquisa = explode(' ',$strProcessoPesquisa);
  67 +
  68 +
  69 + for($i=0;$i<count($arrProcessoPesquisa);$i++){
  70 + $arrProcessoPesquisa[$i] = '%'.$arrProcessoPesquisa[$i].'%';
  71 + }
  72 +
  73 + if (count($arrProcessoPesquisa)==1){
  74 + $objProcessoDTO->setStrProNumero($arrProcessoPesquisa[0],InfraDTO::$OPER_LIKE);
  75 +
  76 + }else{
  77 + $objProcessoDTO->unSetStrProNumero();
  78 + $a = array_fill(0,count($arrProcessoPesquisa),'ProNumero');
  79 + $b = array_fill(0,count($arrProcessoPesquisa),InfraDTO::$OPER_LIKE);
  80 + $d = array_fill(0,count($arrProcessoPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);
  81 + $objProcessoDTO->adicionarCriterio($a,$b,$arrProcessoPesquisa,$d);
  82 + }
  83 + }else{
  84 + $objProcessoDTO->unSetStrProNumero();
  85 + }
  86 +
  87 +
  88 + }
  89 +
  90 + $objProcessoBD = new ProcessoBD($this->getObjInfraIBanco());
  91 + $ret = $objProcessoBD->listar($objProcessoDTO);
  92 +
  93 + return $ret;
  94 +
  95 + } catch (Exception $e) {
  96 + throw new InfraException('Erro listando Processos com filtro.',$e);
  97 + }
  98 +
  99 + }
  100 +
  101 + protected function contarComFiltroConectado(ProcessoDTO $objProcessoDTO){
  102 +
  103 + try {
  104 +
  105 + if($objProcessoDTO->isSetStrProNumero()){
  106 + if(trim($objProcessoDTO->getStrProNumero())!=''){
  107 +
  108 + $strProcessoPesquisa = InfraString::transformarCaixaAlta($objProcessoDTO->getStrProNumero());
  109 + $arrProcessoPesquisa = explode(' ',$strProcessoPesquisa);
  110 +
  111 +
  112 + for($i=0;$i<count($arrProcessoPesquisa);$i++){
  113 + $arrProcessoPesquisa[$i] = '%'.$arrProcessoPesquisa[$i].'%';
  114 + }
  115 +
  116 + if (count($arrProcessoPesquisa)==1){
  117 + $objProcessoDTO->setStrProNumero($arrProcessoPesquisa[0],InfraDTO::$OPER_LIKE);
  118 +
  119 + }else{
  120 + $objProcessoDTO->unSetStrProNumero();
  121 + $a = array_fill(0,count($arrProcessoPesquisa),'ProNumero');
  122 + $b = array_fill(0,count($arrProcessoPesquisa),InfraDTO::$OPER_LIKE);
  123 + $d = array_fill(0,count($arrProcessoPesquisa)-1,InfraDTO::$OPER_LOGICO_AND);
  124 + $objProcessoDTO->adicionarCriterio($a,$b,$arrProcessoPesquisa,$d);
  125 + }
  126 + }else{
  127 + $objProcessoDTO->unSetStrProNumero();
  128 + }
  129 +
  130 +
  131 + }
  132 +
  133 + $objProcessoBD = new ProcessoBD($this->getObjInfraIBanco());
  134 + $ret = $objProcessoBD->contar($objProcessoDTO);
  135 +
  136 + return $ret;
  137 +
  138 + } catch (Exception $e) {
  139 + throw new InfraException('Error contando Processo DBCade.');
  140 + }
  141 + }
  142 +
  143 + protected function contarProNumeroParteConectado(ProcessoDTO $objProcessoDTO){
  144 +
  145 + try {
  146 +
  147 + $objProcessoBD = new ProcessoBD($this->getObjInfraIBanco());
  148 + $ret = $objProcessoBD->contarPronumeroParte($objProcessoDTO);
  149 +
  150 + return $ret;
  151 +
  152 + } catch (Exception $e) {
  153 + throw new InfraException('Erro contando Processo DBCade.',$e);
  154 + }
  155 + }
  156 +
  157 +
  158 + protected function listarProNumeroParteConectado(ProcessoDTO $objProcessoDTO){
  159 +
  160 + try {
  161 +
  162 +
  163 +
  164 + $objProcessoBD = new ProcessoBD($this->getObjInfraIBanco());
  165 + $ret = $objProcessoBD->listarPaginadoPronumeroParte($objProcessoDTO);
  166 +
  167 + return $ret;
  168 +
  169 + } catch (Exception $e) {
  170 + throw new InfraException('Error Listando Processo DBCade.');
  171 + }
  172 + }
  173 +
  174 +
  175 +
  176 +}
  177 +?>
0 178 \ No newline at end of file
... ...
sei/institucional/pesquisa/solr/img/arvore.png 0 → 100644

711 Bytes