diff --git a/src/PENIntegracao.php b/src/PENIntegracao.php index 08d9b00fe..90395c04c 100755 --- a/src/PENIntegracao.php +++ b/src/PENIntegracao.php @@ -1,7 +1,7 @@ setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); $objPenUnidadeRN = new PenUnidadeRN(); - //Apresenta o botão de expedir processo + //Apresenta o botão de expedir processo if ($numRegistros > 0 && $objPenUnidadeRN->contar($objPenUnidadeDTO) != 0) { $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); $strAcoesProcedimento .= ''; @@ -215,7 +215,7 @@ private function montarIconeTramite($arrDblIdProcedimento = array(), $arrStrIcon ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO) ); - + foreach ($arrDblIdProcedimento as $dblIdProcedimento) { $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); @@ -225,10 +225,10 @@ private function montarIconeTramite($arrDblIdProcedimento = array(), $arrStrIcon $objAtividadeDTO->retNumIdAtividade(); $objAtividadeDTO->retNumIdTarefa(); $objAtividadeDTO->retDblIdProcedimentoProtocolo(); - + $objAtividadeRN = new AtividadeRN(); $ObjAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); - + if (!empty($ObjAtividadeDTO)) { switch ($ObjAtividadeDTO->getNumIdTarefa()) { case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): @@ -267,7 +267,7 @@ private function montarIconeTramite($arrDblIdProcedimento = array(), $arrStrIcon return $arrStrIcone; } - + private function consultarProcessoRecebido($dblIdProtocolo) { $objAtividadeDTO = new AtividadeDTO(); @@ -341,11 +341,11 @@ private function getObjArvoreAcao($dblIdProcedimento, $arrObjArvoreAcaoItemAPI) // $objAtividadeDTO->setNumMaxRegistrosRetorno(1); // $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); // $objAtividadeDTO->retNumIdAtividade(); - + // $objAtividadeRN = new AtividadeRN(); // $objAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); - + // if (!empty($objAtividadeDTO)) { // if ($idTarefaAtividade == ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) { // $arrObjArvoreAcaoItemAPI[] = $this->getObjArvoreAcaoEnviado($dblIdProcedimento); @@ -369,10 +369,10 @@ private function getObjArvoreAcao($dblIdProcedimento, $arrObjArvoreAcaoItemAPI) $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); $objAtividadeDTO->retNumIdTarefa(); $objAtividadeDTO->retNumIdAtividade(); - + $objAtividadeRN = new AtividadeRN(); $objAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); - + if (!empty($objAtividadeDTO)) { switch ($objAtividadeDTO->getNumIdTarefa()) { case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): @@ -684,7 +684,18 @@ public function processarControlador($strAcao) require_once dirname(__FILE__) . '/pen_map_unidade_cadastrar.php'; break; - case 'pen_map_unidade_listar': + case 'pen_map_orgaos_externos_salvar': + case 'pen_map_orgaos_externos_cadastrar': + require_once dirname(__FILE__) . '/pen_map_orgaos_externos_cadastrar.php'; + break; + + case 'pen_map_orgaos_externos_listar': + case 'pen_map_orgaos_externos_excluir': + case 'pen_importar_tipos_processos': + require_once dirname(__FILE__) . '/pen_map_orgaos_externos_listar.php'; + break; + + case 'pen_map_unidade_listar'; case 'pen_map_unidade_excluir': require_once dirname(__FILE__) . '/pen_map_unidade_listar.php'; break; @@ -716,6 +727,17 @@ public function processarControlador($strAcao) require_once dirname(__FILE__) . '/pen_expedir_lote_listar.php'; break; + case 'pen_map_restricao_envio_comp_digitais_listar': + case 'pen_map_restricao_envio_comp_digitais_excluir': + require_once dirname(__FILE__) . '/pen_map_restricao_envio_comp_digitais_listar.php'; + break; + + case 'pen_map_restricao_envio_comp_digitais_salvar': + case 'pen_map_restricao_envio_comp_digitais_cadastrar': + case 'pen_map_restricao_envio_comp_digitais_visualizar': + require_once dirname(__FILE__) . '/pen_map_restricao_envio_comp_digitais_cadastrar.php'; + break; + default: return false; @@ -740,10 +762,34 @@ public function processarControladorAjax($strAcao) { if (count($arrObjEstruturaDTO['itens']) > 0) { $xml = self::gerarXMLItensArrInfraDTOAutoCompletar($arrObjEstruturaDTO, 'NumeroDeIdentificacaoDaEstrutura', 'Nome'); } else { - return ''; + return ''; } break; + case 'pen_unidade_auto_completar_mapeados': + // DTO de paginao + $objPenUnidadeDTOFiltro = new PenUnidadeDTO(); + $objPenUnidadeDTOFiltro->retStrSigla(); + $objPenUnidadeDTOFiltro->retStrDescricao(); + $objPenUnidadeDTOFiltro->retNumIdUnidade(); + $objPenUnidadeDTOFiltro->retNumIdUnidadeRH(); + + // Filtragem + if(!empty($_POST['palavras_pesquisa']) && $_POST['palavras_pesquisa'] !== 'null') { + $objPenUnidadeDTOFiltro->setStrDescricao('%'.$_POST['palavras_pesquisa'].'%', InfraDTO::$OPER_LIKE); + } + $objPenUnidadeRN = new PenUnidadeRN(); + $objArrPenUnidadeDTO = (array) $objPenUnidadeRN->listar($objPenUnidadeDTOFiltro); + if (count($objArrPenUnidadeDTO) > 0) { + foreach ($objArrPenUnidadeDTO as $dto) { + $dto->setNumIdUnidadeMap($dto->getNumIdUnidade()); + $dto->setStrDescricaoMap($dto->getStrSigla() . '-' . $dto->getStrDescricao()); + } + $xml = InfraAjax::gerarXMLItensArrInfraDTO($objArrPenUnidadeDTO, 'IdUnidadeMap', 'DescricaoMap'); + } else { + return ''; + } + break; case 'pen_apensados_auto_completar_expedir_procedimento': $dblIdProcedimentoAtual = $_POST['id_procedimento_atual']; $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); diff --git a/src/bd/PenMapTipoProcedimentoBD.php b/src/bd/PenMapTipoProcedimentoBD.php new file mode 100644 index 000000000..8fb4d704e --- /dev/null +++ b/src/bd/PenMapTipoProcedimentoBD.php @@ -0,0 +1,10 @@ +adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'id'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdMapOrgao', 'id_map_orgao'); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarFK('IdMapOrgao', 'mapeamento_orgao', 'id_map_orgao'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdProcessoOrigem', 'id_processo_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdProcessoDestino', 'id_processo_destino'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_criacao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); + } +} diff --git a/src/dto/PenOrgaoExternoDTO.php b/src/dto/PenOrgaoExternoDTO.php new file mode 100755 index 000000000..c80d07d1b --- /dev/null +++ b/src/dto/PenOrgaoExternoDTO.php @@ -0,0 +1,39 @@ +adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'Id'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdOrgaoOrigem', 'id_orgao_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'OrgaoOrigem', 'str_orgao_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstrutaOrganizacionalOrigem', 'id_estrutura_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'EstrutaOrganizacionalOrigem', 'str_estrutura_origem'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdOrgaoDestino', 'id_orgao_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'OrgaoDestino', 'str_orgao_destino'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_criacao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); + } +} diff --git a/src/dto/PenRestricaoEnvioComponentesDigitaisDTO.php b/src/dto/PenRestricaoEnvioComponentesDigitaisDTO.php new file mode 100644 index 000000000..dda3adc22 --- /dev/null +++ b/src/dto/PenRestricaoEnvioComponentesDigitaisDTO.php @@ -0,0 +1,34 @@ +adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'id'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstrutura', 'id_estrutura'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'StrEstrutura', 'str_estrutura'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRh', 'id_unidade_rh'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'StrUnidadeRh', 'str_unidade_rh'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'id_usuario'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + + $this->configurarFK('IdUsuario', 'usuario', 'id_usuario'); + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); + } +} \ No newline at end of file diff --git a/src/dto/PenUnidadeDTO.php b/src/dto/PenUnidadeDTO.php index aad16ee01..c1dfc791b 100755 --- a/src/dto/PenUnidadeDTO.php +++ b/src/dto/PenUnidadeDTO.php @@ -26,6 +26,8 @@ public function montar() { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRH', 'id_unidade_rh'); $this->configurarPK('IdUnidade', InfraDTO::$TIPO_PK_INFORMADO); + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'IdUnidadeMap'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'DescricaoMap'); // 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 diff --git a/src/pen_map_orgaos_externos_cadastrar.php b/src/pen_map_orgaos_externos_cadastrar.php new file mode 100755 index 000000000..ead9f0f71 --- /dev/null +++ b/src/pen_map_orgaos_externos_cadastrar.php @@ -0,0 +1,445 @@ +setBolLigado(true); +//InfraDebug::getInstance()->setBolDebugInfra(true); +//InfraDebug::getInstance()->limpar(); +////////////////////////////////////////////////////////////////////////////// + +$objSessaoSEI = SessaoSEI::getInstance(); +$objPaginaSEI = PaginaSEI::getInstance(); +$objDebug = InfraDebug::getInstance(); +$objInfraException = new InfraException(); + +try { + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao($_GET['acao']); + + $strParametros = ''; + $bolErrosValidacao = false; + $strDiretorioModulo = PENIntegracao::getDiretorio(); + + if (isset($_GET['arvore'])) { + $objPaginaSEI->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore=' . $_GET['arvore']; + } + + $strLinkValidacao = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_salvar&acao_origem=' . $_GET['acao'] . $strParametros)); + + //Preparação dos dados para montagem da tela de expedição de processos + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); + + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->retNumIdUnidadeRH(); + $objUnidadeDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + + if (!$objUnidadeDTO) { + throw new InfraException("A unidade atual não foi mapeada."); + } + + $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH(); + + // Órgão de origem + $numIdOrgaoOrigem = $_POST['hdnIdUnidadeOrigem']; + $strNomeOrgaoOrigem = $_POST['txtUnidadeOrigem']; + $numIdRepositorioOrigem = $_POST['selRepositorioEstruturasOrigem']; + $txtRepositorioEstruturasOrigem = $_POST['txtRepositorioEstruturasOrigem']; + // Órgão de destino + $numIdOrgaoDestino = $_POST['hdnIdUnidadeDestino']; + $strNomeOrgaoDestino = $_POST['txtUnidadeDestino']; + + $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento&acao=' . $_GET['acao']); + $strLinkAjaxUnidadeDestino = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_mapeados&acao=' . $_GET['acao']); + + switch ($_GET['acao']) { + case 'pen_map_orgaos_externos_salvar': + if (is_null($numIdRepositorioOrigem)) { + $objPaginaSEI->adicionarMensagem('selecione um repositório de origem.', InfraPagina::$TIPO_MSG_AVISO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_cadastrar&acao_origem=' . $_GET['acao_origem'])); + exit(0); + } elseif (is_null($numIdOrgaoOrigem)) { + $objPaginaSEI->adicionarMensagem('o orgão origem não foi selecionado.', InfraPagina::$TIPO_MSG_AVISO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_cadastrar&acao_origem=' . $_GET['acao_origem'])); + exit(0); + } elseif (is_null($numIdOrgaoDestino)) { + $objPaginaSEI->adicionarMensagem('o orgão destino não foi selecionado.', InfraPagina::$TIPO_MSG_AVISO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_cadastrar&acao_origem=' . $_GET['acao_origem'])); + exit(0); + } + + $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); + $objPenOrgaoExternoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($numIdOrgaoOrigem); + $objPenOrgaoExternoDTO->setNumIdEstrutaOrganizacionalOrigem($numIdRepositorioOrigem); + $objPenOrgaoExternoDTO->setNumIdOrgaoDestino($numIdOrgaoDestino); + $objPenOrgaoExternoDTO->setNumMaxRegistrosRetorno(1); + + $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); + $respObjPenOrgaoExternoDTO = $objPenOrgaoExternoRN->contar($objPenOrgaoExternoDTO); + if ($respObjPenOrgaoExternoDTO > 0) { + $objPaginaSEI->adicionarMensagem('Cadastro de relacionamento entre Órgãos ja existe.', InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_cadastrar&acao_origem=' . $_GET['acao_origem'])); + exit(0); + } + + $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); + $objPenOrgaoExternoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objPenOrgaoExternoDTO->setDthRegistro(date('d/m/Y H:i:s')); + // Órgão de origem + $objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($numIdOrgaoOrigem); + $objPenOrgaoExternoDTO->setStrOrgaoOrigem($strNomeOrgaoOrigem); + $objPenOrgaoExternoDTO->setNumIdEstrutaOrganizacionalOrigem($numIdRepositorioOrigem); + $objPenOrgaoExternoDTO->setStrEstrutaOrganizacionalOrigem($txtRepositorioEstruturasOrigem); + // Órgão de destino + $objPenOrgaoExternoDTO->setNumIdOrgaoDestino($numIdOrgaoDestino); + $objPenOrgaoExternoDTO->setStrOrgaoDestino($strNomeOrgaoDestino); + + $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); + $objPenOrgaoExternoRN->cadastrar($objPenOrgaoExternoDTO); + $objPaginaSEI->adicionarMensagem('Relacionamento cadastrado com sucesso.', InfraPagina::$TIPO_MSG_INFORMACAO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_listar&acao_origem=' . $_GET['acao_origem'])); + exit(0); + break; + case 'pen_map_orgaos_externos_cadastrar': + $strTitulo = 'Cadastro de Relacionamento entre Órgãos'; + + //Monta os botões do topo + if ($objSessaoSEI->verificarPermissao('pen_map_orgaos_externos_cadastrar')) { + $arrComandos[] = ''; + $arrComandos[] = ''; + } else { + $arrComandos[] = ''; + } + + //Obter dados do repositório em que o SEI está registrado (Repositório de Origem) + $objPenParametroRN = new PenParametroRN(); + $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); + $idRepositorioSelecionado = (isset($numIdRepositorioOrigem)) ? $numIdRepositorioOrigem : ''; + $strItensSelRepositorioEstruturasOrigem = InfraINT::montarSelectArray('', 'Selecione', $idRepositorioSelecionado, $repositorios); + + $strLinkAjaxProcedimentoApensado = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_apensados_auto_completar_expedir_procedimento'); + $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas&idRepositorioEstruturaOrigem=1'); + break; + default: + throw new InfraException("Ação '" . $_GET['acao'] . "' não reconhecida."); + } +} catch (Exception $e) { + $objPaginaSEI->adicionarMensagem('Falha no cadastro do relacionamento. Consulte o log do SEI para mais informações.', InfraPagina::$TIPO_MSG_ERRO); + throw new InfraException("Erro processando requisição de envio externo de processo", $e); +} + +$objPaginaSEI->montarDocType(); +$objPaginaSEI->abrirHtml(); +$objPaginaSEI->abrirHead(); +$objPaginaSEI->montarMeta(); +$objPaginaSEI->montarTitle(':: ' . $objPaginaSEI->getStrNomeSistema() . ' - ' . $strTitulo . ' ::'); +$objPaginaSEI->montarStyle(); +echo "\n"; + +$objPaginaSEI->abrirStyle(); +?> + +div.conteiner{ + width: 100%; + padding: 15px; +} + +div.infraAreaDados { +margin-bottom: 10px; +} + +#lblProtocoloExibir {position:absolute;left:0%;top:0%;} +#txtProtocoloExibir {position:absolute;left:0%;top:38%;width:50%;} + +#lblRepositorioEstruturasOrigem {position:absolute;left:0%;top:0%;} +#selRepositorioEstruturasOrigem {position:absolute;left:0%;top:38%;} + +#lblUnidadesOrigem {position:absolute;left:0%;top:0%;} +#txtUnidadeOrigem {left:0%;top:38%;width:100%;border:.1em solid #666;} +#imgLupaUnidadesOrigem {position:absolute;left:52%;top:48%;} + +#lblUnidadesDestino {position:absolute;left:0%;top:0%;} +#txtUnidadeDestino {left:0%;top:38%;width:100%;border:.1em solid #666;} +#imgLupaUnidadesDestino {position:absolute;left:52%;top:48%;} + +.alinhamentoBotaoImput{position:absolute;left:0%;top:48%;width:85%;}; + +#btnIdUnidadeOrigem {float: left;} +#btnIdUnidadeDestino {float: left;} +#imgPesquisaAvancada { + vertical-align: middle; + margin-left: 10px; + width: 20px; + height: 20px; +} + +.panelOrgao { + color: #fff; + width: 48%; + height: 22em; + float: left; + padding: 1em 0em 5em 2em; + border: 2px solid #999; + margin: 10px; + border-radius: 12px; +} + +.panelOrgao > h4 { + position: relative; + background: #155f9b; + width: 42%; + border-radius: 12px; + text-align: center; + padding: 6px; + top: -33px; +} + +fecharStyle(); +$objPaginaSEI->montarJavaScript(); +?> + +fecharHead(); +$objPaginaSEI->abrirBody($strTitulo, 'onload="infraEfeitoTabelas(); inicializarOrigem(); inicializarDestino();"'); +?> +
+
+ montarBarraComandosSuperior($arrComandos); + ?> +
+ +
+

Órgão Origem

+ +
+ + + + +
+ +
+ +
+ +
+
+ + Consultar organograma +
+ + +
+
+ +
+

Órgão Destino

+ +
+ +
+ +

+ +
+ + +
+
+ + + +
+montarAreaDebug(); +$objPaginaSEI->fecharBody(); +$objPaginaSEI->fecharHtml(); +?> \ No newline at end of file diff --git a/src/pen_map_orgaos_externos_listar.php b/src/pen_map_orgaos_externos_listar.php new file mode 100755 index 000000000..db142ecd9 --- /dev/null +++ b/src/pen_map_orgaos_externos_listar.php @@ -0,0 +1,443 @@ +setBolLigado(false); + $objDebug->setBolDebugInfra(true); + $objDebug->limpar(); + + $objSessao->validarLink(); + $objSessao->validarPermissao(PEN_RECURSO_ATUAL); + + + //-------------------------------------------------------------------------- + // Ações + if (array_key_exists('acao', $_GET)) { + + $arrParam = array_merge($_GET, $_POST); + + switch ($_GET['acao']) { + + case 'pen_map_orgaos_externos_excluir': + if (array_key_exists('hdnInfraItensSelecionados', $arrParam) && !empty($arrParam['hdnInfraItensSelecionados'])) { + + $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); + $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); + + $arrParam['hdnInfraItensSelecionados'] = explode(',', $arrParam['hdnInfraItensSelecionados']); + + if (is_array($arrParam['hdnInfraItensSelecionados'])) { + foreach ($arrParam['hdnInfraItensSelecionados'] as $dblId) { + $objPenOrgaoExternoDTO->setDblId($dblId); + $objPenOrgaoExternoRN->excluir($objPenOrgaoExternoDTO); + } + } else { + $objPenOrgaoExternoDTO->setDblId($arrParam['hdnInfraItensSelecionados']); + $objPenOrgaoExternoRN->excluir($objPenOrgaoExternoDTO); + } + + $objPagina->adicionarMensagem(sprintf('%s foi excluido com sucesso.', PEN_PAGINA_TITULO), InfraPagina::$TIPO_MSG_AVISO); + + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . $_GET['acao_retorno'] . '&acao_origem=' . $_GET['acao_origem'])); + exit(0); + } else { + + throw new InfraException('Nenhum Registro foi selecionado para executar esta ação'); + } + break; + case 'pen_importar_tipos_processos': { + + try{ + $penMapTipoProcedimentoRN = new PenMapTipoProcedimentoRN(); + $arrProcedimentoDTO = []; + $procedimentos = explode(',', $_POST['dados']); + foreach ($procedimentos as $procedimento) { + $procedimentoDTO = new PenMapTipoProcedimentoDTO(); + $procedimentoDTO->setNumIdMapOrgao($_POST['mapId']); + $procedimentoDTO->setNumIdProcessoOrigem($procedimento); + $procedimentoDTO->setNumIdUnidade($_GET['infra_unidade_atual']); + $procedimentoDTO->setDthRegistro(date('d/m/Y H:i:s')); + if ($penMapTipoProcedimentoRN->contar($procedimentoDTO)) { + continue; + } + $penMapTipoProcedimentoRN->cadastrar($procedimentoDTO); + } + $objPagina->adicionarMensagem('Importação realizada com sucesso.', 5); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . $_GET['acao_retorno'] . '&acao_origem=' . $_GET['acao_origem'])); + exit(0); + } catch (Exception $e) { + throw new InfraException($e->getMessage()); + } + + } + + case 'pen_map_orgaos_externos_listar': + // Ação padrão desta tela + break; + + default: + throw new InfraException('Ação não permitida nesta tela'); + } + } + //-------------------------------------------------------------------------- + + $arrComandos = array(); + $arrComandos[] = ''; + $arrComandos[] = ''; + //$arrComandos[] = ''; + //$arrComandos[] = ''; + $arrComandos[] = ''; + $arrComandos[] = ''; + #$arrComandos[] = ''; + + //-------------------------------------------------------------------------- + // DTO de paginao + $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); + $objPenOrgaoExternoDTO->setNumIdUnidade($objSessao->getNumIdUnidadeAtual()); + $objPenOrgaoExternoDTO->retDblId(); + $objPenOrgaoExternoDTO->retNumIdOrgaoOrigem(); + $objPenOrgaoExternoDTO->retStrOrgaoOrigem(); + $objPenOrgaoExternoDTO->retNumIdOrgaoDestino(); + $objPenOrgaoExternoDTO->retStrOrgaoDestino(); + $objPenOrgaoExternoDTO->retStrAtivo(); + + //-------------------------------------------------------------------------- + // Filtragem + if (array_key_exists('txtSiglaOrigem', $_POST) && (!empty($_POST['txtSiglaOrigem']) && $_POST['txtSiglaOrigem'] !== 'null')) { + $objPenOrgaoExternoDTO->setStrOrgaoOrigem('%' . $_POST['txtSiglaOrigem'] . '%', InfraDTO::$OPER_LIKE); + } + + if (array_key_exists('txtSiglaDestino', $_POST) && (!empty($_POST['txtSiglaDestino']) && $_POST['txtSiglaDestino'] !== 'null')) { + $objPenOrgaoExternoDTO->setStrOrgaoDestino('%' . $_POST['txtSiglaDestino'] . '%', InfraDTO::$OPER_LIKE); + } + + if (array_key_exists('txtEstado', $_POST) && (!empty($_POST['txtEstado']) && $_POST['txtEstado'] !== 'null')) { + $objPenOrgaoExternoDTO->setStrAtivo($_POST['txtEstado']); + } + + //-------------------------------------------------------------------------- + + $objPagina->prepararOrdenacao($objPenOrgaoExternoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_ASC); + $objPagina->prepararPaginacao($objPenOrgaoExternoDTO, 10); + + $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); + $respObjPenOrgaoExternoDTO = $objPenOrgaoExternoRN->listar($objPenOrgaoExternoDTO); + + $objPagina->processarPaginacao($objPenOrgaoExternoDTO); + + $numRegistros = count($respObjPenOrgaoExternoDTO); + if (!empty($respObjPenOrgaoExternoDTO)) { + + $strResultado = ''; + + $strResultado .= '' . "\n"; + $strResultado .= ''; + + $strResultado .= ''; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strCssTr = ''; + + $index = 0; + foreach ($respObjPenOrgaoExternoDTO as $objPenOrgaoExternoDTO) { + $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara'; + + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; + + $index++; + } + $strResultado .= '
' . $objPagina->gerarCaptionTabela(PEN_PAGINA_TITULO, $numRegistros) . '
' . $objPagina->getThCheck() . '' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'ID
Origem', 'IdOrgaoOrigem', $respObjPenOrgaoExternoDTO) . '
' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'Órgão Origem', 'OrgaoOrigem', $respObjPenOrgaoExternoDTO) . '' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'ID
Destino', 'IdOrgaoDestino', $respObjPenOrgaoExternoDTO) . '
' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'Órgão Destino', 'OrgaoDestino', $respObjPenOrgaoExternoDTO) . 'Ações
' . $objPagina->getTrCheck($index, $objPenOrgaoExternoDTO->getDblId(), '') . '' . $objPenOrgaoExternoDTO->getNumIdOrgaoOrigem() . '' . $objPenOrgaoExternoDTO->getStrOrgaoOrigem() . '' . $objPenOrgaoExternoDTO->getNumIdOrgaoDestino() . '' . $objPenOrgaoExternoDTO->getStrOrgaoDestino() . ''; + + if ($objSessao->verificarPermissao('pen_map_orgaos_externos_excluir')) { + $strResultado .= '' + . 'Importar CSV' + . ''; + $strResultado .= '' + . 'Excluir Mapeamento' + . ''; + } + + $strResultado .= '
'; + } +} catch (InfraException $e) { + $objPagina->processarExcecao($e); +} + + +$objPagina->montarDocType(); +$objPagina->abrirHtml(); +$objPagina->abrirHead(); +$objPagina->montarMeta(); +$objPagina->montarTitle(':: ' . $objPagina->getStrNomeSistema() . ' - ' . PEN_PAGINA_TITULO . ' ::'); +$objPagina->montarStyle(); +?> + +montarJavaScript(); ?> + +fecharHead(); +$objPagina->abrirBody(PEN_PAGINA_TITULO, 'onload="inicializar();"'); +?> + +
+ + +
+
+ montarBarraComandosSuperior($arrComandos); ?> + abrirAreaDados('5em'); ?> + + + + + + + + + + + + fecharAreaDados(); ?> +
+ 0) : ?> + montarAreaTabela($strResultado, $numRegistros); ?> + montarAreaDebug(); ?> + +
+

Nenhum registro encontrado

+ +
+fecharBody(); ?> +fecharHtml(); ?> \ No newline at end of file diff --git a/src/pen_map_restricao_envio_comp_digitais_cadastrar.php b/src/pen_map_restricao_envio_comp_digitais_cadastrar.php new file mode 100644 index 000000000..b35fcb4df --- /dev/null +++ b/src/pen_map_restricao_envio_comp_digitais_cadastrar.php @@ -0,0 +1,502 @@ +setBolLigado(true); +//InfraDebug::getInstance()->setBolDebugInfra(true); +//InfraDebug::getInstance()->limpar(); +////////////////////////////////////////////////////////////////////////////// + +$objSessaoSEI = SessaoSEI::getInstance(); +$objPaginaSEI = PaginaSEI::getInstance(); +$objDebug = InfraDebug::getInstance(); +$objInfraException = new InfraException(); + +define('TITULO_PAGINA', 'Mapeamentos de restrição de envio de componentes digitais'); + +try { + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao($_GET['acao']); + + $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); + + $id = null; + if (array_key_exists('Id', $_GET) && !empty($_GET['Id'])) { + $id = $_GET['Id']; + $strParametros .= "&Id=" . $id; + } + $strLinkValidacao = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_map_restricao_envio_comp_digitais_salvar&acao_=' + . $_GET['acao'] + . $strParametros + )); + + $disabilitarVisualizar = ""; + switch ($_GET['acao']) { + case 'pen_map_restricao_envio_comp_digitais_salvar': + $acao = !empty($id) ? + 'pen_map_restricao_envio_comp_digitais_atualizar' : + 'pen_map_restricao_envio_comp_digitais_cadastrar'; + + if (empty($_POST['selRepositorioEstruturas']) || empty($_POST['txtRepositorioEstruturas']) || $_POST['txtRepositorioEstruturas'] == "0") { + $objPaginaSEI->adicionarMensagem('O Repositório de Estruturas Organizacionais não foi selecionado', InfraPagina::$TIPO_MSG_ERRO); + header('Location: '.$objSessaoSEI->assinarLink('controlador.php?acao='.$acao.'&acao_='.$_GET['acao_'])); + exit(0); + } + if (empty($_POST['hdnIdUnidade']) || empty($_POST['txtUnidade']) || $_POST['txtUnidade'] == "0") { + $objPaginaSEI->adicionarMensagem('O Órgao não foi selecionado.', InfraPagina::$TIPO_MSG_ERRO); + header('Location: '.$objSessaoSEI->assinarLink('controlador.php?acao='.$acao.'&acao_='.$_GET['acao_'])); + exit(0); + } + + $numIdUnidadeRh = $_POST['hdnIdUnidade']; + $strUnidadeRh = $_POST['txtUnidade']; + $numIdRepositorio = $_POST['selRepositorioEstruturas']; + $txtRepositorioEstruturas = $_POST['txtRepositorioEstruturas']; + + $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objDTO->setNumIdEstrutura($numIdRepositorio); + $objDTO->setNumIdUnidadeRh($numIdUnidadeRh); + if (!empty($id)) { + $objDTO->setDblId(array($id), InfraDTO::$OPER_NOT_IN); + } + $objDTO->setNumMaxRegistrosRetorno(1); + + $objDTO = $objPenRestricaoEnvioComponentesDigitaisRN->contar($objDTO); + if ($objDTO > 0) { + $objPaginaSEI->adicionarMensagem( + TITULO_PAGINA . ' já existente.', InfraPagina::$TIPO_MSG_ERRO + ); + header('Location: ' . $objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_map_restricao_envio_comp_digitais_cadastrar&acao_='.$_GET['acao_'] + )); + exit(0); + } + + $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objDTO->setNumIdUsuario($objSessaoSEI->getNumIdUsuario()); + $objDTO->setNumIdEstrutura($numIdRepositorio); + $objDTO->setStrStrEstrutura($txtRepositorioEstruturas); + $objDTO->setNumIdUnidadeRh($numIdUnidadeRh); + $objDTO->setStrStrUnidadeRh($strUnidadeRh); + + $messagem = TITULO_PAGINA . " cadastrado com sucesso."; + if (!empty($_GET['Id'])) { + $objDTO->setDblId($id); + $objPenRestricaoEnvioComponentesDigitaisRN->alterar($objDTO); + $messagem = TITULO_PAGINA . " atualizado com sucesso."; + } else { + $objPenRestricaoEnvioComponentesDigitaisRN->cadastrar($objDTO); + } + $objPaginaSEI->adicionarMensagem($messagem, InfraPagina::$TIPO_MSG_AVISO); + header('Location: ' . $objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_map_restricao_envio_comp_digitais_listar&acao_='.$_GET['acao_'] + )); + exit(0); + break; + case 'pen_map_restricao_envio_comp_digitais_visualizar': + case 'pen_map_restricao_envio_comp_digitais_atualizar': + case 'pen_map_restricao_envio_comp_digitais_cadastrar': + if (array_key_exists('Id', $_GET) && !empty($_GET['Id'])) { + $nomeTitle = 'Editar'; + if ($_GET['acao'] == 'pen_map_restricao_envio_comp_digitais_visualizar') { + $nomeTitle = 'Visualizar'; + } + $strTitulo = $nomeTitle . ' Mapeamento de Restrição de Envio de Componentes Digitais'; + } else { + $strTitulo = 'Novo Mapeamento de Restrição de Envio de Componentes Digitais'; + } + + //Monta os botões do topo + if ( + $_GET['acao'] != 'pen_map_restricao_envio_comp_digitais_visualizar' + && $objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_cadastrar') + && $objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_atualizar') + ) { + $arrComandos[] = ''; + $arrComandos[] = ''; + } else { + $disabilitarVisualizar = " disabled='disabled' "; + $arrComandos[] = ''; + } + + //Preparação dos dados para montagem da tela de expedição de processos + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); + + if (array_key_exists('Id', $_GET) && !empty($_GET['Id'])) { + $objPenRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retDblId(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdEstrutura(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrEstrutura(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUnidadeRh(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrUnidadeRh(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUsuario(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUnidade(); + $objPenRestricaoEnvioComponentesDigitaisDTO->setDblId($_GET['Id']); + + $objPenRestricaoEnvioComponentesDigitaisDTO = + $objPenRestricaoEnvioComponentesDigitaisRN->consultar($objPenRestricaoEnvioComponentesDigitaisDTO); + + if(!is_null($objPenRestricaoEnvioComponentesDigitaisDTO)) { + $numIdRepositorio = $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdEstrutura(); + $hdnIdUnidade = $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadeRh(); + $strNomeUnidade = $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadeRh(); + } + } + + $idRepositorioSelecionado = (isset($numIdRepositorio)) ? $numIdRepositorio : ''; + $strItensSelRepositorioEstruturas = InfraINT::montarSelectArray( + '', 'Selecione', $idRepositorioSelecionado, $repositorios + ); + + $strLinkAjaxProcedimentoApensado = $objSessaoSEI->assinarLink( + 'controlador_ajax.php?acao_ajax=pen_apensados_auto_completar_expedir_procedimento' + ); + $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento' + . '&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas&idRepositorioEstrutura=1' + ); + break; + default: + throw new InfraException("Ação '" . $_GET['acao'] . "' não reconhecida."); + } + + $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento&acao=' . $_GET['acao']); +} catch (Exception $e) { + $objPaginaSEI->adicionarMensagem( + 'Falha no cadastro do relacionamento. Consulte o log do SEI para mais informações.', InfraPagina::$TIPO_MSG_ERRO + ); + throw new InfraException("Erro processando requisição de envio externo de processo", $e); +} + +$objPaginaSEI->montarDocType(); +$objPaginaSEI->abrirHtml(); +$objPaginaSEI->abrirHead(); +$objPaginaSEI->montarMeta(); +$objPaginaSEI->montarTitle(':: ' . $objPaginaSEI->getStrNomeSistema() . ' - ' . $strTitulo . ' ::'); +$objPaginaSEI->montarStyle(); + +?> + +montarJavaScript(); +?> + +fecharHead(); +$objPaginaSEI->abrirBody($strTitulo, 'onload="infraEfeitoTabelas(); inicializar();"'); +?> +
+ montarBarraComandosSuperior($arrComandos); ?> + +
+ + + + class="infraText" value="" /> +
+ +
+ +
+ + placeholder="Digite o nome/sigla da unidade e pressione ENTER para iniciar a pesquisa rápida" + value="" + tabindex="getProxTabDados() ?>" /> + + + Consultar organograma + +
+ + +
+ + + + +
+montarAreaDebug(); +$objPaginaSEI->fecharBody(); +$objPaginaSEI->fecharHtml(); +?> diff --git a/src/pen_map_restricao_envio_comp_digitais_listar.php b/src/pen_map_restricao_envio_comp_digitais_listar.php new file mode 100644 index 000000000..3eeb49f48 --- /dev/null +++ b/src/pen_map_restricao_envio_comp_digitais_listar.php @@ -0,0 +1,349 @@ +setBolLigado(false); +InfraDebug::getInstance()->setBolDebugInfra(true); +InfraDebug::getInstance()->limpar(); + +$objPaginaSEI = PaginaSEI::getInstance(); +$objSessaoSEI = SessaoSEI::getInstance(); + +$strProprioLink = 'controlador.php?acao=' + . $_GET['acao'] + . '&acao_origem=' + . $_GET['acao_origem'] + . '&acao_retorno=' + . $_GET['acao_retorno']; + +try { + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao('pen_map_restricao_envio_comp_digitais_listar'); + + $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); + + //-------------------------------------------------------------------------- + // Ações + if (array_key_exists('acao', $_GET)) { + $arrParam = array_merge($_GET, $_POST); + switch ($_GET['acao']) { + case 'pen_map_restricao_envio_comp_digitais_excluir': + if (array_key_exists('hdnInfraItensSelecionados', $arrParam) && !empty($arrParam['hdnInfraItensSelecionados'])) { + if (is_array($arrParam['hdnInfraItensSelecionados'])) { + $ids = explode(',', $arrParam['hdnInfraItensSelecionados']); + foreach ($ids as $key => $id) { + $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objDTO->setDblId($id); + $objPenRestricaoEnvioComponentesDigitaisRN->excluir($objDTO); + } + } else { + $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objDTO->setDblId($arrParam['hdnInfraItensSelecionados']); + $objPenRestricaoEnvioComponentesDigitaisRN->excluir($objDTO); + } + $objPaginaSEI->adicionarMensagem('Mapeamento excluído com sucesso.', InfraPagina::$TIPO_MSG_AVISO); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . $_GET['acao_retorno'] . '&acao_origem=' . $_GET['acao_origem'])); + exit(0); + } else { + throw new InfraException('Nenhum registro foi selecionado para executar esta ação'); + } + break; + + case 'pen_map_restricao_envio_comp_digitais_listar': + // Ação padrão desta tela + break; + + default: + throw new InfraException('Ação não permitida nesta tela'); + } + } + //-------------------------------------------------------------------------- + + $strTitulo = 'Lista dos Mapeamentos de Restrição de Envio de Componentes Digitais'; + + $strBotaoEspeciePadrao = ""; + if (SessaoSEI::getInstance()->verificarPermissao('pen_map_restricao_envio_comp_digitais_consultar')) { + $strBotaoEspeciePadrao = ''; + } + + if (SessaoSEI::getInstance()->verificarPermissao('pen_map_restricao_envio_comp_digitais_atribuir')) { + $bolPadraoNaoAtribuido = empty((new PenParametroRN())->getParametro("PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO")); + $strClassePendencia = ($bolPadraoNaoAtribuido) ? "pendencia" : ""; + $strAltPendencia = ($bolPadraoNaoAtribuido) ? "Pendente atribuição de espécie documental padrão para envio de processos" : ""; + $strBotaoEspeciePadrao = ''; + } + + $arrComandos = array(); + $btnPesquisar = ''; + $btnNovo = ''; + $btnExcluir = ''; + $btnImprimir = ''; + + $arrComandos = array($btnPesquisar, $strBotaoEspeciePadrao, $btnNovo, $btnExcluir, $btnImprimir); + $arrComandosFinal = array($btnNovo, $btnExcluir, $btnImprimir); + + $objPenRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retTodos(true); + $objPenRestricaoEnvioComponentesDigitaisDTO->setOrdDblId(InfraDTO::$TIPO_ORDENACAO_ASC); + + if (array_key_exists('nome_estrutura', $_POST) && !empty($_POST['nome_estrutura'])) { + $objPenRestricaoEnvioComponentesDigitaisDTO->setStrStrEstrutura('%' . $_POST['nome_estrutura'] . '%', InfraDTO::$OPER_LIKE); + } + + if (array_key_exists('nome_unidade', $_POST) && !empty($_POST['nome_unidade'])) { + $objPenRestricaoEnvioComponentesDigitaisDTO->setStrStrUnidadeRh('%' . $_POST['nome_unidade'] . '%', InfraDTO::$OPER_LIKE); + } + + $objPaginaSEI->prepararOrdenacao( + $objPenRestricaoEnvioComponentesDigitaisDTO, + 'Id', + InfraDTO::$TIPO_ORDENACAO_ASC + ); + $objPaginaSEI->prepararPaginacao($objPenRestricaoEnvioComponentesDigitaisDTO); + + $arrObjPenRestricaoEnvioComponentesDigitaisDTO = $objPenRestricaoEnvioComponentesDigitaisRN->listar( + $objPenRestricaoEnvioComponentesDigitaisDTO + ); + + $objPaginaSEI->processarPaginacao($objPenRestricaoEnvioComponentesDigitaisDTO); + $numRegistros = count($arrObjPenRestricaoEnvioComponentesDigitaisDTO); + + if (!empty($arrObjPenRestricaoEnvioComponentesDigitaisDTO)) { + + $strResultado = ''; + $strResultado .= '' . "\n"; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strCssTr = ''; + + $index = 0; + foreach ($arrObjPenRestricaoEnvioComponentesDigitaisDTO as $objPenRestricaoEnvioComponentesDigitaisDTO) { + + $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara'; + + $strResultado .= ''; + $strResultado .= ''; + + $strResultado .= ''; + $strResultado .= ''; + + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; + + $index++; + } + $strResultado .= '
' + . $objPaginaSEI->gerarCaptionTabela('estados do processo', $numRegistros) + . '
' . $objPaginaSEI->getThCheck() . 'ID do RepositórioNome do RepositórioID da UnidadeNome da UnidadeAções
' + . $objPaginaSEI->getTrCheck( + $index, + $objPenRestricaoEnvioComponentesDigitaisDTO->getDblId(), + '' + ) . '' + . $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdEstrutura() + . '' + . $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrEstrutura() + . '' + . $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadeRh() + . '' + . $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadeRh() + . ''; + + if ($objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_visualizar')) { + $strResultado .= 'Consultar Mapeamento'; + } + if ($objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_atualizar')) { + $strResultado .= 'Alterar Mapeamento'; + } + if ($objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_excluir')) { + $strResultado .= 'Excluir Mapeamento'; + } + + $strResultado .= '
'; + } +} catch (InfraException $e) { + $objPaginaSEI->processarExcecao($e); +} + +$objPaginaSEI->montarDocType(); +$objPaginaSEI->abrirHtml(); +$objPaginaSEI->abrirHead(); +$objPaginaSEI->montarMeta(); +$objPaginaSEI->montarTitle(':: ' . $objPaginaSEI->getStrNomeSistema() . ' - ' . $strTitulo . ' ::'); +$objPaginaSEI->montarStyle(); +?> + +montarJavaScript(); ?> + +fecharHead(); +$objPaginaSEI->abrirBody($strTitulo, 'onload="infraEfeitoTabelas();"'); +?> +
+ + montarBarraComandosSuperior($arrComandos); ?> + abrirAreaDados('5em'); ?> + + + + + + + + fecharAreaDados(); ?> + + 0) { ?> + montarAreaTabela($strResultado, $numRegistros); ?> + + + + montarBarraComandosSuperior($arrComandosFinal); ?> +
+fecharBody(); ?> +fecharHtml(); ?> diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php index ac88a25d9..049fc29f2 100755 --- a/src/rn/ExpedirProcedimentoRN.php +++ b/src/rn/ExpedirProcedimentoRN.php @@ -510,21 +510,46 @@ private function construirCabecalho(ExpedirProcedimentoDTO $objExpedirProcedimen } - private function enviarApenasComponentesDigitaisPendentes($numIdRepositorioDestino, $numIdUnidadeDestino){ - $bolResultado = false; - $arrObjEnviarDocumentosPendentes = ConfiguracaoModPEN::getInstance()->getValor("PEN", "EnviarApenasComponentesDigitaisPendentes", false); - $objParamEnviarDocumentosPendentes = !is_null($arrObjEnviarDocumentosPendentes) ? $arrObjEnviarDocumentosPendentes : false; + private function enviarApenasComponentesDigitaisPendentes($numIdRepositorioDestino, $numIdUnidadeDestino) + { + if (InfraUtil::compararVersoes(VERSAO_MODULO_PEN, ">=", "3.3.3")) { + $objPenRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retDblId(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdEstrutura(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrEstrutura(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUnidadeRh(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrUnidadeRh(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUsuario(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUnidade(); + $objPenRestricaoEnvioComponentesDigitaisDTO->setNumIdEstrutura($numIdRepositorioDestino); + $objPenRestricaoEnvioComponentesDigitaisDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + + $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); + $arrObjPenRestricaoEnvioComponentesDigitaisDTO = + $objPenRestricaoEnvioComponentesDigitaisRN->listar($objPenRestricaoEnvioComponentesDigitaisDTO); + if (!is_null($arrObjPenRestricaoEnvioComponentesDigitaisDTO) && count($arrObjPenRestricaoEnvioComponentesDigitaisDTO) > 0) { + $arrIdUnidadesParaEnvioPendentes = array(); + foreach ($arrObjPenRestricaoEnvioComponentesDigitaisDTO as $value) { + $arrIdUnidadesParaEnvioPendentes[] = $value->getNumIdUnidadeRh(); + } + + return in_array($numIdUnidadeDestino, $arrIdUnidadesParaEnvioPendentes); + } + } + $bolResultado = false; + $arrObjEnviarDocumentosPendentes = ConfiguracaoModPEN::getInstance()->getValor("PEN", "EnviarApenasComponentesDigitaisPendentes", false); + $objParamEnviarDocumentosPendentes = !is_null($arrObjEnviarDocumentosPendentes) ? $arrObjEnviarDocumentosPendentes : false; - if(is_array($objParamEnviarDocumentosPendentes)){ - if(array_key_exists($numIdRepositorioDestino, $objParamEnviarDocumentosPendentes)){ - $arrIdUnidadesParaEnvioPendentes = $objParamEnviarDocumentosPendentes[$numIdRepositorioDestino]; - $bolResultado = (is_array($arrIdUnidadesParaEnvioPendentes) && in_array($numIdUnidadeDestino, $arrIdUnidadesParaEnvioPendentes)); + if (is_array($objParamEnviarDocumentosPendentes)) { + if (array_key_exists($numIdRepositorioDestino, $objParamEnviarDocumentosPendentes)) { + $arrIdUnidadesParaEnvioPendentes = $objParamEnviarDocumentosPendentes[$numIdRepositorioDestino]; + $bolResultado = (is_array($arrIdUnidadesParaEnvioPendentes) && in_array($numIdUnidadeDestino, $arrIdUnidadesParaEnvioPendentes)); } - } elseif(is_bool($objParamEnviarDocumentosPendentes)) { - $bolResultado = $objParamEnviarDocumentosPendentes; + } elseif (is_bool($objParamEnviarDocumentosPendentes)) { + $bolResultado = $objParamEnviarDocumentosPendentes; } - return $bolResultado; + return $bolResultado; } private function construirProcesso($dblIdProcedimento, $arrIdProcessoApensado = null, $parObjMetadadosTramiteAnterior = null) diff --git a/src/rn/PenMapTipoProcedimentoRN.php b/src/rn/PenMapTipoProcedimentoRN.php new file mode 100644 index 000000000..337125b3f --- /dev/null +++ b/src/rn/PenMapTipoProcedimentoRN.php @@ -0,0 +1,99 @@ +getObjInfraIBanco()); + return $objBD->listar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro listando mapeamento externos.', $e); + } + } + + /** + * Método utilizado para alteração de dados. + * @param PenMapTipoProcedimentoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function alterarControlado(PenMapTipoProcedimentoDTO $objDTO) + { + try { + $objBD = new PenMapTipoProcedimentoBD(BancoSEI::getInstance()); + return $objBD->alterar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro alterando mapeamento de procedimento.', $e); + } + } + + /** + * Método utilizado para cadastro de dados. + * @param PenMapTipoProcedimentoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function cadastrarConectado(PenMapTipoProcedimentoDTO $objDTO) + { + try { + $objBD = new PenMapTipoProcedimentoBD(BancoSEI::getInstance()); + return $objBD->cadastrar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro cadastrando mapeamento de procedimento.', $e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param PenMapTipoProcedimentoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function excluirControlado(PenMapTipoProcedimentoDTO $objDTO) + { + try { + $objBD = new PenMapTipoProcedimentoBD(BancoSEI::getInstance()); + return $objBD->excluir($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro excluindo mapeamento de procedimento.', $e); + } + } + + /** + * Método utilizado para contagem de procedimento mapeadas + * @param PenMapTipoProcedimentoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function contarConectado(PenMapTipoProcedimentoDTO $objDTO) + { + try { + $objBD = new PenMapTipoProcedimentoBD($this->getObjInfraIBanco()); + return $objBD->contar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro contando mapeamento de procedimento.', $e); + } + } +} diff --git a/src/rn/PenOrgaoExternoRN.php b/src/rn/PenOrgaoExternoRN.php new file mode 100755 index 000000000..300a184c6 --- /dev/null +++ b/src/rn/PenOrgaoExternoRN.php @@ -0,0 +1,109 @@ +validarAuditarPermissao('pen_map_orgaos_externos_listar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->getObjInfraIBanco()); + return $objBD->listar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro listando orgãos externos.', $e); + } + } + + /** + * Método utilizado para alteração de dados. + * @param PenOrgaoExternoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function alterarControlado(PenOrgaoExternoDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_salvar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD(BancoSEI::getInstance()); + return $objBD->alterar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro alterando mapeamento de unidades.', $e); + } + } + + /** + * Método utilizado para cadastro de dados. + * @param PenOrgaoExternoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function cadastrarConectado(PenOrgaoExternoDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_salvar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD(BancoSEI::getInstance()); + return $objBD->cadastrar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro cadastrando mapeamento de unidades.', $e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param PenOrgaoExternoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function excluirControlado(PenOrgaoExternoDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_excluir', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD(BancoSEI::getInstance()); + return $objBD->excluir($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro excluindo mapeamento de unidades.', $e); + } + } + + /** + * Método utilizado para contagem de unidades mapeadas + * @param PenOrgaoExternoDTO $objDTO + * @return array + * @throws InfraException + */ + protected function contarConectado(PenOrgaoExternoDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_listar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->getObjInfraIBanco()); + return $objBD->contar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro contando mapeamento de unidades.', $e); + } + } +} diff --git a/src/rn/PenRestricaoEnvioComponentesDigitaisRN.php b/src/rn/PenRestricaoEnvioComponentesDigitaisRN.php new file mode 100644 index 000000000..155a5e9ad --- /dev/null +++ b/src/rn/PenRestricaoEnvioComponentesDigitaisRN.php @@ -0,0 +1,146 @@ +validarAuditarPermissao( + 'pen_map_restricao_envio_comp_digitais_listar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->getObjInfraIBanco()); + return $objBD->listar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro listando Unidades.', $e); + } + } + + /** + * Método utilizado para consulta de dados. + * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO + * @return array + * @throws InfraException + */ + protected function consultarControlado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_restricao_envio_comp_digitais_visualizar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD(BancoSEI::getInstance()); + return $objBD->consultar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro consultar mapeamento de unidades.', $e); + } + } + + /** + * Método utilizado para alteração de dados. + * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO + * @return array + * @throws InfraException + */ + protected function alterarControlado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_restricao_envio_comp_digitais_atualizar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD(BancoSEI::getInstance()); + return $objBD->alterar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro alterando mapeamento de unidades.', $e); + } + } + + /** + * Método utilizado para cadastro de dados. + * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO + * @return array + * @throws InfraException + */ + protected function cadastrarConectado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_restricao_envio_comp_digitais_salvar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD(BancoSEI::getInstance()); + return $objBD->cadastrar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro cadastrando mapeamento de unidades.', $e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO + * @return array + * @throws InfraException + */ + protected function excluirControlado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_restricao_envio_comp_digitais_excluir', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD(BancoSEI::getInstance()); + return $objBD->excluir($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro excluindo mapeamento de unidades.', $e); + } + } + + /** + * Método utilizado para contagem de unidades mapeadas + * @param PenRestricaoEnvioComponentesDigitaisDTO $objUnidadeDTO + * @return array + * @throws InfraException + */ + protected function contarConectado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) + { + try { + //Valida Permissao + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->getObjInfraIBanco()); + return $objBD->contar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro contando mapeamento de unidades.', $e); + } + } +} \ No newline at end of file diff --git a/src/scripts/sei_atualizar_versao_modulo_pen.php b/src/scripts/sei_atualizar_versao_modulo_pen.php index 7af578404..6abc78c34 100755 --- a/src/scripts/sei_atualizar_versao_modulo_pen.php +++ b/src/scripts/sei_atualizar_versao_modulo_pen.php @@ -270,7 +270,10 @@ protected function atualizarVersaoConectado() $this->instalarV3031(); case '3.3.1': $this->instalarV3032(); - + case '3.4.0': + $this->instalarV3040(); + case '3.4.1': + $this->instalarV3041(); break; // Ausência de [break;] proposital para realizar a atualização incremental de versões default: @@ -2539,8 +2542,91 @@ protected function instalarV3031() { $this->atualizarNumeroVersao("3.3.1"); } - protected function instalarV3032() { - $this->atualizarNumeroVersao("3.3.2"); +protected function instalarV3032() { + $this->atualizarNumeroVersao("3.3.2"); +} + + protected function instalarV3040() + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objMetaBD = $this->objMeta; + + $objMetaBD->criarTabela(array( + 'tabela' => 'md_pen_orgao_externo', + 'cols' => array( + 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'id_orgao_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'str_orgao_origem' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), + 'id_estrutura_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'str_estrutura_origem' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), + 'id_orgao_destino' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'str_orgao_destino' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), + 'sin_ativo' => array($objMetaBD->tipoTextoFixo(1), 'S'), + 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'dth_criacao' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO) + ), + 'pk' => array('cols' => array('id')), + 'fks' => array( + 'unidade' => array('nome' => 'fk_md_pen_mapeamento_orgao_externo', 'cols' => array('id_unidade', 'id_unidade')), + ) + )); + + # Criar sequencia para tramite em bloco + + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); + + //Sequência: md_pen_seq_tramita_em_bloco + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_orgao_externo'); + $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_orgao_externo', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_orgao_externo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $this->atualizarNumeroVersao("3.4.0"); + } + + protected function instalarV3041() + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objMetaBD = $this->objMeta; + + $objMetaBD->criarTabela(array( + 'tabela' => 'md_pen_map_tipo_processo', + 'cols' => array( + 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'id_map_orgao' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'id_processo_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'id_processo_destino' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), + 'sin_ativo' => array($objMetaBD->tipoTextoFixo(1), 'S'), + 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'dth_criacao' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO) + ), + 'pk' => array('cols' => array('id')), + 'fks' => array( + 'unidade' => array('nome' => 'fk_md_pen_mapeamento_tipo_processo', 'cols' => array('id_unidade', 'id_unidade')), + 'md_pen_orgao_externo' => array('nome' => 'fk_md_pen_mapeamento_orgao', 'cols' => array('id', 'id_map_orgao')), + ) + )); + + # Criar sequencia + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); + + //Sequência + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_orgao_externo'); + $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_map_tipo_procedimento', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_map_tipo_processo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $this->atualizarNumeroVersao("3.4.1"); } } diff --git a/src/scripts/sip_atualizar_versao_modulo_pen.php b/src/scripts/sip_atualizar_versao_modulo_pen.php index 0a0f180ee..7df95053d 100755 --- a/src/scripts/sip_atualizar_versao_modulo_pen.php +++ b/src/scripts/sip_atualizar_versao_modulo_pen.php @@ -1,7 +1,7 @@ instalarV3031(); case '3.3.1': $this->instalarV3032(); - + case '3.3.2': + $this->instalarV3033(); + case '3.4.0': + $this->instalarV3040(); + break; // Ausência de [break;] proposital para realizar a atualização incremental de versões default: $this->finalizar('VERSAO DO MÓDULO JÁ CONSTA COMO ATUALIZADA'); @@ -1832,6 +1836,104 @@ protected function instalarV3032() { $this->atualizarNumeroVersao("3.3.2"); } + + public function instalarV3033() + { + /* Corrige nome de menu de trâmite de documentos */ + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setStrRotulo('Administração'); + $objItemMenuDTO->setNumMaxRegistrosRetorno(1); + $objItemMenuDTO->retNumIdItemMenu(); + + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + + if (empty($objItemMenuDTO)) { + throw new InfraException('Menu "Administração" não foi localizado'); + } + + // Adicionar submenu + $this->logar('Atribuição de permissões do módulo ao perfil do SEI'); + + $numIdItemMenu = $this->criarMenu('Mapeamento de Envio Parcial', 40, $objItemMenuDTO->getNumIdItemMenu(), $numIdMenu, null, $numIdSistema); + $numIdRecurso = $this->criarRecurso('pen_map_restricao_envio_comp_digitais_listar', 'Listar Mapeamentos de Restrição de Envio de Componentes Digitais', $numIdSistema); + $numIdItemMenuRecuso = $this->criarMenu('Restrição de Envio de Componentes Digitais', 20, $numIdItemMenu, $numIdMenu, $numIdRecurso, $numIdSistema); + + $this->criarRecurso('pen_map_restricao_envio_comp_digitais_salvar', 'Salvar Mapeamentos de Restrição de Envio de Componentes Digitais', $numIdSistema); + $this->criarRecurso('pen_map_restricao_envio_comp_digitais_excluir', 'Excluir Mapeamentos de Restrição de Envio de Componentes Digitais', $numIdSistema); + $this->criarRecurso('pen_map_restricao_envio_comp_digitais_cadastrar', 'Cadastro de Mapeamentos de Restrição de Envio de Componentes Digitais', $numIdSistema); + $this->criarRecurso('pen_map_restricao_envio_comp_digitais_atualizar', 'Atualizar Mapeamentos de Restrição de Envio de Componentes Digitais', $numIdSistema); + $this->criarRecurso('pen_map_restricao_envio_comp_digitais_visualizar', 'Visualizar Mapeamentos de Restrição de Envio de Componentes Digitais', $numIdSistema); + + $numIdSistemaSei = $this->getNumIdSistema('SEI'); + $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_restricao_envio_comp_digitais_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_restricao_envio_comp_digitais_salvar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_restricao_envio_comp_digitais_cadastrar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_restricao_envio_comp_digitais_atualizar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_restricao_envio_comp_digitais_visualizar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_restricao_envio_comp_digitais_excluir'); + + $objDTO = new RelPerfilItemMenuDTO(); + $objBD = new RelPerfilItemMenuBD(BancoSip::getInstance()); + + $objDTO->setNumIdPerfil($numIdPerfilSeiAdministrador); + $objDTO->setNumIdSistema($numIdSistema); + $objDTO->setNumIdRecurso($numIdRecurso); + $objDTO->setNumIdMenu($numIdMenu); + $objDTO->setNumIdItemMenu($numIdItemMenuRecuso); + + if ($objBD->contar($objDTO) == 0) { + $objBD->cadastrar($objDTO); + } + // Nova versão + $this->atualizarNumeroVersao("3.3.3"); + } + + protected function instalarV3040() + { + /* Corrige nome de menu de trâmite de documentos */ + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setStrRotulo('Processo Eletrônico Nacional'); + $objItemMenuDTO->setNumMaxRegistrosRetorno(1); + $objItemMenuDTO->retNumIdItemMenu(); + + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + + if (empty($objItemMenuDTO)) { + throw new InfraException('Menu "Processo Eletrônico Nacional" não foi localizado'); + } + + // Adicionar submenu + $this->logar('Atribuição de permissões do módulo ao perfil do SEI'); + + // Administrao > Processo Eletrônico Nacional > Mapeamento de Tipos de Processo + $numIdItemMenu = $this->criarMenu('Mapeamento de Tipos de Processo', 40, $objItemMenuDTO->getNumIdItemMenu(), $numIdMenu, null, $numIdSistema); + + // Administrao > Processo Eletrônico Nacional > Órgãos Externos > Listar + $numIdRecurso = $this->criarRecurso('pen_map_orgaos_externos_listar', 'Listagem de relacionamento entre órgãos', $numIdSistema); + $this->criarMenu('Relacionamento entre Órgãos', 20, $numIdItemMenu, $numIdMenu, $numIdRecurso, $numIdSistema); + + $this->criarRecurso('pen_map_orgaos_externos_salvar', 'Salvar relacionamento entre órgãos', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_excluir', 'Excluir relacionamento entre órgãos', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_cadastrar', 'Cadastro de relacionamento entre órgãos', $numIdSistema); + + // Nova versão + $this->atualizarNumeroVersao("3.4.0"); + } } diff --git a/tests_sei3/funcional/phpunit.xml b/tests_sei3/funcional/phpunit.xml index 3c07c70d1..e967415e5 100755 --- a/tests_sei3/funcional/phpunit.xml +++ b/tests_sei3/funcional/phpunit.xml @@ -29,6 +29,8 @@ + @@ -69,6 +71,8 @@ + diff --git a/tests_sei3/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php b/tests_sei3/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php new file mode 100644 index 000000000..ca21bed85 --- /dev/null +++ b/tests_sei3/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php @@ -0,0 +1,182 @@ +test->byId("btnNovo")->click(); + } + + /** + * Selecionar repositório + * Selecionar unidade + * + * @param string $estrutura + * @param string $unidade + * @return void + */ + public function setarParametros($estrutura, $unidade) + { + $this->selectRepositorio($estrutura); + $this->selectUnidade($unidade); + } + + /** + * Seleciona repositório por sigla + * + * @param string $siglaRepositorio + * @return string + */ + private function selectRepositorio($siglaRepositorio) + { + $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); + + if(isset($siglaRepositorio)){ + $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); + } + + return $this->test->byId('selRepositorioEstruturas')->value(); + } + + /** + * Seleciona unidade por nome + * + * @param string $nomeUnidade + * @param ?string $hierarquia + * @return string + */ + private function selectUnidade($nomeUnidade, $hierarquia = null) + { + $this->unidadeInput = $this->test->byId('txtUnidade'); + $this->unidadeInput->clear(); + $this->unidadeInput->value($nomeUnidade); + $this->test->keys(Keys::ENTER); + $this->test->waitUntil(function($testCase) use($hierarquia) { + $bolExisteAlerta=null; + $nomeUnidade = $testCase->byId('txtUnidade')->value(); + if(!empty($hierarquia)){ + $nomeUnidade .= ' - ' . $hierarquia; + } + + try{ + $bolExisteAlerta=$this->alertTextAndClose(); + if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); + }catch(Exception $e){} + + $testCase->byPartialLinkText($nomeUnidade)->click(); + return true; + }, PEN_WAIT_TIMEOUT); + + return $this->unidadeInput->value(); + } + + /** + * Clicar no botão salvar + * + * @return void + */ + public function salvar() + { + $this->test->byId("btnSalvar")->click(); + } + + /** + * Seleciona botão editar da primeira linha de tabela + * + * @return void + */ + public function editar() + { + $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); + } + + /** + * Selecionar primeira checkbox de exclusão + * Seleciona botão excluir + * Seleciona botão de confirmação + * + * @return void + */ + public function selecionarExcluir() + { + $this->test->byXPath("(//input[@id='chkInfraItem0'])[1]")->click(); + $this->test->byId("btnExcluir")->click(); + $this->test->acceptAlert(); + } + + /** + * Lispar campo de pesquisa + * Colocar texto para pesquisa + * Clicar no botão pesquisar + * + * @param string $textoPesquisa + * @return void + */ + public function selecionarPesquisa($textoPesquisa) + { + $this->test->byId('txtNomeEstrutura')->clear(); + $this->test->byId('txtNomeEstrutura')->value($textoPesquisa); + $this->test->byId("btnPesquisar")->click(); + } + + /** + * Selecionar todos os intens para impressão + * + * @return void + */ + public function selecionarImprimir() + { + $this->test->byId("lnkInfraCheck")->click(); + // $this->test->byId("btnImprimir")->click(); + } + + /** + * Buscar item de tabela por nome + * + * @param string $nome + * @return string|null + */ + public function buscarNome($nome) + { + try { + $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); + return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? + $nomeSelecionado : + null; + } catch (Exception $ex) { + return null; + } + } + + /** + * Buscar mensagem de alerta da página + * + * @return string + */ + public function buscarMensagemAlerta() + { + $alerta = $this->test->alertText(); + return !empty($alerta) ? $alerta : ""; + } +} diff --git a/tests_sei3/funcional/tests/CenarioBaseTestCase.php b/tests_sei3/funcional/tests/CenarioBaseTestCase.php index cf14d36da..822e66cc9 100755 --- a/tests_sei3/funcional/tests/CenarioBaseTestCase.php +++ b/tests_sei3/funcional/tests/CenarioBaseTestCase.php @@ -38,6 +38,8 @@ class CenarioBaseTestCase extends Selenium2TestCase protected $paginaAnexarProcesso = null; protected $paginaCancelarDocumento = null; protected $paginaTramitarProcessoEmLote = null; + protected $paginaCadastroMapEnvioCompDigitais = null; + protected $paginaCadastroOrgaoExterno = null; public function setUpPage(): void { @@ -56,6 +58,8 @@ public function setUpPage(): void $this->paginaCancelarDocumento = new PaginaCancelarDocumento($this); $this->paginaMoverDocumento = new PaginaMoverDocumento($this); $this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this); + $this->paginaCadastroMapEnvioCompDigitais = new PaginaCadastroMapEnvioCompDigitais($this); + $this->paginaCadastroOrgaoExterno = new PaginaCadastroOrgaoExterno($this); $this->currentWindow()->maximize(); } @@ -192,6 +196,7 @@ protected function definirContextoTeste($nomeContexto) 'HIPOTESE_RESTRICAO_PADRAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_PADRAO'), 'ID_REP_ESTRUTURAS' => constant($nomeContexto . '_ID_REP_ESTRUTURAS'), 'ID_ESTRUTURA' => constant($nomeContexto . '_ID_ESTRUTURA'), + 'NOME_UNIDADE_ESTRUTURA' => constant($nomeContexto . '_UNIDADE_ESTRUTURAS'), 'HIPOTESE_RESTRICAO_INATIVA' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_INATIVA'), 'TIPO_PROCESSO_SIGILOSO' => constant($nomeContexto . '_TIPO_PROCESSO_SIGILOSO'), 'HIPOTESE_SIGILOSO' => constant($nomeContexto . '_HIPOTESE_SIGILOSO'), @@ -221,6 +226,18 @@ protected function acessarSistema($url, $siglaUnidade, $login, $senha) $this->url($url); PaginaLogin::executarAutenticacao($this, $login, $senha); PaginaTeste::selecionarUnidadeContexto($this, $siglaUnidade); + $this->url($url); + } + + protected function navegarPara($acao) + { + $this->frame(null); + $acao = "acao={$acao}"; + $xpath = "//a[contains(@href, '$acao')]"; + $link = $this->byXPath($xpath); + $url = $link->attribute('href'); + + $this->url($url); } protected function selecionarUnidadeInterna($unidadeDestino) diff --git a/tests_sei3/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php b/tests_sei3/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php new file mode 100644 index 000000000..5a2930041 --- /dev/null +++ b/tests_sei3/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php @@ -0,0 +1,179 @@ +definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->novo(); + $this->paginaCadastroMapEnvioCompDigitais->setarParametros( + self::$remetente['REP_ESTRUTURAS'], + self::$remetente['NOME_UNIDADE_ESTRUTURA'] + ); + $this->paginaCadastroMapEnvioCompDigitais->salvar(); + + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['NOME_UNIDADE_ESTRUTURA']); + + sleep(2); + $this->assertNotNull($nomeRepositorioCadastrado); + $this->assertNotNull($nomeUnidadeCadastrado); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamentos de restrição de envio de componentes digitais cadastrado com sucesso.'), + $mensagem + ); + } + + /** + * Teste para editar mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_editar_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$remetenteB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->editar(); + $this->paginaCadastroMapEnvioCompDigitais->setarParametros( + self::$remetenteB['REP_ESTRUTURAS'], + self::$remetenteB['NOME_UNIDADE_ESTRUTURA'] + ); + $this->paginaCadastroMapEnvioCompDigitais->salvar(); + + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['REP_ESTRUTURAS']); + $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['NOME_UNIDADE_ESTRUTURA']); + + sleep(1); + $this->assertNotNull($nomeRepositorioCadastrado); + $this->assertNotNull($nomeUnidadeCadastrado); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamentos de restrição de envio de componentes digitais atualizado com sucesso.'), + $mensagem + ); + } + + /** + * Teste para pesquisar mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_pesquisar_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + + // Buscar pesquisa vazia + $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS'] . 'B'); + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $this->assertNull($nomeRepositorioCadastrado); + + // Buscar pesquisa com sucesso + $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS']); + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $this->assertNotNull($nomeRepositorioCadastrado); + } + + /** + * Teste para imprimir mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_imprimir_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + + // Buscar pesquisa vazia + $this->paginaCadastroMapEnvioCompDigitais->selecionarImprimir(); + $this->assertTrue(true); + } + + /** + * Teste para excluir mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_excluir_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->selecionarExcluir(); + + sleep(1); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamento excluído com sucesso.'), + $mensagem + ); + } +} diff --git a/tests_sei4/funcional/phpunit.xml b/tests_sei4/funcional/phpunit.xml index 5db7c46c4..0551081ec 100755 --- a/tests_sei4/funcional/phpunit.xml +++ b/tests_sei4/funcional/phpunit.xml @@ -31,6 +31,8 @@ + @@ -71,6 +73,8 @@ + diff --git a/tests_sei4/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php b/tests_sei4/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php new file mode 100644 index 000000000..8abd0b2f0 --- /dev/null +++ b/tests_sei4/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php @@ -0,0 +1,182 @@ +test->byId("btnNovo")->click(); + } + + /** + * Selecionar repositório + * Selecionar unidade + * + * @param string $estrutura + * @param string $unidade + * @return void + */ + public function setarParametros($estrutura, $unidade) + { + $this->selectRepositorio($estrutura); + $this->selectUnidade($unidade); + } + + /** + * Seleciona repositório por sigla + * + * @param string $siglaRepositorio + * @return string + */ + private function selectRepositorio($siglaRepositorio) + { + $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); + + if(isset($siglaRepositorio)){ + $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); + } + + return $this->test->byId('selRepositorioEstruturas')->value(); + } + + /** + * Seleciona unidade por nome + * + * @param string $nomeUnidade + * @param ?string $hierarquia + * @return string + */ + private function selectUnidade($nomeUnidade, $hierarquia = null) + { + $this->unidadeInput = $this->test->byId('txtUnidade'); + $this->unidadeInput->clear(); + $this->unidadeInput->value($nomeUnidade); + $this->test->keys(Keys::ENTER); + $this->test->waitUntil(function($testCase) use($hierarquia) { + $bolExisteAlerta=null; + $nomeUnidade = $testCase->byId('txtUnidade')->value(); + if(!empty($hierarquia)){ + $nomeUnidade .= ' - ' . $hierarquia; + } + + try{ + $bolExisteAlerta=$this->alertTextAndClose(); + if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); + }catch(Exception $e){} + + $testCase->byPartialLinkText($nomeUnidade)->click(); + return true; + }, PEN_WAIT_TIMEOUT); + + return $this->unidadeInput->value(); + } + + /** + * Clicar no botão salvar + * + * @return void + */ + public function salvar() + { + $this->test->byId("btnSalvar")->click(); + } + + /** + * Seleciona botão editar da primeira linha de tabela + * + * @return void + */ + public function editar() + { + $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); + } + + /** + * Selecionar primeira checkbox de exclusão + * Seleciona botão excluir + * Seleciona botão de confirmação + * + * @return void + */ + public function selecionarExcluir() + { + $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); + $this->test->byId("btnExcluir")->click(); + $this->test->acceptAlert(); + } + + /** + * Lispar campo de pesquisa + * Colocar texto para pesquisa + * Clicar no botão pesquisar + * + * @param string $textoPesquisa + * @return void + */ + public function selecionarPesquisa($textoPesquisa) + { + $this->test->byId('txtNomeEstrutura')->clear(); + $this->test->byId('txtNomeEstrutura')->value($textoPesquisa); + $this->test->byId("btnPesquisar")->click(); + } + + /** + * Selecionar todos os intens para impressão + * + * @return void + */ + public function selecionarImprimir() + { + $this->test->byId("lnkInfraCheck")->click(); + // $this->test->byId("btnImprimir")->click(); + } + + /** + * Buscar item de tabela por nome + * + * @param string $nome + * @return string|null + */ + public function buscarNome($nome) + { + try { + $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); + return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? + $nomeSelecionado : + null; + } catch (Exception $ex) { + return null; + } + } + + /** + * Buscar mensagem de alerta da página + * + * @return string + */ + public function buscarMensagemAlerta() + { + $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); + return !empty($alerta->text()) ? $alerta->text() : ""; + } +} diff --git a/tests_sei4/funcional/tests/CenarioBaseTestCase.php b/tests_sei4/funcional/tests/CenarioBaseTestCase.php index cf14d36da..22cf7cbd6 100755 --- a/tests_sei4/funcional/tests/CenarioBaseTestCase.php +++ b/tests_sei4/funcional/tests/CenarioBaseTestCase.php @@ -38,6 +38,7 @@ class CenarioBaseTestCase extends Selenium2TestCase protected $paginaAnexarProcesso = null; protected $paginaCancelarDocumento = null; protected $paginaTramitarProcessoEmLote = null; + protected $paginaCadastroMapEnvioCompDigitais = null; public function setUpPage(): void { @@ -56,6 +57,7 @@ public function setUpPage(): void $this->paginaCancelarDocumento = new PaginaCancelarDocumento($this); $this->paginaMoverDocumento = new PaginaMoverDocumento($this); $this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this); + $this->paginaCadastroMapEnvioCompDigitais = new PaginaCadastroMapEnvioCompDigitais($this); $this->currentWindow()->maximize(); } @@ -192,6 +194,7 @@ protected function definirContextoTeste($nomeContexto) 'HIPOTESE_RESTRICAO_PADRAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_PADRAO'), 'ID_REP_ESTRUTURAS' => constant($nomeContexto . '_ID_REP_ESTRUTURAS'), 'ID_ESTRUTURA' => constant($nomeContexto . '_ID_ESTRUTURA'), + 'NOME_UNIDADE_ESTRUTURA' => constant($nomeContexto . '_UNIDADE_ESTRUTURAS'), 'HIPOTESE_RESTRICAO_INATIVA' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_INATIVA'), 'TIPO_PROCESSO_SIGILOSO' => constant($nomeContexto . '_TIPO_PROCESSO_SIGILOSO'), 'HIPOTESE_SIGILOSO' => constant($nomeContexto . '_HIPOTESE_SIGILOSO'), @@ -221,6 +224,18 @@ protected function acessarSistema($url, $siglaUnidade, $login, $senha) $this->url($url); PaginaLogin::executarAutenticacao($this, $login, $senha); PaginaTeste::selecionarUnidadeContexto($this, $siglaUnidade); + $this->url($url); + } + + protected function navegarPara($acao) + { + $this->frame(null); + $acao = "acao={$acao}"; + $xpath = "//a[contains(@href, '$acao')]"; + $link = $this->byXPath($xpath); + $url = $link->attribute('href'); + + $this->url($url); } protected function selecionarUnidadeInterna($unidadeDestino) diff --git a/tests_sei4/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php b/tests_sei4/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php new file mode 100644 index 000000000..3e7dca64a --- /dev/null +++ b/tests_sei4/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php @@ -0,0 +1,180 @@ +definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->novo(); + $this->paginaCadastroMapEnvioCompDigitais->setarParametros( + self::$remetente['REP_ESTRUTURAS'], + self::$remetente['NOME_UNIDADE_ESTRUTURA'] + ); + $this->paginaCadastroMapEnvioCompDigitais->salvar(); + + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['NOME_UNIDADE_ESTRUTURA']); + + sleep(1); + $this->assertNotNull($nomeRepositorioCadastrado); + $this->assertNotNull($nomeUnidadeCadastrado); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamentos de restrição de envio de componentes digitais cadastrado com sucesso.'), + $mensagem + ); + } + + /** + * Teste para editar mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_editar_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$remetenteB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->editar(); + $this->paginaCadastroMapEnvioCompDigitais->setarParametros( + self::$remetenteB['REP_ESTRUTURAS'], + self::$remetenteB['NOME_UNIDADE_ESTRUTURA'] + ); + $this->paginaCadastroMapEnvioCompDigitais->salvar(); + + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['REP_ESTRUTURAS']); + $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['NOME_UNIDADE_ESTRUTURA']); + + sleep(1); + $this->assertNotNull($nomeRepositorioCadastrado); + $this->assertNotNull($nomeUnidadeCadastrado); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamentos de restrição de envio de componentes digitais atualizado com sucesso.'), + $mensagem + ); + } + + /** + * Teste para pesquisar mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_pesquisar_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + + // Buscar pesquisa vazia + $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS'] . 'B'); + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $this->assertNull($nomeRepositorioCadastrado); + + // Buscar pesquisa com sucesso + $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS']); + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $this->assertNotNull($nomeRepositorioCadastrado); + } + + /** + * Teste para imprimir mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_imprimir_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + + // Buscar pesquisa vazia + $this->paginaCadastroMapEnvioCompDigitais->selecionarImprimir(); + $this->assertTrue(true); + } + + /** + * Teste para excluir mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_excluir_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->selecionarExcluir(); + + sleep(1); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamento excluído com sucesso.'), + $mensagem + ); + } +} diff --git a/tests_super/funcional/assets/arquivos/tipos_processos.csv b/tests_super/funcional/assets/arquivos/tipos_processos.csv new file mode 100644 index 000000000..9c6897541 --- /dev/null +++ b/tests_super/funcional/assets/arquivos/tipos_processos.csv @@ -0,0 +1,319 @@ +ID;Nome +100000381;"Acesso à Informação: Demanda do e-SIC" +100000347;"Acompanhamento Legislativo: Câmara dos Deputados" +100000348;"Acompanhamento Legislativo: Congresso Nacional" +100000349;"Acompanhamento Legislativo: Estadual/Distrital" +100000350;"Acompanhamento Legislativo: Municipal" +100000346;"Acompanhamento Legislativo: Senado Federal" +100000256;"Arrecadação: Cobrança" +100000257;"Arrecadação: Cumprimento de Ação Judicial" +100000258;"Arrecadação: Encaminhamento para Dívida Ativa" +100000259;"Arrecadação: Normatização Interna" +100000260;"Arrecadação: Notificação/Comunicado" +100000359;"Arrecadação: Parcelamento Administrativo" +100000261;"Arrecadação: Receita" +100000262;"Arrecadação: Regularização de Indébitos" +100000263;"Arrecadação: Restituição/Compensação" +100000264;"Arrecadação: Subsidiar Ação Judicial" +100000342;"Comunicação: Evento Institucional Público Externo" +100000345;"Comunicação: Evento Institucional Público Interno" +100000341;"Comunicação: Pedido de Apoio Institucional" +100000344;"Comunicação: Publicidade Institucional" +100000343;"Comunicação: Publicidade Legal" +100000265;"Contabilidade: Análise Contábil" +100000266;"Contabilidade: Conformidade de Gestão" +100000267;"Contabilidade: Contratos e Garantias" +100000269;"Contabilidade: DIRF" +100000270;"Contabilidade: Encerramento do Exercício" +100000271;"Contabilidade: Fechamento Contábil - Estoque" +100000272;"Contabilidade: Fechamento Contábil Patrimonial" +100000273;"Contabilidade: Manuais" +100000274;"Contabilidade: Normatização Interna" +100000275;"Contabilidade: Prestação de Contas" +100000307;"Convênios/Ajustes: Acompanhamento da Execução" +100000305;"Convênios/Ajustes: Formalização/Alteração com Repasse" +100000306;"Convênios/Ajustes: Formalização/Alteração sem Repasse" +100000360;"Corregedoria: Análise Prescricional de Processo" +100000364;"Corregedoria: Avaliação para Estabilidade" +100000303;"Corregedoria: Correição" +100000361;"Corregedoria: Investigação Preliminar" +100000327;"Corregedoria: Procedimento Geral" +100000363;"Corregedoria: Processo Administrativo Disciplinar" +100000362;"Corregedoria: Sindicância Punitiva" +100000382;"Demanda Externa: Cidadão (Pessoa Física)" +100000353;"Demanda Externa: Deputado Estadual/Distrital" +100000352;"Demanda Externa: Deputado Federal" +100000385;"Demanda Externa: Judiciário" +100000386;"Demanda Externa: Ministério Público Estadual" +100000387;"Demanda Externa: Ministério Público Federal" +100000356;"Demanda Externa: Orgãos Governamentais Estaduais" +100000355;"Demanda Externa: Orgãos Governamentais Federais" +100000357;"Demanda Externa: Orgãos Governamentais Municipais" +100000388;"Demanda Externa: Outras Entidades Privadas" +100000358;"Demanda Externa: Outros Orgãos Públicos" +100000351;"Demanda Externa: Senador" +100000354;"Demanda Externa: Vereador/Câmara Municipal" +100000413;"Ética: Análise de Conflito de Interesse" +100000412;"Ética: Processo de Apuração Ética" +100000276;"Finanças: Execução Financeira" +100000277;"Finanças: Normatização Interna" +100000241;"Finanças: Reembolso/Ressarcimento" +100000278;"Gestão da Informação: Arrecadação" +100000368;"Gestão da Informação: Avaliação/Destinação de Documentos" +100000409;"Gestão da Informação: Cadastro de Usuário Externo no SEI" +100000389;"Gestão da Informação: Controle de Malote" +100000365;"Gestão da Informação: Credenciamento de Segurança" +100000419;"Gestão da Informação: Gestão Documental" +100000366;"Gestão da Informação: Normatização Interna" +100000424;"Gestão da Informação: Recebimento de Processo Externo" +100000369;"Gestão da Informação: Reconstituição Documental" +100000367;"Gestão da Informação: Rol Anual de Informações Classificadas" +100000411;"Gestão da Informação: Segurança da Informação e Comunicações" +100000316;"Gestão de Contrato: Acompanhamento da Execução" +100000402;"Gestão de Contrato: Acréscimo Contratual" +100000403;"Gestão de Contrato: Alterações Contratuais Conjuntas" +100000309;"Gestão de Contrato: Aplicação de Sanção Contratual" +100000401;"Gestão de Contrato: Consulta à Procuradoria/Conjur" +100000311;"Gestão de Contrato: Execução de Garantia" +100000404;"Gestão de Contrato: Outras Alterações Contratuais não Relacionadas" +100000383;"Gestão de Contrato: Pagamento Direto a Terceiros" +100000312;"Gestão de Contrato: Processo de Pagamento" +100000313;"Gestão de Contrato: Prorrogação Contratual" +100000314;"Gestão de Contrato: Reajuste ou Repactuação Contratual" +100000315;"Gestão de Contrato: Rescisão Contratual" +100000310;"Gestão de Contrato: Revisão Contratual" +100000308;"Gestão de Contrato: Supressão Contratual" +100000373;"Gestão de Processos: Mapeamento e Modelagem" +100000372;"Gestão de Projetos: Planejamento e Execução" +100000384;"Gestão de TI: CITI" +100000375;"Gestão e Controle: Coordenação - Demandas Externas" +100000374;"Gestão e Controle: Coordenação - Demandas Internas" +100000340;"Gestão e Controle: Demandas de Órgãos de Controle" +100000339;"Gestão e Controle: Executar Auditoria Interna" +100000288;"Infraestrutura: Abastecimento de Ãgua e Esgoto" +100000418;"Infraestrutura: Apoio de Engenharia Civil" +100000290;"Infraestrutura: Fornecimento de Energia Elétrica" +100000329;"Licitação: Adesão a Ata de RP-Não Participante" +100000328;"Licitação: Adesão a Ata de RP-Participante" +100000408;"Licitação: Aplicação de Sanção decorrente de Procedimento Licitatório" +100000320;"Licitação: Concorrência" +100000321;"Licitação: Concorrência-Registro de Preço" +100000325;"Licitação: Concurso" +100000417;"Licitação: Consulta" +100000323;"Licitação: Convite" +100000331;"Licitação: Dispensa - Acima de R$ 8 mil" +100000330;"Licitação: Dispensa - Até R$ 8 mil" +100000332;"Licitação: Inexigibilidade" +100000326;"Licitação: Leilão" +100000304;"Licitação: Plano de Aquisições" +100000317;"Licitação: Pregão Eletrônico" +100000318;"Licitação: Pregão Eletrônico-Registro de Preço" +100000319;"Licitação: Pregão Presencial" +100000324;"Licitação: Regime Diferenciado de Contratação-RDC" +100000322;"Licitação: Tomada de Preços" +100000292;"Material: Desfazimento de Material de Consumo" +100000291;"Material: Desfazimento de Material Permanente" +100000294;"Material: Inventário de Material de Consumo" +100000295;"Material: Inventário de Material Permanente" +100000293;"Material: Movimentação de Material de Consumo" +100000391;"Material: Movimentação de Material Permanente" +100000279;"Orçamento: Acompanhamento de Despesa Mensal" +100000280;"Orçamento: Contingenciamento" +100000281;"Orçamento: Créditos Adicionais" +100000282;"Orçamento: Descentralização de Créditos" +100000283;"Orçamento: Manuais" +100000284;"Orçamento: Programação Orçamentária" +100000337;"Ouvidoria: Agradecimento ao Órgão" +100000334;"Ouvidoria: Crítica à atuação do Órgão" +100000335;"Ouvidoria: Denúncia contra a atuação do Órgão" +100000333;"Ouvidoria: Elogio à atuação do Órgão" +100000338;"Ouvidoria: Pedido de Informação" +100000336;"Ouvidoria: Reclamação à atuação do Órgão" +100000370;"Patrimônio: Cobrança de Acervo Bibliográfico" +100000371;"Patrimônio: Gestão de Acervo Bibliográfico" +100000296;"Patrimônio: Gestão de Bens Imóveis" +100000101;"Pessoal: Abono Permanência - Concessão" +100000405;"Pessoal: Abono Permanência - Revisão" +100000102;"Pessoal: Adicional de Férias (1/3 constitucional)" +100000103;"Pessoal: Adicional de Insalubridade" +100000104;"Pessoal: Adicional de Periculosidade" +100000105;"Pessoal: Adicional Noturno" +100000106;"Pessoal: Adicional por Atividade Penosa" +100000107;"Pessoal: Adicional por Serviço Extraordinário" +100000108;"Pessoal: Adicional por Tempo de Serviço" +100000109;"Pessoal: Afastamento para Atividade Desportiva" +100000110;"Pessoal: Afastamento para Curso de Formação" +100000111;"Pessoal: Afastamento para Depor" +100000112;"Pessoal: Afastamento para Exercer Mandato Eletivo" +100000116;"Pessoal: Afastamento para Pós-Graduação" +100000113;"Pessoal: Afastamento para Serviço Eleitoral (TRE)" +100000114;"Pessoal: Afastamento para Servir como Jurado" +100000118;"Pessoal: Afastamento para servir em Organismo Internacional" +100000119;"Pessoal: Ajuda de Custo com Mudança de Domicílio" +100000151;"Pessoal: Aposentadoria - Concessão" +100000120;"Pessoal: Aposentadoria - Contagem Tempo de Serviço" +100000121;"Pessoal: Aposentadoria - Pensão Temporária" +100000122;"Pessoal: Aposentadoria - Pensão Vitalícia" +100000406;"Pessoal: Aposentadoria - Revisão" +100000147;"Pessoal: Apresentação de Certificado de Curso" +100000123;"Pessoal: Assentamento Funcional do Servidor" +100000127;"Pessoal: Ausência em razão de Casamento" +100000128;"Pessoal: Ausência para Alistamento Eleitoral" +100000129;"Pessoal: Ausência para Doação de Sangue" +100000130;"Pessoal: Ausência por Falecimento de Familiar" +100000131;"Pessoal: Auxílio Acidente" +100000132;"Pessoal: Auxílio Alimentação/Refeição" +100000133;"Pessoal: Auxílio Assistência Pré-Escolar/Creche" +100000134;"Pessoal: Auxílio Doença" +100000135;"Pessoal: Auxílio Funeral" +100000136;"Pessoal: Auxílio Moradia" +100000137;"Pessoal: Auxílio Natalidade" +100000138;"Pessoal: Auxílio Reclusão" +100000139;"Pessoal: Auxílio-Transporte" +100000140;"Pessoal: Avaliação de Desempenho Individual" +100000141;"Pessoal: Avaliação de Desempenho Institucional" +100000142;"Pessoal: Avaliação de Estágio Probatório" +100000143;"Pessoal: Averbação de Tempo de Serviço" +100000144;"Pessoal: Bolsa de Estudo de Idioma Estrangeiro" +100000145;"Pessoal: Bolsa de Pós-Graduação" +100000146;"Pessoal: Cadastro de Dependente no Imposto de Renda" +100000148;"Pessoal: Cessão de Servidor para outro Órgão" +100000149;"Pessoal: CIPA" +100000150;"Pessoal: Coleta de Imagem de Assinatura" +100000152;"Pessoal: Concurso Público - Exames Admissionais" +100000153;"Pessoal: Concurso Público - Organização" +100000154;"Pessoal: Concurso Público - Provas e Títulos" +100000155;"Pessoal: Controle de Frequência/Abono de Falta" +100000156;"Pessoal: Controle de Frequência/Cumprir Hora Extra" +100000157;"Pessoal: Controle de Frequência/Folha de Ponto" +100000161;"Pessoal: Curso de Pós-Graduação" +100000158;"Pessoal: Curso no Exterior - com ônus" +100000414;"Pessoal: Curso no Exterior - ônus limitado" +100000415;"Pessoal: Curso no Exterior - sem ônus" +100000159;"Pessoal: Curso Promovido pela própria Instituição" +100000160;"Pessoal: Curso Promovido por outra Instituição" +100000162;"Pessoal: Delegação de Competência" +100000163;"Pessoal: Desconto da Contribuição para o INSS" +100000164;"Pessoal: Desconto de Contribuição Associativa" +100000165;"Pessoal: Desconto de Contribuição Sindical" +100000166;"Pessoal: Desconto de Empréstimo Consignado" +100000167;"Pessoal: Desconto de Pensão Alimentícia" +100000169;"Pessoal: Desconto do IRPF Retido na Fonte" +100000172;"Pessoal: Emissão de Certidões e Declarações" +100000173;"Pessoal: Emissão de Procuração" +100000174;"Pessoal: Encargo Patronal - Contribuição para INSS" +100000175;"Pessoal: Estágio - Dossiê do Estagiário" +100000176;"Pessoal: Estágio - Planejamento/Organização Geral" +100000177;"Pessoal: Estágio de Servidor no Brasil" +100000178;"Pessoal: Estágio de Servidor no Exterior" +100000179;"Pessoal: Exoneração de Cargo Efetivo" +100000181;"Pessoal: Falecimento de Servidor" +100000182;"Pessoal: Férias - Alteração" +100000183;"Pessoal: Férias - Interrupção" +100000184;"Pessoal: Férias - Solicitação" +100000185;"Pessoal: Ficha Financeira" +100000186;"Pessoal: Folha de Pagamento" +100000187;"Pessoal: Gratificação de Desempenho" +100000188;"Pessoal: Gratificação Natalina (Décimo Terceiro)" +100000189;"Pessoal: Gratificação por Encargo - Curso/Concurso" +100000190;"Pessoal: Horário de Expediente - Definição" +100000191;"Pessoal: Horário de Expediente - Escala de Plantão" +100000192;"Pessoal: Horário Especial - Familiar Deficiente" +100000193;"Pessoal: Horário Especial - Instrutor de Curso" +100000194;"Pessoal: Horário Especial - Servidor Deficiente" +100000195;"Pessoal: Horário Especial - Servidor Estudante" +100000196;"Pessoal: Indenização de Transporte (meio próprio)" +100000198;"Pessoal: Licença Adotante" +100000199;"Pessoal: Licença Gestante" +100000201;"Pessoal: Licença para Atividade Política" +100000202;"Pessoal: Licença para Capacitação" +100000203;"Pessoal: Licença para Mandato Classista" +100000204;"Pessoal: Licença para Serviço Militar" +100000205;"Pessoal: Licença para Tratamento da Própria Saúde" +100000211;"Pessoal: Licença para Tratar de Interesses Particulares" +100000200;"Pessoal: Licença Paternidade" +100000206;"Pessoal: Licença por Acidente em Serviço" +100000207;"Pessoal: Licença por Afastamento do Cônjuge" +100000208;"Pessoal: Licença por Doença em Pessoa da Família" +100000209;"Pessoal: Licença por Doença Profissional" +100000210;"Pessoal: Licença Prêmio por Assiduidade" +100000212;"Pessoal: Licenças por Aborto/Natimorto" +100000213;"Pessoal: Movimentação de Servidor" +100000214;"Pessoal: Movimento Reivindicatório" +100000215;"Pessoal: Negociação Sindical e Acordo Coletivo" +100000170;"Pessoal: Nomeação/Exoneração de Cargo Comissionado e Designação/Dispensa de Substituto" +100000217;"Pessoal: Normatização Interna" +100000218;"Pessoal: Ocupação de Imóvel Funcional" +100000219;"Pessoal: Orientações e Diretrizes Gerais" +100000220;"Pessoal: Pagamento de Provento" +100000221;"Pessoal: Pagamento de Remuneração" +100000222;"Pessoal: Penalidade Advertência" +100000223;"Pessoal: Penalidade Cassação de Aposentadoria" +100000224;"Pessoal: Penalidade Demissão de Cargo Efetivo" +100000225;"Pessoal: Penalidade Destituição Cargo em Comissão" +100000226;"Pessoal: Penalidade Disponibilidade" +100000227;"Pessoal: Penalidade Suspensão" +100000228;"Pessoal: Pensão por Morte de Servidor" +100000229;"Pessoal: Planejamento da Força de Trabalho" +100000407;"Pessoal: Plano de Capacitação" +100000230;"Pessoal: Prêmios de Reconhecimento" +100000231;"Pessoal: Prevenção de Acidentes no Trabalho" +100000232;"Pessoal: Progressão e Promoção (Quadro Efetivo)" +100000233;"Pessoal: Progressão e Promoção (Quadro Específico)" +100000234;"Pessoal: Provimento - Nomeação para Cargo Efetivo" +100000235;"Pessoal: Provimento - Nomeação para Cargo em Comissão" +100000236;"Pessoal: Provimento - por Aproveitamento" +100000237;"Pessoal: Provimento - por Readaptação" +100000238;"Pessoal: Provimento - por Recondução" +100000239;"Pessoal: Provimento - por Reintegração" +100000240;"Pessoal: Provimento - por Reversão" +100000242;"Pessoal: Relação com Conselho Profissional" +100000243;"Pessoal: Remoção a Pedido - Concurso Interno" +100000244;"Pessoal: Remoção a Pedido com Mudança de Sede" +100000245;"Pessoal: Remoção a Pedido para Acompanhar Cônjuge" +100000246;"Pessoal: Remoção a Pedido por Motivo de Saúde" +100000247;"Pessoal: Remoção a Pedido sem Mudança de Sede" +100000248;"Pessoal: Remoção de Ofício com Mudança de Sede" +100000249;"Pessoal: Remoção de Ofício sem Mudança de Sede" +100000250;"Pessoal: Requisição de Servidor Externo" +100000251;"Pessoal: Requisição de Servidor Interno" +100000400;"Pessoal: Ressarcimento ao Erário" +100000252;"Pessoal: Restruturação de Cargos e Funções" +100000253;"Pessoal: Retribuição por Cargo em Comissão" +100000254;"Pessoal: Salário-Família" +100000396;"Pessoal: Saúde - Atestado de Comparecimento" +100000395;"Pessoal: Saúde - Auxílio-Saúde GEAP" +100000394;"Pessoal: Saúde - Cadastro de Dependente Estudante no Auxílio-Saúde" +100000392;"Pessoal: Saúde - Exclusão de Auxílio-Saúde" +100000197;"Pessoal: Saúde - Inspeção Periódica" +100000410;"Pessoal: Saúde - Lançamento Mensal do Auxílio-Saúde no SIAPE" +100000393;"Pessoal: Saúde - Pagamento de Auxílio-Saúde" +100000398;"Pessoal: Saúde - Pagamento de Retroativo" +100000125;"Pessoal: Saúde - Plano de Saúde" +100000126;"Pessoal: Saúde - Prontuário Médico" +100000397;"Pessoal: Saúde - Ressarcimento ao Erário" +100000124;"Pessoal: Saúde - Solicitação de Auxílio-Saúde" +100000399;"Pessoal: Saúde e Qualidade de Vida no Trabalho" +100000255;"Pessoal: Subsidiar Ação Judicial" +100000289;"Pessoal: Vacância - Posse em Cargo Inacumulável" +100000416;"Planejamento Estratégico: Acompanhamento do Plano Operacional" +100000379;"Planejamento Estratégico: Elaboração do Plano Estratégico" +100000380;"Planejamento Estratégico: Elaboração do Plano Operacional" +100000377;"Planejamento Estratégico: Gestão de Risco" +100000376;"Planejamento Estratégico: Gestão do Plano Estratégico" +100000378;"Planejamento Estratégico: Inteligência Estratégica" +100000420;"Relações Internacionais: Composição de Delegação - com ônus" +100000421;"Relações Internacionais: Composição de Delegação - ônus limitado" +100000422;"Relações Internacionais: Composição de Delegação - sem ônus" +100000423;"Relações Internacionais: Cooperação Internacional" +100000297;"Segurança Institucional: Automação e Controle Predial" +100000299;"Segurança Institucional: Controle de Acesso/Garagem" +100000298;"Segurança Institucional: Controle de Acesso/Portaria" +100000300;"Segurança Institucional: Prevenção contra Incêndio" +100000301;"Segurança Institucional: Projeto contra Incêndio" +100000302;"Segurança Institucional: Serviço de Vigilância" +100000268;"Suprimento de Fundos: Concessão e Prestação de Contas" +100000390;"Suprimento de Fundos: Solicitação de Despesa" +100000285;"Viagem: Exterior - Prestação de Contas" +100000287;"Viagem: No País - Prestação de Contas" +100000286;"Viagem: Publicação de Boletim" diff --git a/tests_super/funcional/phpunit.xml b/tests_super/funcional/phpunit.xml index d2d5f939e..9d3c078cf 100644 --- a/tests_super/funcional/phpunit.xml +++ b/tests_super/funcional/phpunit.xml @@ -31,6 +31,8 @@ + @@ -71,6 +73,8 @@ + diff --git a/tests_super/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php b/tests_super/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php new file mode 100644 index 000000000..ecee9b4ed --- /dev/null +++ b/tests_super/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php @@ -0,0 +1,182 @@ +test->byId("btnNovo")->click(); + } + + /** + * Selecionar repositório + * Selecionar unidade + * + * @param string $estrutura + * @param string $unidade + * @return void + */ + public function setarParametros($estrutura, $unidade) + { + $this->selectRepositorio($estrutura); + $this->selectUnidade($unidade); + } + + /** + * Seleciona repositório por sigla + * + * @param string $siglaRepositorio + * @return string + */ + private function selectRepositorio($siglaRepositorio) + { + $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); + + if(isset($siglaRepositorio)){ + $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); + } + + return $this->test->byId('selRepositorioEstruturas')->value(); + } + + /** + * Seleciona unidade por nome + * + * @param string $nomeUnidade + * @param ?string $hierarquia + * @return string + */ + private function selectUnidade($nomeUnidade, $hierarquia = null) + { + $this->unidadeInput = $this->test->byId('txtUnidade'); + $this->unidadeInput->clear(); + $this->unidadeInput->value($nomeUnidade); + $this->test->keys(Keys::ENTER); + $this->test->waitUntil(function($testCase) use($hierarquia) { + $bolExisteAlerta=null; + $nomeUnidade = $testCase->byId('txtUnidade')->value(); + if(!empty($hierarquia)){ + $nomeUnidade .= ' - ' . $hierarquia; + } + + try{ + $bolExisteAlerta=$this->alertTextAndClose(); + if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); + }catch(Exception $e){} + + $testCase->byPartialLinkText($nomeUnidade)->click(); + return true; + }, PEN_WAIT_TIMEOUT); + + return $this->unidadeInput->value(); + } + + /** + * Clicar no botão salvar + * + * @return void + */ + public function salvar() + { + $this->test->byId("btnSalvar")->click(); + } + + /** + * Seleciona botão editar da primeira linha de tabela + * + * @return void + */ + public function editar() + { + $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); + } + + /** + * Selecionar primeira checkbox de exclusão + * Seleciona botão excluir + * Seleciona botão de confirmação + * + * @return void + */ + public function selecionarExcluir() + { + $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); + $this->test->byId("btnExcluir")->click(); + $this->test->acceptAlert(); + } + + /** + * Lispar campo de pesquisa + * Colocar texto para pesquisa + * Clicar no botão pesquisar + * + * @param string $textoPesquisa + * @return void + */ + public function selecionarPesquisa($textoPesquisa) + { + $this->test->byId('txtNomeEstrutura')->clear(); + $this->test->byId('txtNomeEstrutura')->value($textoPesquisa); + $this->test->byId("btnPesquisar")->click(); + } + + /** + * Selecionar todos os intens para impressão + * + * @return void + */ + public function selecionarImprimir() + { + $this->test->byId("lnkInfraCheck")->click(); + // $this->test->byId("btnImprimir")->click(); + } + + /** + * Buscar item de tabela por nome + * + * @param string $nome + * @return string|null + */ + public function buscarNome($nome) + { + try { + $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); + return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? + $nomeSelecionado : + null; + } catch (Exception $ex) { + return null; + } + } + + /** + * Buscar mensagem de alerta da página + * + * @return string + */ + public function buscarMensagemAlerta() + { + $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); + return !empty($alerta->text()) ? $alerta->text() : ""; + } +} diff --git a/tests_super/funcional/src/paginas/PaginaCadastroOrgaoExterno.php b/tests_super/funcional/src/paginas/PaginaCadastroOrgaoExterno.php new file mode 100755 index 000000000..97f91f762 --- /dev/null +++ b/tests_super/funcional/src/paginas/PaginaCadastroOrgaoExterno.php @@ -0,0 +1,121 @@ +selectRepositorio('RE CGPRO', 'Origem'); + $this->selectUnidade('Fabrica-org2', 'Origem'); + $this->selectRepositorio('RE CGPRO', 'Destino'); + $this->selectUnidade('Fabrica-org1', 'Destino'); + $this->salvar(); + } + + public function novoMapeamentoOrgaoExterno() + { + $this->selectRepositorio('RE CGPRO', 'Origem'); + $this->selectUnidade('Fabrica-org2', 'Origem'); + $this->selectUnidade('Teste', 'Destino'); + $this->salvar(); + } + + /** + * Seleciona repositório por sigla + * + * @param string $siglaRepositorio + * @return string + */ + private function selectRepositorio($siglaRepositorio, $origemDestino) + { + $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas' . $origemDestino)); + + if(isset($siglaRepositorio)){ + $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); + } + + return $this->test->byId('selRepositorioEstruturas' . $origemDestino)->value(); + } + + /** + * Seleciona unidade por nome + * + * @param string $nomeUnidade + * @param ?string $hierarquia + * @return string + */ + private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) + { + $this->unidadeInput = $this->test->byId('txtUnidade' . $origemDestino); + $this->unidadeInput->value($nomeUnidade); + $this->test->keys(Keys::ENTER); + $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { + $bolExisteAlerta=null; + $nomeUnidade = $testCase->byId('txtUnidade' . $origemDestino)->value(); + if(!empty($hierarquia)){ + $nomeUnidade .= ' - ' . $hierarquia; + } + + try{ + $bolExisteAlerta=$this->alertTextAndClose(); + if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); + }catch(Exception $e){ + } + $testCase->byPartialLinkText($nomeUnidade)->click(); + return true; + }, PEN_WAIT_TIMEOUT); + + return $this->unidadeInput->value(); + } + + public function abrirSelecaoDeArquivoParaImportacao() + { + $this->test->byId('importarCsvButton')->click(); + $fileChooser = $this->test->byId('importArquivoCsv'); + $this->test->waitUntil(function ($testCase) use ($fileChooser) { + $fileChooser + ->sendKeys('/opt/sei/web/modulosmod-sei-pen/tests_super/funcional/assets/arquivos/tipos_processos.csv') + ->keys(Keys::ENTER); + },PEN_WAIT_TIMEOUT); + $this->test->waitUntil(function($testCase) { + return true; + }); + } + + /** + * Description + * @return void + */ + public function novoMapOrgao() + { + $this->test->byId("btnNovo")->click(); + } + + /** + * Description + * @return void + */ + private function salvar() + { + $this->test->byId("btnSalvar")->click(); + } +} diff --git a/tests_super/funcional/tests/CenarioBaseTestCase.php b/tests_super/funcional/tests/CenarioBaseTestCase.php index 0d31d324f..77f787354 100755 --- a/tests_super/funcional/tests/CenarioBaseTestCase.php +++ b/tests_super/funcional/tests/CenarioBaseTestCase.php @@ -38,6 +38,8 @@ class CenarioBaseTestCase extends Selenium2TestCase protected $paginaAnexarProcesso = null; protected $paginaCancelarDocumento = null; protected $paginaTramitarProcessoEmLote = null; + protected $paginaCadastroMapEnvioCompDigitais = null; + protected $paginaCadastroOrgaoExterno = null; protected $paginaMapeamentoUnidade = null; public function setUpPage(): void @@ -57,6 +59,8 @@ public function setUpPage(): void $this->paginaCancelarDocumento = new PaginaCancelarDocumento($this); $this->paginaMoverDocumento = new PaginaMoverDocumento($this); $this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this); + $this->paginaCadastroMapEnvioCompDigitais = new PaginaCadastroMapEnvioCompDigitais($this); + $this->paginaCadastroOrgaoExterno = new PaginaCadastroOrgaoExterno($this); $this->paginaMapeamentoUnidade = new PaginaMapeamentoUnidade($this); $this->currentWindow()->maximize(); } @@ -194,6 +198,7 @@ protected function definirContextoTeste($nomeContexto) 'HIPOTESE_RESTRICAO_PADRAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_PADRAO'), 'ID_REP_ESTRUTURAS' => constant($nomeContexto . '_ID_REP_ESTRUTURAS'), 'ID_ESTRUTURA' => constant($nomeContexto . '_ID_ESTRUTURA'), + 'NOME_UNIDADE_ESTRUTURA' => constant($nomeContexto . '_UNIDADE_ESTRUTURAS'), 'HIPOTESE_RESTRICAO_INATIVA' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_INATIVA'), 'TIPO_PROCESSO_SIGILOSO' => constant($nomeContexto . '_TIPO_PROCESSO_SIGILOSO'), 'HIPOTESE_SIGILOSO' => constant($nomeContexto . '_HIPOTESE_SIGILOSO'), @@ -223,6 +228,18 @@ protected function acessarSistema($url, $siglaUnidade, $login, $senha) $this->url($url); PaginaLogin::executarAutenticacao($this, $login, $senha); PaginaTeste::selecionarUnidadeContexto($this, $siglaUnidade); + $this->url($url); + } + + protected function navegarPara($acao) + { + $this->frame(null); + $acao = "acao={$acao}"; + $xpath = "//a[contains(@href, '$acao')]"; + $link = $this->byXPath($xpath); + $url = $link->attribute('href'); + + $this->url($url); } protected function selecionarUnidadeInterna($unidadeDestino) diff --git a/tests_super/funcional/tests/MapeamentoOrgaoExterno.php b/tests_super/funcional/tests/MapeamentoOrgaoExterno.php new file mode 100755 index 000000000..4fece0beb --- /dev/null +++ b/tests_super/funcional/tests/MapeamentoOrgaoExterno.php @@ -0,0 +1,57 @@ +definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); + $this->navegarPara('pen_map_orgaos_externos_listar'); + $this->paginaCadastroOrgaoExterno->novoMapOrgao(); + $this->paginaCadastroOrgaoExterno->novoMapeamentoOrgaoExterno(); + + $this->assertTrue(true); + } + + /** + * @return void + * + * @depends test_novo_mapeamento_orgao_externo + */ + public function test_importar_csv() + { + // $this->paginaCadastroOrgaoExterno->createFileToOpen(); + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); + $this->navegarPara('pen_map_orgaos_externos_listar'); + $this->paginaCadastroOrgaoExterno->abrirSelecaoDeArquivoParaImportacao(); + + sleep(10); + + $this->assertTrue(true); + + } +} diff --git a/tests_super/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php b/tests_super/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php new file mode 100644 index 000000000..3e7dca64a --- /dev/null +++ b/tests_super/funcional/tests/MapeamentoRestricaoEnvioComponentesDigitaisTest.php @@ -0,0 +1,180 @@ +definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->novo(); + $this->paginaCadastroMapEnvioCompDigitais->setarParametros( + self::$remetente['REP_ESTRUTURAS'], + self::$remetente['NOME_UNIDADE_ESTRUTURA'] + ); + $this->paginaCadastroMapEnvioCompDigitais->salvar(); + + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['NOME_UNIDADE_ESTRUTURA']); + + sleep(1); + $this->assertNotNull($nomeRepositorioCadastrado); + $this->assertNotNull($nomeUnidadeCadastrado); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamentos de restrição de envio de componentes digitais cadastrado com sucesso.'), + $mensagem + ); + } + + /** + * Teste para editar mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_editar_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$remetenteB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->editar(); + $this->paginaCadastroMapEnvioCompDigitais->setarParametros( + self::$remetenteB['REP_ESTRUTURAS'], + self::$remetenteB['NOME_UNIDADE_ESTRUTURA'] + ); + $this->paginaCadastroMapEnvioCompDigitais->salvar(); + + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['REP_ESTRUTURAS']); + $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['NOME_UNIDADE_ESTRUTURA']); + + sleep(1); + $this->assertNotNull($nomeRepositorioCadastrado); + $this->assertNotNull($nomeUnidadeCadastrado); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamentos de restrição de envio de componentes digitais atualizado com sucesso.'), + $mensagem + ); + } + + /** + * Teste para pesquisar mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_pesquisar_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + + // Buscar pesquisa vazia + $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS'] . 'B'); + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $this->assertNull($nomeRepositorioCadastrado); + + // Buscar pesquisa com sucesso + $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS']); + $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); + $this->assertNotNull($nomeRepositorioCadastrado); + } + + /** + * Teste para imprimir mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_imprimir_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + + // Buscar pesquisa vazia + $this->paginaCadastroMapEnvioCompDigitais->selecionarImprimir(); + $this->assertTrue(true); + } + + /** + * Teste para excluir mapeamento de componentes digitais + * + * @group mapeamento + * + * @return void + */ + public function test_excluir_mapeamento_componentes_digitais() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->navegarPara('pen_map_restricao_envio_comp_digitais_listar'); + $this->paginaCadastroMapEnvioCompDigitais->selecionarExcluir(); + + sleep(1); + $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); + $this->assertStringContainsString( + utf8_encode('Mapeamento excluído com sucesso.'), + $mensagem + ); + } +}