From e2cbe8e844faa2fdba6c2249e7e675338d63a269 Mon Sep 17 00:00:00 2001 From: Guilherme Andrade Del Cantoni Date: Wed, 14 Mar 2018 14:10:33 -0300 Subject: [PATCH] Aplicação de regra de visualização dos botões de Trâmite Externo e Recibo de acordo com regra de negócio --- PENControlador.php | 2 +- PENIntegracao.php | 31 ++++++++++++++++++++++--------- apensados_selecionar_expedir_procedimento.php | 2 +- bd/PenUnidadeBD.php | 12 ++++++++++++ dto/PenUnidadeDTO.php | 8 ++++---- pen_map_unidade_listar.php | 5 +++-- pen_procedimento_expedir.php | 2 +- rn/PenUnidadeRN.php | 47 +++++++++++++++++++++++++++++++---------------- rn/ProcessoEletronicoRN.php | 9 +++++++++ 9 files changed, 84 insertions(+), 34 deletions(-) create mode 100644 bd/PenUnidadeBD.php diff --git a/PENControlador.php b/PENControlador.php index 82022c9..08d3441 100644 --- a/PENControlador.php +++ b/PENControlador.php @@ -47,7 +47,7 @@ class PENControlador implements ISeiControlador { require_once dirname(__FILE__) . '/pen_map_tipo_documento_recebimento_cadastrar.php'; return true; - case 'apensados_selecionar_expedir_procedimento': + case 'pen_apensados_selecionar_expedir_procedimento': require_once dirname(__FILE__) . '/apensados_selecionar_expedir_procedimento.php'; return true; diff --git a/PENIntegracao.php b/PENIntegracao.php index 89bd384..159a0fa 100644 --- a/PENIntegracao.php +++ b/PENIntegracao.php @@ -46,7 +46,6 @@ class PENIntegracao extends SeiIntegracao { //Verificação da Restrição de Acesso à Funcionalidade $bolAcaoExpedirProcesso = $objSessaoSEI->verificarPermissao('pen_procedimento_expedir'); - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); $objProcedimentoDTO = $objExpedirProcedimentoRN->consultarProcedimento($dblIdProcedimento); @@ -57,20 +56,34 @@ class PENIntegracao extends SeiIntegracao { //Apresenta o botão de expedir processo if ($bolFlagAberto && $bolAcaoExpedirProcesso && $bolProcessoEstadoNormal && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_SIGILOSO) { - $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); - $strAcoesProcedimento .= 'Envio Externo de Processo'; + + $objPenUnidadeDTO = new PenUnidadeDTO(); + $objPenUnidadeDTO->retNumIdUnidade(); + $objPenUnidadeDTO->setNumIdUnidade($numIdUnidadeAtual); + $objPenUnidadeRN = new PenUnidadeRN(); + + if($objPenUnidadeRN->contar($objPenUnidadeDTO) != 0) { + $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); + $strAcoesProcedimento .= 'Envio Externo de Processo'; + } } //Apresenta o botão da página de recibos - $strAcoesProcedimento .= ''; - $strAcoesProcedimento .= 'Consultar Recibos'; - $strAcoesProcedimento .= ''; + if($bolAcaoExpedirProcesso){ + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoDTO->retDblIdProcedimento(); + $objProcessoEletronicoDTO->setDblIdProcedimento($dblIdProcedimento); + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + if($objProcessoEletronicoRN->contar($objProcessoEletronicoDTO) != 0){ + $strAcoesProcedimento .= ''; + $strAcoesProcedimento .= 'Consultar Recibos'; + $strAcoesProcedimento .= ''; + } + } //Apresenta o botão de cancelar trâmite $objAtividadeDTO = $objExpedirProcedimentoRN->verificarProcessoEmExpedicao($objSeiIntegracaoDTO->getIdProcedimento()); - if ($objAtividadeDTO && $objAtividadeDTO->getNumIdTarefa() == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)) { - $strAcoesProcedimento .= ''; $strAcoesProcedimento .= 'Cancelar Tramitação Externa'; $strAcoesProcedimento .= ''; @@ -242,7 +255,7 @@ class PENIntegracao extends SeiIntegracao { require_once dirname(__FILE__) . '/pen_map_tipo_documento_recebimento_cadastrar.php'; return true; - case 'apensados_selecionar_expedir_procedimento': + case 'pen_apensados_selecionar_expedir_procedimento': require_once dirname(__FILE__) . '/apensados_selecionar_expedir_procedimento.php'; return true; diff --git a/apensados_selecionar_expedir_procedimento.php b/apensados_selecionar_expedir_procedimento.php index 9903e03..988d805 100644 --- a/apensados_selecionar_expedir_procedimento.php +++ b/apensados_selecionar_expedir_procedimento.php @@ -21,7 +21,7 @@ try { ////////////////////////////////////////////////////////////////////////////// SessaoSEI::getInstance()->validarLink(); - PaginaSEI::getInstance()->prepararSelecao('apensados_selecionar_expedir_procedimento'); + PaginaSEI::getInstance()->prepararSelecao('pen_apensados_selecionar_expedir_procedimento'); //SessaoSEI::getInstance()->validarPermissao($_GET['acao']); diff --git a/bd/PenUnidadeBD.php b/bd/PenUnidadeBD.php new file mode 100644 index 0000000..ff6d74d --- /dev/null +++ b/bd/PenUnidadeBD.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/dto/PenUnidadeDTO.php b/dto/PenUnidadeDTO.php index 9e1d024..f773e20 100644 --- a/dto/PenUnidadeDTO.php +++ b/dto/PenUnidadeDTO.php @@ -29,10 +29,10 @@ class PenUnidadeDTO extends UnidadeDTO { // Infelizmente não funciona com parent::getArrAtributos(), pois o arrAtributos // esta na InfraDTO e ela confunde em função do extends, então tenho que // criar uma nova instância - $objDTO = new UnidadeDTO(); - $objDTO->retTodos(); + $objUnidadeDTO = new UnidadeDTO(); + $objUnidadeDTO->retTodos(); - foreach($objDTO->getArrAtributos() as $arrAtrib) { + foreach($objUnidadeDTO->getArrAtributos() as $arrAtrib) { if($arrAtrib[InfraDTO::$POS_ATRIBUTO_PREFIXO] != 'IdUnidade') { @@ -40,7 +40,7 @@ class PenUnidadeDTO extends UnidadeDTO { $arrAtrib[InfraDTO::$POS_ATRIBUTO_PREFIXO], $arrAtrib[InfraDTO::$POS_ATRIBUTO_NOME], $arrAtrib[InfraDTO::$POS_ATRIBUTO_CAMPO_SQL], - $objDTO->getStrNomeTabela() + $objUnidadeDTO->getStrNomeTabela() ); } } diff --git a/pen_map_unidade_listar.php b/pen_map_unidade_listar.php index bf1e50f..63c60ed 100644 --- a/pen_map_unidade_listar.php +++ b/pen_map_unidade_listar.php @@ -162,8 +162,9 @@ try { $objPenUnidadeDTO->retNumIdUnidadeRH(); $objPenUnidadeRN = new PenUnidadeRN(); - $arrMapIdUnidade = InfraArray::converterArrInfraDTO($objPenUnidadeRN->listar($objPenUnidadeDTO), 'IdUnidade', 'IdUnidade'); - $arrMapIdUnidadeRH = InfraArray::converterArrInfraDTO($objPenUnidadeRN->listar($objPenUnidadeDTO), 'IdUnidadeRH', 'IdUnidadeRH'); + $objArrPenUnidadeDTO = $objPenUnidadeRN->listar($objPenUnidadeDTO); + $arrMapIdUnidade = InfraArray::converterArrInfraDTO($objArrPenUnidadeDTO, 'IdUnidade', 'IdUnidade'); + $arrMapIdUnidadeRH = InfraArray::converterArrInfraDTO($objArrPenUnidadeDTO, 'IdUnidadeRH', 'IdUnidadeRH'); $objPagina->prepararOrdenacao($objPenUnidadeDTOFiltro, 'IdUnidade', InfraDTO::$TIPO_ORDENACAO_ASC); $objPagina->prepararPaginacao($objPenUnidadeDTOFiltro); diff --git a/pen_procedimento_expedir.php b/pen_procedimento_expedir.php index 4f37189..6e0a6f9 100644 --- a/pen_procedimento_expedir.php +++ b/pen_procedimento_expedir.php @@ -80,7 +80,7 @@ try { //$strLinkUnidadeSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_unidade_sel_expedir_procedimento&tipo_selecao=2&id_object=objLupaUnidades'); //$strLinkRepositorioSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_repositorio_selecionar_expedir_procedimento&tipo_selecao=2&id_object=objLupaProcedimentosApensados'); - $strLinkProcedimentosApensadosSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=apensados_selecionar_expedir_procedimento&tipo_selecao=2&id_object=objLupaProcedimentosApensados&id_procedimento='.$idProcedimento.''); + $strLinkProcedimentosApensadosSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_apensados_selecionar_expedir_procedimento&tipo_selecao=2&id_object=objLupaProcedimentosApensados&id_procedimento='.$idProcedimento.''); //TODO: Obter dados do repositório e unidade de orígem através de serviço do PEN //Obtenção dos parâmetros selecionados pelo usuário diff --git a/rn/PenUnidadeRN.php b/rn/PenUnidadeRN.php index ebb5844..46493d1 100644 --- a/rn/PenUnidadeRN.php +++ b/rn/PenUnidadeRN.php @@ -47,15 +47,12 @@ class PenUnidadeRN extends InfraRN { * @return array * @throws InfraException */ - protected function listarConectado(UnidadeDTO $objUnidadeDTO) { + protected function listarConectado(UnidadeDTO $objPenUnidadeDTO) { try { //Valida Permissao SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_unidade_listar',__METHOD__,$objUnidadeDTO); - - $objUnidadeBD = new UnidadeBD($this->getObjInfraIBanco()); - $ret = $objUnidadeBD->listar($objUnidadeDTO); - - return $ret; + $objPenUnidadeBD = new PenUnidadeBD($this->getObjInfraIBanco()); + return $objPenUnidadeBD->listar($objPenUnidadeDTO); }catch(Exception $e){ throw new InfraException('Erro listando Unidades.',$e); } @@ -67,13 +64,13 @@ class PenUnidadeRN extends InfraRN { * @return array * @throws InfraException */ - protected function alterarConectado(PenUnidadeDTO $objDTO){ + protected function alterarConectado(UnidadeDTO $objPenUnidadeDTO){ try { - $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); - return $objBD->alterar($objDTO); + $objPenUnidadeBD = new PenUnidadeBD($this->inicializarObjInfraIBanco()); + return $objPenUnidadeBD->alterar($objPenUnidadeDTO); } catch (Exception $e) { - throw new InfraException('Erro excluindo E-mail do Sistema.', $e); + throw new InfraException('Erro alterando mapeamento de unidades.', $e); } } @@ -83,13 +80,13 @@ class PenUnidadeRN extends InfraRN { * @return array * @throws InfraException */ - protected function cadastrarConectado(PenUnidadeDTO $objDTO){ + protected function cadastrarConectado(UnidadeDTO $objDTO){ try { - $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); + $objBD = new PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objBD->cadastrar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro excluindo E-mail do Sistema.', $e); + throw new InfraException('Erro cadastrando mapeamento de unidades.', $e); } } @@ -99,13 +96,31 @@ class PenUnidadeRN extends InfraRN { * @return array * @throws InfraException */ - protected function excluirConectado(PenUnidadeDTO $objDTO){ + protected function excluirConectado(UnidadeDTO $objDTO){ try { - $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); + $objBD = new PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objBD->excluir($objDTO); } catch (Exception $e) { - throw new InfraException('Erro excluindo E-mail do Sistema.', $e); + throw new InfraException('Erro excluindo mapeamento de unidades.', $e); } } + + /** + * Método utilizado para contagem de unidades mapeadas + * @param UnidadeDTO $objUnidadeDTO + * @return array + * @throws InfraException + */ + protected function contarConectado(PenUnidadeDTO $objPenUnidadeDTO) { + try { + //Valida Permissao + $objPenUnidadeBD = new PenUnidadeBD($this->getObjInfraIBanco()); + return $objPenUnidadeBD->contar($objPenUnidadeDTO); + } + catch(Exception $e){ + throw new InfraException('Erro contando mapeamento de unidades.',$e); + } + } + } diff --git a/rn/ProcessoEletronicoRN.php b/rn/ProcessoEletronicoRN.php index 561e922..386047c 100644 --- a/rn/ProcessoEletronicoRN.php +++ b/rn/ProcessoEletronicoRN.php @@ -1458,6 +1458,15 @@ class ProcessoEletronicoRN extends InfraRN { throw new InfraException("Erro durante obtenção da resposta das hipóteses legais", $e); } } + + protected function contarConectado(ProcessoEletronicoDTO $objProcessoEletronicoDTO){ + try { + $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); + return $objProcessoEletronicoBD->contar($objProcessoEletronicoDTO); + }catch(Exception $e){ + throw new InfraException('Erro contando Processos Externos.',$e); + } + } } -- libgit2 0.21.2