diff --git a/src/dto/PenOrgaoExternoDTO.php b/src/dto/PenOrgaoExternoDTO.php index 302e387f2..dca8bb6d6 100755 --- a/src/dto/PenOrgaoExternoDTO.php +++ b/src/dto/PenOrgaoExternoDTO.php @@ -31,7 +31,6 @@ public function montar() { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_criacao'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'ExtenderSubUnidades', 'sin_extender_sub_unidades'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); diff --git a/src/pen_map_orgaos_externos_cadastrar.php b/src/pen_map_orgaos_externos_cadastrar.php index c269e12a3..025182a2b 100755 --- a/src/pen_map_orgaos_externos_cadastrar.php +++ b/src/pen_map_orgaos_externos_cadastrar.php @@ -1,19 +1,20 @@ setBolLigado(true); - //InfraDebug::getInstance()->setBolDebugInfra(true); - //InfraDebug::getInstance()->limpar(); - ////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +//InfraDebug::getInstance()->setBolLigado(true); +//InfraDebug::getInstance()->setBolDebugInfra(true); +//InfraDebug::getInstance()->limpar(); +////////////////////////////////////////////////////////////////////////////// - $objSessaoSEI = SessaoSEI::getInstance(); - $objPaginaSEI = PaginaSEI::getInstance(); - $objInfraException = new InfraException(); +$objSessaoSEI = SessaoSEI::getInstance(); +$objPaginaSEI = PaginaSEI::getInstance(); +$objDebug = InfraDebug::getInstance(); +$objInfraException = new InfraException(); +try { $objSessaoSEI->validarLink(); $objSessaoSEI->validarPermissao($_GET['acao']); @@ -27,7 +28,7 @@ } $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(); @@ -43,65 +44,77 @@ throw new InfraException("A unidade atual não foi mapeada."); } + $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH(); + + // Órgão de origem $numIdOrgaoOrigem = $_POST['hdnIdUnidadeOrigem']; - $strNomeOrgaoDestinoOrigem = $_POST['txtUnidadeOrigem']; + $strNomeOrgaoOrigem = $_POST['txtUnidadeOrigem']; $numIdRepositorioOrigem = $_POST['selRepositorioEstruturasOrigem']; $txtRepositorioEstruturasOrigem = $_POST['txtRepositorioEstruturasOrigem']; - $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH(); - $boolSinExtenderSubUnidades = $objPaginaSEI->getCheckbox($_POST['chkSinExtenderSubUnidades'], true, false); + // Órgão de destino + $numIdOrgaoDestino = $_POST['hdnIdUnidadeDestino']; + $strNomeOrgaoDestino = $_POST['txtUnidadeDestino']; + $numIdRepositorioDestino = $_POST['selRepositorioEstruturasDestino']; + $txtRepositorioEstruturasDestino = $_POST['txtRepositorioEstruturasDestino']; switch ($_GET['acao']) { case 'pen_map_orgaos_externos_salvar': - if (is_null($numIdRepositorioOrigem)) { - $objPaginaSEI->adicionarMensagem('selecione um repositório de destino.'); - } elseif (is_null($numIdOrgao)) { - $objPaginaSEI->adicionarMensagem('o orgão não foi selecionado.'); - } else { - $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objPenOrgaoExternoDTO->setNumIdOrgao($numIdOrgao); - $objPenOrgaoExternoDTO->setNumIdEstrutaOrganizacional($numIdRepositorioOrigem); - $objPenOrgaoExternoDTO->setNumMaxRegistrosRetorno(1); - - $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); - $respObjPenOrgaoExternoDTO = $objPenOrgaoExternoRN->contar($objPenOrgaoExternoDTO); - if ($respObjPenOrgaoExternoDTO > 0) { - $objPaginaSEI->adicionarMensagem('Orgão externo ja cadastrado.'); - header('Location: '.$objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_cadastrar&acao_origem='.$_GET['acao'] . $strParametros)); - exit(0); - } - - $boolSinExtenderSubUnidades = !empty($boolSinExtenderSubUnidades) && $boolSinExtenderSubUnidades ? 'S' : 'N'; - $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objPenOrgaoExternoDTO->setNumIdOrgao($numIdOrgao); - $objPenOrgaoExternoDTO->setStrOrgao($strNomeOrgaoDestino); - $objPenOrgaoExternoDTO->setStrExtenderSubUnidades($boolSinExtenderSubUnidades); - $objPenOrgaoExternoDTO->setNumIdEstrutaOrganizacional($numIdRepositorioOrigem); - $objPenOrgaoExternoDTO->setStrEstrutaOrganizacional($txtRepositorioEstruturasOrigem); - $objPenOrgaoExternoDTO->setDthRegistro(date('d/m/Y H:i:s')); - - $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); - $respObjPenOrgaoExternoDTO = $objPenOrgaoExternoRN->contar($objPenOrgaoExternoDTO); - if ($respObjPenOrgaoExternoDTO > 0) { - var_dump($respObjPenOrgaoExternoDTO); - exit; - } - $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); - $objPenOrgaoExternoRN->cadastrar($objPenOrgaoExternoDTO); - $objPaginaSEI->adicionarMensagem('Orgão externo cadastrado com sucesso.'); + if (is_null($numIdRepositorioOrigem) || is_null($numIdRepositorioDestino)) { + $objPaginaSEI->adicionarMensagem('selecione um repositório de destino.', 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) || is_null($numIdOrgaoDestino)) { + $objPaginaSEI->adicionarMensagem('o orgão 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->setNumIdEstrutaOrganizacionalDestino($numIdRepositorioDestino); + $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); } - header('Location: '.$objSessaoSEI->assinarLink('controlador.php?acao=pen_map_orgaos_externos_cadastrar&acao_origem='.$_GET['acao'] . $strParametros)); + + $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); + $objPenOrgaoExternoDTO->setNumIdEstrutaOrganizacionalDestino($numIdRepositorioDestino); + $objPenOrgaoExternoDTO->setStrEstrutaOrganizacionalDestino($txtRepositorioEstruturasDestino); + + $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 Orgão Externo'; + $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[] = ''; } - $arrComandos[] = ''; //Obter dados do repositório em que o SEI está registrado (Repositório de Origem) $objPenParametroRN = new PenParametroRN(); @@ -117,6 +130,7 @@ 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); } @@ -131,6 +145,11 @@ $objPaginaSEI->abrirStyle(); ?> +div.conteiner{ + width: 100%; + padding: 15px; +} + div.infraAreaDados { margin-bottom: 10px; } @@ -138,16 +157,24 @@ #lblProtocoloExibir {position:absolute;left:0%;top:0%;} #txtProtocoloExibir {position:absolute;left:0%;top:38%;width:50%;} -#lblRepositorioEstruturasOrigem {position:absolute;left:0%;top:0%;width:50%;} -#selRepositorioEstruturasOrigem {position:absolute;left:0%;top:38%;width:51%;} +#lblRepositorioEstruturasOrigem {position:absolute;left:0%;top:0%;} +#selRepositorioEstruturasOrigem {position:absolute;left:0%;top:38%;} + +#lblRepositorioEstruturasDestino {position:absolute;left:0%;top:0%;} +#selRepositorioEstruturasDestino {position:absolute;left:0%;top:38%;} #lblUnidadesOrigem {position:absolute;left:0%;top:0%;} -#txtUnidadeOrigem {left:0%;top:38%;width:50%;border:.1em solid #666;} +#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: right;} +#btnIdUnidadeOrigem {float: left;} +#btnIdUnidadeDestino {float: left;} #imgPesquisaAvancada { vertical-align: middle; margin-left: 10px; @@ -155,6 +182,26 @@ height: 20px; } +.panelOrgao { + color: #fff; + width: 48%; + 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(); @@ -166,12 +213,7 @@ var objLupaUnidadesOrigem = null; var objLupaUnidadesAdministrativasOrigem = null; - function inicializar() { - infraEfeitoTabelas(); - var strMensagens = 'getStrMensagens()); ?>'; - if(strMensagens) { - alert(strMensagens); - } + function inicializarOrigem() { objLupaUnidadesAdministrativas = new infraLupaSelect('selRepositorioEstruturasOrigem', 'hdnUnidadesAdministrativas', '= $strLinkUnidadesAdministrativasSelecao ?>'); objAutoCompletarEstruturaOrigem = new infraAjaxAutoCompletar('hdnIdUnidadeOrigem', 'txtUnidadeOrigem', '= $strLinkAjaxUnidade ?>', "Nenhuma unidade foi encontrada"); @@ -195,6 +237,7 @@ function inicializar() { objAutoCompletarEstruturaOrigem.executar(); objAutoCompletarEstruturaOrigem.procurar(); }); + //Botão de pesquisa avançada $('#imgPesquisaAvancada').click(function() { @@ -207,42 +250,64 @@ function inicializar() { } }); document.getElementById('selRepositorioEstruturasOrigem').focus(); + selecionarRepositorioOrigem(); } - function validarCadastroAbrirRI0825() { - if (!infraSelectSelecionado('selUnidadesOrigem')) { - alert('Informe as Unidades de Destino.'); - document.getElementById('selUnidadesOrigem').focus(); - return false; - } + function inicializarDestino() { + objLupaUnidadesAdministrativas = new infraLupaSelect('selRepositorioEstruturasDestino', 'hdnUnidadesAdministrativas', '= $strLinkUnidadesAdministrativasSelecao ?>'); - return true; - } + objAutoCompletarEstruturaDestino = new infraAjaxAutoCompletar('hdnIdUnidadeDestino', 'txtUnidadeDestino', '= $strLinkAjaxUnidade ?>', "Nenhuma unidade foi encontrada"); + objAutoCompletarEstruturaDestino.bolExecucaoAutomatica = false; + objAutoCompletarEstruturaDestino.mostrarAviso = true; + objAutoCompletarEstruturaDestino.limparCampo = false; + objAutoCompletarEstruturaDestino.tempoAviso = 10000000; - function selecionarUrgencia() { - var chkSinUrgenteEnabled = $('#chkSinUrgente').is(':checked'); - $('#selMotivosUrgencia').prop('disabled', !chkSinUrgenteEnabled); + objAutoCompletarEstruturaDestino.prepararExecucao = function() { + var selRepositorioEstruturasDestino = document.getElementById('selRepositorioEstruturasDestino'); + var parametros = 'palavras_pesquisa=' + document.getElementById('txtUnidadeDestino').value; + parametros += '&id_repositorio=' + selRepositorioEstruturasDestino.options[selRepositorioEstruturasDestino.selectedIndex].value + return parametros; + }; - if (!chkSinUrgenteEnabled) { - infraSelectSelecionarItem('selMotivosUrgencia', '0'); - $('#selMotivosUrgencia').addClass('infraReadOnly'); - $('#divMotivosUrgencia').css('display', 'none'); - } else { - $('#selMotivosUrgencia').removeClass('infraReadOnly'); - $('#divMotivosUrgencia').css('display', 'block'); - } + objAutoCompletarEstruturaDestino.processarResultado = function(id, descricao, complemento) { + window.infraAvisoCancelar(); + }; + + $('#btnIdUnidadeDestino').click(function() { + objAutoCompletarEstruturaDestino.executar(); + objAutoCompletarEstruturaDestino.procurar(); + }); + + + //Botão de pesquisa avançada + $('#imgPesquisaAvancada').click(function() { + var idRepositorioEstrutura = $('#selRepositorioEstruturasDestino :selected').val(); + if ((idRepositorioEstruturaDestino != '') && (idRepositorioEstruturaDestino != 'null')) { + $("#hdnUnidadesAdministrativas").val(idRepositorioEstruturaDestino); + objLupaUnidadesAdministrativas.selecionar(700, 500); + } else { + alert('Selecione um repositório de Estruturas Organizacionais'); + } + }); + document.getElementById('selRepositorioEstruturasDestino').focus(); + selecionarRepositorioDestino(); } //Caso não tenha unidade encontrada $(document).ready(function() { $(document).on('click', '#txtUnidadeOrigem', function() { - if ($(this).val() == "Unidade não Encontrada.") { + if ($(this).val() == "Órgão origem não Encontrado.") { + $(this).val(''); + } + }); + $(document).on('click', '#txtUnidadeDestino', function() { + if ($(this).val() == "Órgão destino não Encontrado.") { $(this).val(''); } }); }); - function selecionarRepositorio() { + function selecionarRepositorioOrigem() { var txtUnidadeOrigem = $('#txtUnidadeOrigem'); var selRepositorioEstruturasOrigem = $('#selRepositorioEstruturasOrigem'); @@ -259,6 +324,23 @@ function selecionarRepositorio() { } } + function selecionarRepositorioDestino() { + var txtUnidadeDestino= $('#txtUnidadeDestino'); + var selRepositorioEstruturasDestino = $('#selRepositorioEstruturasDestino'); + + var txtUnidadeDestinoEnabled = selRepositorioEstruturasDestino.val() > 0; + txtUnidadeDestino.prop('disabled', !txtUnidadeDestinoEnabled); + $('#hdnIdUnidadeDestino').val(''); + txtUnidadeDestino.val(''); + + if (!txtUnidadeDestinoEnabled) { + txtUnidadeDestino.addClass('infraReadOnly'); + } else { + txtUnidadeDestino.removeClass('infraReadOnly'); + $('#txtRepositorioEstruturasDestino').val($("#selRepositorioEstruturasDestino option:selected").text()); + } + } + function avaliarPreCondicoes() { var houveErros = document.getElementById('hdnErrosValidacao').value; if (houveErros) { @@ -334,64 +416,67 @@ function redimencionarBarraProgresso() { divFundo.style.height = infraClientHeight() + 'px'; } } - - function enviarForm(event) { - var button = jQuery(event.target); - var labelPadrao = button.html(); - - button.attr('disabled', 'disabled').html('Validando...'); - - var urlValidacao = 'formatarXHTML($objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_procedimento_expedir_validar' . $strParametros)); ?>'; - var objData = {}; - - jQuery.each(['txtProtocoloExibir', 'selRepositorioEstruturasOrigem', 'hdnIdUnidadeOrigem'], function(index, name) { - var objInput = jQuery('#' + name); - objData[name] = objInput.val(); - }); - - jQuery.ajax({ - url: urlValidacao, - method: 'POST', - dataType: 'json', - data: objData - }).done(function() { - button.removeAttr('disabled').html(labelPadrao); - }); - $('#txtRepositorioEstruturasOrigem').val($("#selRepositorioEstruturasOrigem option:selected").text()); - } fecharHead(); -$objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); +$objPaginaSEI->abrirBody($strTitulo, 'onload="infraEfeitoTabelas(); inicializarOrigem(); inicializarDestino();"'); ?>