diff --git a/src/PENIntegracao.php b/src/PENIntegracao.php index 1b71c3043..a23096266 100755 --- a/src/PENIntegracao.php +++ b/src/PENIntegracao.php @@ -1,7 +1,7 @@ '; } + + // Reenvio externo de processos + $bolAcaoReenviarProcesso = $objSessaoSEI->verificarPermissao('pen_reenviar_processo'); + if ($bolAcaoReenviarProcesso && ($objAtividadeDTO && $objAtividadeDTO->getNumIdTarefa() == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO)) && $objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO) { + $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); + $strAcoesProcedimento .= 'Reenvio Externo de Processo'; + } return array($strAcoesProcedimento); } @@ -477,6 +484,10 @@ public function processarControlador($strAcao) case 'pen_expedir_lote_listar': require_once dirname(__FILE__) . '/pen_expedir_lote_listar.php'; break; + + case 'pen_reenviar_processo': + require_once dirname(__FILE__) . '/pen_reenviar_processo.php'; + break; default: return false; diff --git a/src/imagens/pen_enviar.svg b/src/imagens/pen_enviar.svg new file mode 100644 index 000000000..e700993dd --- /dev/null +++ b/src/imagens/pen_enviar.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + diff --git a/src/int/ProcessoEletronicoINT.php b/src/int/ProcessoEletronicoINT.php index 8729da4b9..ec70bf064 100755 --- a/src/int/ProcessoEletronicoINT.php +++ b/src/int/ProcessoEletronicoINT.php @@ -120,7 +120,7 @@ public static function getCaminhoIcone($imagem, $relPath = null) { case '/pen_expedir_procedimento.gif': // return '/infra_css/svg/upload.svg'; // return 'svg/arquivo_mapeamento_assunto.svg'; - return 'modulos/' . $strModulo . '/imagens/pen_enviar.png'; + return 'modulos/' . $strModulo . '/imagens/pen_enviar.svg'; break; case '/pen_consultar_recibos.png': // return '/infra_css/svg/pesquisar.svg'; diff --git a/src/pen_procedimento_expedir_validar.php b/src/pen_procedimento_expedir_validar.php index f474e01ed..98b598892 100755 --- a/src/pen_procedimento_expedir_validar.php +++ b/src/pen_procedimento_expedir_validar.php @@ -39,6 +39,12 @@ $objInfraException->adicionarValidacao('Informe Unidade de destino', $strProtocoloFormatado); } + if (isset($_POST['penReenviarProcesso'])) { + $objProcedimentoDTO->setBolPenReenviarProcesso($_POST['penReenviarProcesso']); + } else { + $objProcedimentoDTO->setBolPenReenviarProcesso(false); + } + if(!$objInfraException->contemValidacoes()) { $objProcedimentoDTO->setArrObjDocumentoDTO($objExpedirProcedimentosRN->listarDocumentos($dblIdProcedimento)); $objProcedimentoDTO->setArrObjParticipanteDTO($objExpedirProcedimentosRN->listarInteressados($dblIdProcedimento)); diff --git a/src/pen_reenviar_processo.php b/src/pen_reenviar_processo.php new file mode 100644 index 000000000..2c203520d --- /dev/null +++ b/src/pen_reenviar_processo.php @@ -0,0 +1,553 @@ +setBolLigado(true); + //InfraDebug::getInstance()->setBolDebugInfra(true); + //InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + + $objSessaoSEI = SessaoSEI::getInstance(); + $objPaginaSEI = PaginaSEI::getInstance(); + + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao($_GET['acao']); + + $strParametros = ''; + $bolErrosValidacao = false; + $executarExpedicao = false; + $arrComandos = array(); + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + + $idProcedimento = filter_var($_GET['id_procedimento'], FILTER_SANITIZE_NUMBER_INT); + $strDiretorioModulo = PENIntegracao::getDiretorio(); + + if(!$idProcedimento){ + throw new InfraException('Processo não informado.'); + } + + if ($idProcedimento) { + $strParametros .= '&id_procedimento=' . $idProcedimento; + } + + if (isset($_GET['arvore'])) { + $objPaginaSEI->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore=' . $_GET['arvore']; + } + + if (isset($_GET['executar'])) { + $executarExpedicao = filter_var($_GET['executar'], FILTER_VALIDATE_BOOLEAN); + } + + $strLinkValidacao = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $_GET['acao'] . '&acao_origem=' . $_GET['acao'] . $strParametros)); + $strLinkProcedimento = $objSessaoSEI->assinarLink('controlador.php?acao=procedimento_trabalhar&acao_origem=procedimento_controlar&acao_retorno=procedimento_controlar&id_procedimento='.$idProcedimento); + + switch ($_GET['acao']) { + + case 'pen_reenviar_processo': + $strTitulo = 'Reenvio Externo de Processo'; + $arrComandos[] = ''; + $arrComandos[] = ''; + + //Carregar dados do procedimento no primeiro acesso à página + if (!isset($_POST['hdnIdProcedimento'])) { + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoDTO = $objExpedirProcedimentosRN->consultarProcedimento($idProcedimento); + $numIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); + $strProtocoloProcedimentoFormatado = $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); + } + + // + $procedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); + $procedimentoAndamentoDTO->retNumIdEstruturaDestino(); + $procedimentoAndamentoDTO->retNumIdRepositorioDestino(); + $procedimentoAndamentoDTO->setDistinct(true); + $procedimentoAndamentoDTO->setDblIdProcedimento($idProcedimento); + + $procedimentoAndamentoRN = new ProcedimentoAndamentoRN(); + $arrObjProcedimentoAndamentoDTO = $procedimentoAndamentoRN->listar($procedimentoAndamentoDTO); + $objProcedimentoAndamentoDTO = $arrObjProcedimentoAndamentoDTO[0]; + + $numIdRepositorio = $objProcedimentoAndamentoDTO->getNumIdRepositorioDestino(); + $numIdUnidadeDestino = $objProcedimentoAndamentoDTO->getNumIdEstruturaDestino(); + + $objConecaoWebServerRN = new ProcessoEletronicoRN(); + $arrObjEstruturas = $objConecaoWebServerRN->consultarEstrutura($numIdRepositorio, $numIdUnidadeDestino, false); + $strNomeUnidadeDestino = $arrObjEstruturas->getStrNome(); + + //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'); + + //Preparação dos dados para montagem da tela de expedição de processos + $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); + $motivosDeUrgencia = $objExpedirProcedimentosRN->consultarMotivosUrgencia(); + + $idRepositorioSelecionado = (isset($numIdRepositorio)) ? $numIdRepositorio : ''; + $strItensSelRepositorioEstruturas = InfraINT::montarSelectArray('', 'Selecione', $idRepositorioSelecionado, $repositorios); + + $idMotivosUrgenciaSelecionado = (isset($idMotivosUrgenciaSelecionado)) ? $idMotivosUrgenciaSelecionado : ''; + $strItensSelMotivosUrgencia = InfraINT::montarSelectArray('', 'Selecione', $idMotivosUrgenciaSelecionado, $motivosDeUrgencia); + + $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento&acao=' . $_GET['acao']); + $strLinkAjaxProcedimentoApensado = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_apensados_auto_completar_expedir_procedimento'); + + $strLinkProcedimentosApensadosSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_apensados_selecionar_expedir_procedimento&tipo_selecao=2&id_object=objLupaProcedimentosApensados&id_procedimento='.$idProcedimento.''); + $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas&idRepositorioEstrutura=1'); + + $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."); + } + + if(isset($_POST['sbmExpedir'])) { + $numVersao = $objPaginaSEI->getNumVersao(); + $numIdMotivoUrgente = $_POST['selMotivosUrgencia']; + $numIdProcedimento = $_POST['hdnIdProcedimento']; + $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH(); + $boolSinUrgente = $objPaginaSEI->getCheckbox($_POST['chkSinUrgente'], true, false); + $arrIdProcedimentosApensados = $objPaginaSEI->getArrValuesSelect($_POST['hdnProcedimentosApensados']); + echo "\n"; + echo ""; + + $strTituloPagina = "Reenvio externo do processo $strProtocoloProcedimentoFormatado"; + $objPaginaSEI->prepararBarraProgresso($strTitulo, $strTituloPagina); + + $objExpedirProcedimentoDTO = new ExpedirProcedimentoDTO(); + $objExpedirProcedimentoDTO->setNumIdRepositorioOrigem($numIdRepositorioOrigem); + $objExpedirProcedimentoDTO->setNumIdUnidadeOrigem($numIdUnidadeOrigem); + + $objExpedirProcedimentoDTO->setNumIdRepositorioDestino($numIdRepositorio); + $objExpedirProcedimentoDTO->setStrRepositorioDestino($strRepositorio); + $objExpedirProcedimentoDTO->setNumIdUnidadeDestino($numIdUnidadeDestino); + $objExpedirProcedimentoDTO->setStrUnidadeDestino($strNomeUnidadeDestino); + $objExpedirProcedimentoDTO->setArrIdProcessoApensado($arrIdProcedimentosApensados); + $objExpedirProcedimentoDTO->setBolSinUrgente($boolSinUrgente); + $objExpedirProcedimentoDTO->setDblIdProcedimento($numIdProcedimento); + $objExpedirProcedimentoDTO->setNumIdMotivoUrgencia($numIdMotivoUrgente); + $objExpedirProcedimentoDTO->setBolSinProcessamentoEmLote(false); + $objExpedirProcedimentoDTO->setNumIdLote(null); + $objExpedirProcedimentoDTO->setNumIdAtividade(null); + $objExpedirProcedimentoDTO->setNumIdUnidade(null); + + try { + $objExpedirProcedimentosRN->setEventoEnvioMetadados(function($parNumIdTramite) use ($strLinkProcedimento){ + $strLinkCancelarAjax = SessaoSEI::getInstance()->assinarLink('controlador_ajax.php?acao_ajax=pen_procedimento_expedir_cancelar&id_tramite='.$parNumIdTramite); + echo " "; + }); + + $respostaExpedir = $objExpedirProcedimentosRN->expedirProcedimento($objExpedirProcedimentoDTO); + $bolBotaoFecharCss = InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1"); + + // Muda situação da barra de progresso para Concluído + echo " "; + } catch(\Exception $e) { + $objPaginaSEI->processarExcecao($e); + echo " "; + } + + $objPaginaSEI->finalizarBarraProgresso(null, false); + } + + break; + default: + throw new InfraException("Ação '" . $_GET['acao'] . "' não reconhecida."); + } + +} catch (Exception $e) { + throw new InfraException("Erro processando requisição de reenvio externo de processo", $e); +} + +$objPaginaSEI->montarDocType(); +$objPaginaSEI->abrirHtml(); +$objPaginaSEI->abrirHead(); +$objPaginaSEI->montarMeta(); +$objPaginaSEI->montarTitle(':: ' . $objPaginaSEI->getStrNomeSistema() . ' - ' . $strTitulo . ' ::'); +$objPaginaSEI->montarStyle(); +echo "\n"; + +$objPaginaSEI->abrirStyle(); +?> + +div.infraAreaDados { + margin-bottom: 10px; +} + +#lblProtocoloExibir {position:absolute;left:0%;top:0%;} +#txtProtocoloExibir {position:absolute;left:0%;top:38%;width:51%;} + +#lblRepositorioEstruturas {position:absolute;left:0%;top:0%;width:50%;} +#selRepositorioEstruturas {position:absolute;left:0%;top:38%;width:51%;} + +#lblUnidades {position:absolute;left:0%;top:0%;} +#txtUnidade {left:0%;top:38%;width:60%;border:.1em solid #666;} +#imgLupaUnidades {position:absolute;left:52%;top:48%;} + +.alinhamentoBotaoImput{position:absolute;left:0%;top:48%;width:85%;}; + +#btnIdUnidade {float: right;} +#imgPesquisaAvancada { + vertical-align: middle; + margin-left: 10px; + width: 20px; + height: 20px; +} + +#lblProcedimentosApensados {position:absolute;left:0%;top:0%;} +#txtProcedimentoApensado {position:absolute;left:0%;top:25%;width:50%;border:.1em solid #666;} + +#selProcedimentosApensados {position:absolute;left:0%;top:43%;width:86%;} +#imgLupaProcedimentosApensados {position:absolute;left:87%;top:43%;} +#imgExcluirProcedimentosApensados {position:absolute;left:87%;top:60%;} + +#lblMotivosUrgencia {position:absolute;left:0%;top:0%;width:50%;} +#selMotivosUrgencia {position:absolute;left:0%;top:38%;width:51%;} + + +fecharStyle(); +$objPaginaSEI->montarJavaScript(); +?> + +fecharHead(); +$objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); +?> +
+ + +montarBarraComandosSuperior($arrComandos); +?> +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ + +
+ + + + + + + + + + +montarBarraComandosInferior($arrComandos); +?> +
+montarAreaDebug(); +$objPaginaSEI->fecharBody(); +$objPaginaSEI->fecharHtml(); +?> diff --git a/src/scripts/sip_atualizar_versao_modulo_pen.php b/src/scripts/sip_atualizar_versao_modulo_pen.php index 919766680..01bd9f026 100755 --- a/src/scripts/sip_atualizar_versao_modulo_pen.php +++ b/src/scripts/sip_atualizar_versao_modulo_pen.php @@ -1802,11 +1802,17 @@ protected function instalarV3023() $this->atualizarNumeroVersao("3.2.3"); } + protected function instalarV3024() { + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); + $this->criarRecurso('pen_reenviar_processo', 'Reenviar processo bloqueado por envio anterior', $numIdSistema); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_reenviar_processo'); $this->atualizarNumeroVersao("3.2.4"); } + protected function instalarV3030() { $this->atualizarNumeroVersao("3.3.0");