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();"');
+?>
+
+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 .= '' . $objPagina->gerarCaptionTabela(PEN_PAGINA_TITULO, $numRegistros) . '';
+
+ $strResultado .= '';
+ $strResultado .= '' . $objPagina->getThCheck() . ' | ' . "\n";
+ $strResultado .= '' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'ID Origem', 'IdOrgaoOrigem', $respObjPenOrgaoExternoDTO) . ' | ' . "\n";
+ $strResultado .= '' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'Órgão Origem', 'OrgaoOrigem', $respObjPenOrgaoExternoDTO) . ' | ' . "\n";
+ $strResultado .= '' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'ID Destino', 'IdOrgaoDestino', $respObjPenOrgaoExternoDTO) . ' | ' . "\n";
+ $strResultado .= '' . $objPagina->getThOrdenacao($objPenOrgaoExternoDTO, 'Órgão Destino', 'OrgaoDestino', $respObjPenOrgaoExternoDTO) . ' | ' . "\n";
+ $strResultado .= 'Ações | ' . "\n";
+ $strResultado .= '
' . "\n";
+ $strCssTr = '';
+
+ $index = 0;
+ foreach ($respObjPenOrgaoExternoDTO as $objPenOrgaoExternoDTO) {
+ $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara';
+
+ $strResultado .= '';
+ $strResultado .= '' . $objPagina->getTrCheck($index, $objPenOrgaoExternoDTO->getDblId(), '') . ' | ';
+ $strResultado .= '' . $objPenOrgaoExternoDTO->getNumIdOrgaoOrigem() . ' | ';
+ $strResultado .= '' . $objPenOrgaoExternoDTO->getStrOrgaoOrigem() . ' | ';
+ $strResultado .= '' . $objPenOrgaoExternoDTO->getNumIdOrgaoDestino() . ' | ';
+ $strResultado .= '' . $objPenOrgaoExternoDTO->getStrOrgaoDestino() . ' | ';
+ $strResultado .= '';
+
+ if ($objSessao->verificarPermissao('pen_map_orgaos_externos_excluir')) {
+ $strResultado .= ''
+ . ''
+ . '';
+ $strResultado .= ''
+ . ''
+ . '';
+ }
+
+ $strResultado .= ' | ';
+ $strResultado .= '
' . "\n";
+
+ $index++;
+ }
+ $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();"');
+?>
+
+
+
+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();"');
+?>
+
+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 .= ''
+ . $objPaginaSEI->gerarCaptionTabela('estados do processo', $numRegistros)
+ . '';
+ $strResultado .= '';
+ $strResultado .= '' . $objPaginaSEI->getThCheck() . ' | ' . "\n";
+ $strResultado .= 'ID do Repositório | ' . "\n";
+ $strResultado .= 'Nome do Repositório | ' . "\n";
+ $strResultado .= 'ID da Unidade | ' . "\n";
+ $strResultado .= 'Nome da Unidade | ' . "\n";
+ $strResultado .= 'Ações | ' . "\n";
+ $strResultado .= '
' . "\n";
+ $strCssTr = '';
+
+ $index = 0;
+ foreach ($arrObjPenRestricaoEnvioComponentesDigitaisDTO as $objPenRestricaoEnvioComponentesDigitaisDTO) {
+
+ $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara';
+
+ $strResultado .= '';
+ $strResultado .= ''
+ . $objPaginaSEI->getTrCheck(
+ $index,
+ $objPenRestricaoEnvioComponentesDigitaisDTO->getDblId(),
+ ''
+ ) . ' | ';
+
+ $strResultado .= ''
+ . $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdEstrutura()
+ . ' | ';
+ $strResultado .= ''
+ . $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrEstrutura()
+ . ' | ';
+
+ $strResultado .= ''
+ . $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadeRh()
+ . ' | ';
+ $strResultado .= ''
+ . $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadeRh()
+ . ' | ';
+ $strResultado .= '';
+
+ if ($objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_visualizar')) {
+ $strResultado .= '';
+ }
+ if ($objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_atualizar')) {
+ $strResultado .= '';
+ }
+ if ($objSessaoSEI->verificarPermissao('pen_map_restricao_envio_comp_digitais_excluir')) {
+ $strResultado .= '';
+ }
+
+ $strResultado .= ' | ';
+ $strResultado .= '
' . "\n";
+
+ $index++;
+ }
+ $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();"');
+?>
+
+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
+ );
+ }
+}