diff --git a/src/PENIntegracao.php b/src/PENIntegracao.php index 1b71c3043..26e0cbad8 100755 --- a/src/PENIntegracao.php +++ b/src/PENIntegracao.php @@ -1,7 +1,7 @@ '; } + //Apresenta o botão de incluir processo no bloco de trâmite + $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); + $strAcoesProcedimento .= ' getDiretorioImagens()) .'" title="Incluir Processo no Bloco de Trâmite" alt="Incluir Processo no Bloco de Tramite"/>'; + return array($strAcoesProcedimento); } @@ -375,6 +379,11 @@ public function processarControlador($strAcao) require_once dirname(__FILE__) . '/pen_procedimento_expedido_listar.php'; break; + case 'pen_tramite_bloco_listar': + require_once dirname(__FILE__) . '/pen_tramite_bloco_listar.php'; + break; + + case 'pen_map_tipo_documento_envio_listar'; case 'pen_map_tipo_documento_envio_excluir'; case 'pen_map_tipo_documento_envio_desativar'; @@ -474,10 +483,36 @@ public function processarControlador($strAcao) require_once dirname(__FILE__) . '/pen_expedir_lote.php'; break; + case 'pen_expedir_lote_listar': - require_once dirname(__FILE__) . '/pen_expedir_lote_listar.php'; + require_once dirname(__FILE__) . '/pen_expedir_lote_listar.php'; + break; + + // novo + case 'md_pen_tramita_em_bloco': + case 'md_pen_tramita_em_bloco_excluir': + case 'pen_tramite_em_bloco_cancelar': + require_once dirname(__FILE__) . '/pen_tramite_bloco_listar.php'; + break; + + case 'pen_tramite_em_bloco_cadastrar': + require_once dirname(__FILE__) . '/pen_tramite_em_bloco_cadastrar.php'; + break; + + case 'pen_tramite_em_bloco_alterar': + require_once dirname(__FILE__) . '/pen_tramite_em_bloco_cadastrar.php'; + break; + + case 'pen_tramita_em_bloco_protocolo_excluir': + case 'pen_tramita_em_bloco_protocolo_listar': + case 'pen_tramita_em_bloco_protocolo_cancelar': + require_once dirname(__FILE__) . '/pen_tramita_em_bloco_protocolo_listar.php'; break; + case 'pen_incluir_processo_em_bloco_tramite': + require_once dirname(__FILE__) . '/pen_tramite_processo_em_bloco_cadastrar.php'; + break; + default: return false; diff --git a/src/bd/TramitaEmBlocoProtocoloBD.php b/src/bd/TramitaEmBlocoProtocoloBD.php new file mode 100644 index 000000000..cdac83f9c --- /dev/null +++ b/src/bd/TramitaEmBlocoProtocoloBD.php @@ -0,0 +1,14 @@ +adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Id', 'id'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProtocolo', 'id_protocolo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramitaEmBloco', 'id_tramita_em_bloco'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Anotacao', 'anotacao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Sequencia', 'sequencia'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'IdxRelBlocoProtocolo', 'idx_rel_bloco_protocolo'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DBL, 'IdProtocoloProtocolo', 'p1.id_protocolo', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ProtocoloFormatadoProtocolo', 'p1.protocolo', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaProtocoloProtocolo', 'p1.sta_protocolo', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaNivelAcessoGlobalProtocolo', 'p1.sta_nivel_acesso_global', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidadeBloco', 'tb1.id_unidade', 'md_pen_tramita_em_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'tb1.id_usuario', 'md_pen_tramita_em_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaTipoBloco', 'sta_tipo', 'md_pen_tramita_em_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoBloco', 'sta_estado', 'md_pen_tramita_em_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdProcedimento', 'pe.id_procedimento', 'md_pen_processo_eletronico pe'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'pe.numero_registro', 'md_pen_processo_eletronico pe'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'pt.id_tramite', 'md_pen_tramite pt'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoProtocolo', 'p1.sta_estado', 'protocolo p1'); + + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'TramiteDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'AtividadeDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'ProtocoloDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'PenLoteProcedimentoDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'PalavrasPesquisa'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'SinAberto'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM,'StaIdTarefa'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'SinObteveRecusa'); + + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarPK('IdProtocolo',InfraDTO::$TIPO_PK_INFORMADO); + $this->configurarPK('IdTramitaEmBloco',InfraDTO::$TIPO_PK_INFORMADO); + + $this->configurarFK('IdProtocolo', 'protocolo p1', 'p1.id_protocolo'); + $this->configurarFK('IdTramitaEmBloco', 'md_pen_tramita_em_bloco tb1', 'tb1.id'); + $this->configurarFK('IdProtocolo', 'md_pen_processo_eletronico pe', 'pe.id_procedimento', InfraDTO::$TIPO_FK_OPCIONAL); + $this->configurarFK('NumeroRegistro', 'md_pen_tramite pt', 'pt.numero_registro', InfraDTO::$TIPO_FK_OPCIONAL); + } +} +?> diff --git a/src/dto/TramiteEmBlocoDTO.php b/src/dto/TramiteEmBlocoDTO.php new file mode 100644 index 000000000..6af7a0cae --- /dev/null +++ b/src/dto/TramiteEmBlocoDTO.php @@ -0,0 +1,139 @@ +adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, + 'Id', + 'id'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, + 'IdUnidade', + 'id_unidade'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, + 'IdUsuario', + 'id_usuario'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, + 'Descricao', + 'descricao'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, + 'IdxBloco', + 'idx_bloco'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, + 'StaTipo', + 'sta_tipo'); + + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, + 'StaEstado', + 'sta_estado'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'SiglaUnidade', + 'uc.sigla', + 'unidade uc'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'DescricaoUnidade', + 'uc.descricao', + 'unidade uc'); + + // $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, + // 'IdGrupoBlocoRelBlocoUnidade', + // 'id_grupo_bloco', + // 'rel_bloco_unidade'); + + // $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, + // 'IdUnidadeRelBlocoUnidade', + // 'id_unidade', + // 'rel_bloco_unidade'); + + // $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + // 'SinPrioridadeRelBlocoUnidade', + // 'sin_prioridade', + // 'rel_bloco_unidade'); + + // $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + // 'SinRevisaoRelBlocoUnidade', + // 'sin_revisao', + // 'rel_bloco_unidade'); + + // $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + // 'SinComentarioRelBlocoUnidade', + // 'sin_comentario', + // 'rel_bloco_unidade'); + + // $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, + // 'IdUsuarioAtribuicaoRelBlocoUnidade', + // 'id_usuario_atribuicao', + // 'rel_bloco_unidade'); + + // $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + // 'SinRetornadoRelBlocoUnidade', + // 'sin_retornado', + // 'rel_bloco_unidade'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'SiglaUnidadeRelBlocoUnidade', + 'ud.sigla', + 'unidade ud'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'DescricaoUnidadeRelBlocoUnidade', + 'ud.descricao', + 'unidade ud'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'SiglaUsuario', + 'sigla', + 'usuario'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + 'NomeUsuario', + 'nome', + 'usuario'); + + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'TipoDescricao'); + // $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'StaEstadoDescricao'); + // //$this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'SinVazio'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'PalavrasPesquisa'); + // $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM,'Documentos'); + // $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM,'Assinados'); + + // $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'RelBlocoUnidadeDTO'); + // $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR,'ObjRelBlocoUnidadeDTO'); + // $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR,'ObjRelBlocoProtocoloDTO'); + // $this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'StaTipoAtribuicao'); + + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA ); + + // $this->configurarFK('Id', 'rel_bloco_unidade', 'id'); + $this->configurarFK('IdUsuario', 'usuario', 'id_usuario'); + $this->configurarFK('IdUnidade', 'unidade uc', 'uc.id_unidade'); + // $this->configurarFK('IdUnidadeRelBlocoUnidade', 'unidade ud', 'ud.id_unidade'); + } +} +?> diff --git a/src/imagens/pen_processo_bloco.svg b/src/imagens/pen_processo_bloco.svg new file mode 100644 index 000000000..5d6869def --- /dev/null +++ b/src/imagens/pen_processo_bloco.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + diff --git a/src/pen_expedir_lote.php b/src/pen_expedir_lote.php index a25c7b303..ab91faed7 100755 --- a/src/pen_expedir_lote.php +++ b/src/pen_expedir_lote.php @@ -18,7 +18,32 @@ $strDiretorioModulo = PENIntegracao::getDiretorio(); $arrProtocolosOrigem = array(); - $arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), $objPaginaSEI->getArrStrItensSelecionados('Detalhado')); + $tramiteEmBloco = isset($_GET['tramite_em_bloco']) ? $_GET['tramite_em_bloco'] : null; + if ($tramiteEmBloco == 1) { + if (isset($_GET['id_tramita_em_bloco'])) { + $objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + $objTramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($_GET['id_tramita_em_bloco']); + $objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); + $objTramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + } else { + $arrIdRelBlocoProtocoloSelecionado = $objPaginaSEI->getArrStrItensSelecionados(); + $objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + $objTramitaEmBlocoProtocoloDTO->setNumId($arrIdRelBlocoProtocoloSelecionado, InfraDTO::$OPER_IN); + $objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); + $objTramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + } + + $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + $arrTramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramitaEmBlocoProtocoloDTO); + $idTramiteEmBloco = $arrTramiteEmBlocoProtocolo[0]->getNumIdTramitaEmBloco(); + $strParametros .= '&id_bloco=' . $idTramiteEmBloco; + foreach ($arrTramiteEmBlocoProtocolo as $i => $tramiteEmBlocoProtocolo) { + $arrProtocolosOrigem[] = $tramiteEmBlocoProtocolo->getDblIdProtocolo(); + } + } else { + $idTramiteEmBloco = null; + $arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), $objPaginaSEI->getArrStrItensSelecionados('Detalhado')); + } if (count($arrProtocolosOrigem)==0){ $arrProtocolosOrigem = explode(',', $_POST['hdnIdProcedimento']); @@ -45,7 +70,7 @@ switch ($_GET['acao']) { case 'pen_expedir_lote': - $strTitulo = 'Envio Externo de Processo em Lote'; + $strTitulo = $tramiteEmBloco == 1 ? 'Envio Externo de Processos do Bloco de Trâmite' : 'Envio Externo de Processo em Lote'; $arrComandos[] = ''; $arrComandos[] = ''; @@ -109,6 +134,19 @@ $ret = $objPenExpedirLoteRN->cadastrarLote($objPenExpedirLoteDTO); $bolBotaoFecharCss = InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1"); + // Atualiza estado do bloco em tramite para em processamento + if (isset($_POST['hdIdTramiteEmBloco']) && $_POST['hdIdTramiteEmBloco'] != null) { + $strParametros .= '&id_bloco=' . $_POST['hdIdTramiteEmBloco']; + $strLinkProcedimento = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $objPaginaSEI->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'] . '&acao_destino=' . $_GET['acao'] . $strParametros)); + + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($_POST['hdIdTramiteEmBloco']); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_DISPONIBILIZADO); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + } + // Muda situação da barra de progresso para Concluído echo " "; } catch(\Exception $e) { @@ -402,6 +440,7 @@ function enviarForm(event){ + validarLink(); + $objSessaoSEI->validarPermissao($_GET['acao']); + + $staCancelado = ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO; + $staConcluido = ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE; + $staEmProcessamento = ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO; + + $objPaginaSEI->salvarCamposPost(array('txtProcedimentoFormatado', 'txtNomeUsuario', 'txtUnidadeDestino', 'selAndamento')); + + switch ($_GET['acao']) { + case 'pen_tramita_em_bloco_protocolo_excluir': + try { + $arrStrIds = PaginaSEI::getInstance()->getArrStrItensSelecionados(); + $arrObjTramiteBlocoProtocoloDTO = array(); + if (count($arrStrIds) > 0) { + for ($i = 0; $i < count($arrStrIds); $i++) { + $arrStrIdComposto = explode('-', $arrStrIds[$i]); + $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + $objTramiteEmBlocoProtocoloDTO->setNumId($arrStrIdComposto[0]); + $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($arrStrIdComposto[1]); + $objTramiteEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($arrStrIdComposto[2]); + $arrObjTramiteBlocoProtocoloDTO[] = $objTramiteEmBlocoProtocoloDTO; + } + } elseif (isset($_GET['hdnInfraItensSelecionados'])) { + $arrStrIdComposto = explode('-', $_GET['hdnInfraItensSelecionados']); + $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + $objTramiteEmBlocoProtocoloDTO->setNumId($arrStrIdComposto[0]); + $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($arrStrIdComposto[1]); + $objTramiteEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($arrStrIdComposto[2]); + $arrObjTramiteBlocoProtocoloDTO[] = $objTramiteEmBlocoProtocoloDTO; + } + $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + $objTramitaEmBlocoProtocoloRN->excluir($arrObjTramiteBlocoProtocoloDTO); + PaginaSEI::getInstance()->setStrMensagem('Operação realizada com sucesso.'); + } catch (Exception $e) { + PaginaSEI::getInstance()->processarExcecao($e); + } + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'].'&id_bloco='.$_GET['id_bloco'])); + die; + case 'pen_tramita_em_bloco_protocolo_listar': + $strTitulo = 'Processos do Bloco: ' . $_GET['id_bloco']; + break; + case 'pen_tramita_em_bloco_protocolo_cancelar': { + try{ + $arrStrIds = PaginaSEI::getInstance()->getArrStrItensSelecionados(); + $arrObjTramiteBlocoProtocoloDTO = array(); + var_dump($arrStrIds); + if (count($arrStrIds) > 0) { + foreach ($arrStrIds as $arrStrId) { + $arrStrIdComposto = explode('-', $arrStrId); + $expedirProcedimentoRN = new ExpedirProcedimentoRN(); + $expedirProcedimentoRN->cancelarTramite($arrStrIdComposto[1]); + } + } elseif (isset($_GET['hdnInfraItensSelecionados'])) { + $arrStrIdComposto = explode('-', $_GET['hdnInfraItensSelecionados']); + $expedirProcedimentoRN = new ExpedirProcedimentoRN(); + $expedirProcedimentoRN->cancelarTramite($arrStrIdComposto[1]); + } + PaginaSEI::getInstance()->setStrMensagem('Operação realizada com sucesso.'); + } catch (Exception $e) { + PaginaSEI::getInstance()->processarExcecao($e); + } + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'].'&id_bloco='.$_GET['id_bloco'])); + //die; + } + break; + default: + throw new InfraException("Ação '" . $_GET['acao'] . "' não reconhecida."); + } + + $arrComandos = array(); + $arrComandos[] = ''; + $arrComandos[] = ''; + + $objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + $objTramitaEmBlocoProtocoloDTO->retNumId(); + $objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); + $objTramitaEmBlocoProtocoloDTO->retNumSequencia(); + $objTramitaEmBlocoProtocoloDTO->retStrAnotacao(); + $objTramitaEmBlocoProtocoloDTO->retStrIdxRelBlocoProtocolo(); + $objTramitaEmBlocoProtocoloDTO->retNumIdUsuario(); + $objTramitaEmBlocoProtocoloDTO->retNumIdUnidadeBloco(); + $objTramitaEmBlocoProtocoloDTO->retStrStaEstadoProtocolo(); + $objTramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($_GET['id_bloco']); + + $strPalavrasPesquisa = PaginaSEI::getInstance()->recuperarCampo('txtPalavrasPesquisaBloco'); + if ($strPalavrasPesquisa!=''){ + $objTramitaEmBlocoProtocoloDTO->setStrPalavrasPesquisa($strPalavrasPesquisa); + } + + $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + $arrTramitaEmBlocoProtocoloDTO = $objTramitaEmBlocoProtocoloRN->listarProtocolosBloco($objTramitaEmBlocoProtocoloDTO); + + $arrComandos = array(); + + $arrComandos[] = ''; + $arrComandos[] = ''; + + $objPaginaSEI->prepararPaginacao($objTramitaEmBlocoProtocoloDTO); + $objPaginaSEI->processarPaginacao($objTramitaEmBlocoProtocoloDTO); + $objPaginaSEI->prepararOrdenacao($objTramitaEmBlocoProtocoloDTO, 'IdxRelBlocoProtocolo', InfraDTO::$TIPO_ORDENACAO_DESC); + + $numRegistros = count($arrTramitaEmBlocoProtocoloDTO); + if ($numRegistros > 0) { + $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(); + $arrComandos[] = ''; + $arrComandos[] = ''; + + $strResultado = ''; + $strSumarioTabela = 'Tabela de Processo em Lote.'; + $strCaptionTabela = 'Processo em Lote'; + + $strResultado .= '' . "\n"; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strCssTr = ''; + foreach ($arrTramitaEmBlocoProtocoloDTO as $i => $objDTO) { + $strCssTr = ($strCssTr == '') ? '' : ''; + $strResultado .= $strCssTr; + + $id = $objDTO->getNumId().'-'.$objDTO->getDblIdProtocolo().'-'.$_GET['id_bloco']; + $strResultado .= ''; + $strResultado .= ''; + + $strResultado .= ''; + + $strResultado .= ''; + + $objTramiteDTO = $objDTO->getObjTramiteDTO(); + if ($objTramiteDTO) { + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + + } else { + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + } + + $strResultado .= '' . "\n"; + + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + } + $strResultado .= '
' . $objPaginaSEI->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . $objPaginaSEI->getThCheck() . '' . $objPaginaSEI->getThOrdenacao($objTramitaEmBlocoProtocoloDTO, 'Seq', 'Sequencia', $arrTramitaEmBlocoProtocoloDTO) . '' . $objPaginaSEI->getThOrdenacao($objTramitaEmBlocoProtocoloDTO, 'Processo', 'IdxRelBlocoProtocolo', $arrTramitaEmBlocoProtocoloDTO) . '' . $objPaginaSEI->getThOrdenacao($objTramitaEmBlocoProtocoloDTO, 'Anotações', 'Anotacoes', $arrTramitaEmBlocoProtocoloDTO) . 'UsuárioData do EnvioUnidade DestinoSituaçãoAções
' . $objPaginaSEI->getTrCheck($i, $id, $id) . '' . ($i + 1) . ''; + $strResultado .= '' . $objDTO->getStrIdxRelBlocoProtocolo() . ''; + $strResultado .= '' . nl2br(InfraString::formatarXML($objDTO->getStrAnotacao())) . '' . PaginaSEI::tratarHTML($objTramiteDTO->getStrNomeUsuario()) . '' . PaginaSEI::tratarHTML($objTramiteDTO->getDthRegistro()) . '' . /*PaginaSEI::tratarHTML($objTramiteDTO->getStrUnidadeDestino()) .*/ '' . "\n"; + + if ($objDTO->getStrSinObteveRecusa() == 'S') { + $strResultado .= 'Um trâmite para esse processo foi recusado'; + } else if ($objDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO) { + $strResultado .= 'Em processamento'; + } else { + $PROCESSO_EXPEDIDO_ID = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); + $PROCESSO_TRAMITE_CANCELADO_ID = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO); + + switch ($objDTO->getNumStaIdTarefa()) { + case $PROCESSO_EXPEDIDO_ID: + $strResultado .= 'Concluído'; + break; + case $PROCESSO_TRAMITE_CANCELADO_ID: + $strResultado .= 'Cancelado'; + break; + default: + break; + } + } + $strResultado .= '' . "\n"; + // $objDTO->getStrStaEstado() != TramiteEmBlocoRN::$TE_DISPONIBILIZADO && + if ($objDTO->getNumIdUnidadeBloco() == SessaoSEI::getInstance()->getNumIdUnidadeAtual()) { + $strId = $objDTO->getDblIdProtocolo() . '-' . $objDTO->getNumId(); + $strProtocoloId = $objDTO->getDblIdProtocolo(); + $strDescricao = PaginaSEI::getInstance()->formatarParametrosJavaScript($objDTO->getStrIdxRelBlocoProtocolo()); + $strResultado .= 'Excluir Bloco '; + $strResultado .= $objDTO->getNumStaIdTarefa() == $PROCESSO_EXPEDIDO_ID ? 'getDiretorioImagens()) . '">getDiretorioImagens()) . '" title="Cancelar Tramite" alt="Cancelar Tramite" class="infraImg iconTramita" /> ' : ''; + } + $strResultado .= '
'; + } + + $arrComandos[] = ''; +} catch (Exception $e) { + $objPaginaSEI->processarExcecao($e); +} + +$objPaginaSEI->montarDocType(); +$objPaginaSEI->abrirHtml(); +$objPaginaSEI->abrirHead(); +$objPaginaSEI->montarMeta(); +$objPaginaSEI->montarTitle($objPaginaSEI->getStrNomeSistema() . ' - ' . $strTitulo); +$objPaginaSEI->montarStyle(); +$objPaginaSEI->abrirStyle(); +?> + +#lblProcedimentoFormatado {position:absolute;left:0%;top:0%;width:20%;} +#txtProcedimentoFormatado {position:absolute;left:0%;top:40%;width:20%;} +input.infraText {width: 100%;} +.iconTramita {max-width: 1.5rem;} + +fecharStyle(); +$objPaginaSEI->montarJavaScript(); +$objPaginaSEI->abrirJavaScript(); +?> + +function inicializar(){ +if (''=='serie_selecionar'){ +infraReceberSelecao(); +document.getElementById('btnFecharSelecao').focus(); +}else{ +document.getElementById('btnFechar').focus(); +} + +infraEfeitoTabelas(); +} + +fecharStyle(); ?> +montarJavaScript(); ?> + +fecharHead(); +$objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); +?> +
+ montarBarraComandosSuperior($arrComandos); + $objPaginaSEI->abrirAreaDados('4.5em'); + ?> + + +fecharAreaDados(); + $objPaginaSEI->montarAreaTabela($strResultado, $numRegistros); + $objPaginaSEI->montarAreaDebug(); + $objPaginaSEI->montarBarraComandosInferior($arrComandos); + ?> +
+fecharBody(); +$objPaginaSEI->fecharHtml(); +?> diff --git a/src/pen_tramite_bloco_listar.php b/src/pen_tramite_bloco_listar.php new file mode 100644 index 000000000..5afc76799 --- /dev/null +++ b/src/pen_tramite_bloco_listar.php @@ -0,0 +1,452 @@ +validarLink(); + SessaoSEI::getInstance()->validarPermissao($_GET['acao']); + $objSessaoSEI->validarPermissao($_GET['acao']); + + + $strActionPadrao = SessaoSEI::getInstance()->assinarLink('controlador.php?acao='.$_GET['acao'].'&acao_origem='.$_GET['acao'].'&id_documento=222'.$_GET['id_documento']); + PaginaSEI::getInstance()->salvarCamposPost(array('txtPalavrasPesquisaBloco', 'chakSinEstadoGerado', 'selUnidadeGeradora', 'hdnMeusBlocos')); + + + $strTitulo = 'Blocos de Trâmite Externo'; + + switch ($_GET['acao']) { + case 'md_pen_tramita_em_bloco_excluir': + try { + $arrStrIds = PaginaSEI::getInstance()->getArrStrItensSelecionados(); + $arrObjTramiteEmBlocoDTO = array(); + if (count($arrStrIds) > 0) { + for ($i = 0; $i < count($arrStrIds); $i++) { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($arrStrIds[$i]); + $arrObjTramiteEmBlocoDTO[] = $objTramiteEmBlocoDTO; + } + } elseif (isset($_GET['hdnInfraItensSelecionados'])) { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId(intval($_GET['hdnInfraItensSelecionados'])); + $arrObjTramiteEmBlocoDTO[] = $objTramiteEmBlocoDTO; + } + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->excluir($arrObjTramiteEmBlocoDTO); + PaginaSEI::getInstance()->setStrMensagem('Operação realizada com sucesso.'); + } catch (Exception $e) { + PaginaSEI::getInstance()->processarExcecao($e); + } + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + die; + case 'md_pen_tramita_em_bloco': + $arrEstadosSelecionados = []; + $checkboxesEstados = [ + 'chkSinEstadoGerado' => TramiteEmBlocoRN::$TE_ABERTO, + 'chkSinEstadoDisponibilizado' => TramiteEmBlocoRN::$TE_DISPONIBILIZADO, + 'chkSinEstadoConcluido' => TramiteEmBlocoRN::$TE_CONCLUIDO + ]; + + foreach ($checkboxesEstados as $checkbox => $strEstado) { + if (isset($_POST[$checkbox])) { + $arrEstadosSelecionados[] = $strEstado; + } + } + $strPalavrasPesquisa = PaginaSEI::getInstance()->recuperarCampo('txtPalavrasPesquisa'); + $setStrPalavrasPesquisa = $strPalavrasPesquisa != '' ? $objBlocoDTOPesquisa->setStrPalavrasPesquisa($strPalavrasPesquisa) : ''; + + break; + case 'pen_tramite_em_bloco_cancelar': + $arrEstadosSelecionados = []; + $arrStrIds = isset($_GET['id_tramita_em_bloco']) ? [$_GET['id_tramita_em_bloco']] : PaginaSEI::getInstance()->getArrStrItensSelecionados(); + if (count($arrStrIds) > 0) { + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->cancelar($arrStrIds); + } + PaginaSEI::getInstance()->setStrMensagem('Operação realizada com sucesso.'); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + + break; + default: + throw new InfraException("Ação '" . $_GET['acao'] . "' não reconhecida."); + } + + $objFiltroDTO = new TramiteEmBlocoDTO(); + $objFiltroDTO->retNumId(); + $objFiltroDTO->retStrStaEstado(); + $objFiltroDTO->retStrDescricao(); + $objFiltroDTO->setStrPalavrasPesquisa($setStrPalavrasPesquisa); + + + if (count($arrEstadosSelecionados)) { + $objFiltroDTO->setStrStaEstado($arrEstadosSelecionados, InfraDTO::$OPER_IN); + } + + PaginaSEI::getInstance()->prepararOrdenacao($objFiltroDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + + // Verificar no DTO sobre funções de agragação para clausula DISTINCT + if (get_parent_class(BancoSEI::getInstance()) != 'InfraMySqli') { + $objFiltroDTO->retDthConclusaoAtividade(); + } + // $objPaginaSEI->prepararPaginacao($objFiltroDTO, 50); + + $obgTramiteEmBloco = new TramiteEmBlocoRN(); + $arrObjBlocosListar = $obgTramiteEmBloco->listar($objFiltroDTO); + + // Cabeçalho da tabela + $colunas = array( + 'id' => 'Número', + 'estado' => 'Estados', + 'descricao' => 'Descrição', + 'acao' => 'Ações' + ); + + // Corpo Tabela + $tabelaLinhas = []; + foreach ($arrObjBlocosListar as $objFiltro) { + $arr['id'] = $objFiltro->getNumId(); + $arr['estado'] = $obgTramiteEmBloco->retornarEstadoDescricao($objFiltro->getStrStaEstado()); + $arr['descricao'] = $objFiltro->getStrDescricao(); + $arr['acao'] = ''; + + $tabelaLinhas[] = $arr; + } + + $numRegistros = count($arrObjBlocosListar); + + + $arrComandos = []; + $arrComandos[] = ''; + $arrComandos[] = ''; + $arrComandos[] = ''; + if ($numRegistros > 0) { + $arrComandos[] = ''; + $arrComandos[] = ''; + } + + + + // Início da tabela + $strSumarioTabela = 'Tabela de Blocos Tramitados.'; + $strCaptionTabela = 'Blocos'; + + $strResultado = "" . "\n"; + $strResultado .= ''; + $strResultado .= ""; + $strResultado .= '' . "\n"; + + foreach ($colunas as $coluna) { + + $strResultado .= ""; + } + $strResultado .= ""; + + foreach ($tabelaLinhas as $cont => $linha) { + $strResultado .= ""; + $strResultado .= ''; + // $strResultado .= ''; + foreach ($colunas as $key => $coluna) { + $idBlocoTramite = $linha['id']; // $idBlocoTramite = $idBlocoTramite; + + if ($linha[$key]) { + $strResultado .= ""; + } + + // Adiciona botões na coluna de ações + if ($coluna == 'Ações') { + $strResultado .= ""; + } + } + $strResultado .= ""; + } + + // Fim da tabela + $strResultado .= "
' . PaginaSEI::getInstance()->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . PaginaSEI::getInstance()->getThCheck() . '{$coluna}
'.PaginaSEI::getInstance()->getTrCheck($cont, $linha['id'], $linha['id']).''.PaginaSEI::getInstance()->getTrCheck($i,$idBlocoTramite,$idBlocoTramite).' {$linha[$key]} "; + // visualizar + $strResultado .= 'Visualizar Processos '; + + // alterar + $strResultado .= 'Alterar Bloco '; + + $strResultado .= 'Excluir Bloco '; + + // Tramitar bloco + $strResultado .= 'getDiretorioImagens()) . '" title="Tramitar Bloco" alt="Bloco-' .$cont.'" class="infraImg iconTramita" /> '; + + // Cancelar tramite + if ($objFiltro->getStrStaEstado() != TramiteEmBlocoRN::$TE_ABERTO) { + $strResultado .= 'getDiretorioImagens()) . '" title="Cancelar Tramite do Bloco" alt="Cancelar Tramite do Bloco" class="infraImg iconTramita" /> '; + } + + $strResultado .= "
"; +} catch (Exception $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="inicializar();"'); +?> +
+ montarBarraComandosSuperior($arrComandos); + ?> +
+
+ + + + + +
+
+
+ +
+ Estado + +
+ id="chkSinEstadoGerado" name="chkSinEstadoGerado" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoGerado) ?> tabindex="getProxTabDados() ?>" /> + +
+ +
+ id="chkSinEstadoDisponibilizado" name="chkSinEstadoDisponibilizado" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoDisponibilizado) ?> tabindex="getProxTabDados() ?>" /> + +
+ +
+ name="chkSinEstadoConcluido" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoConcluido) ?> tabindex="getProxTabDados() ?>" /> + +
+ +
+
+
+
+ + + montarAreaTabela($strResultado, $numRegistros, true); + $objPaginaSEI->montarAreaDebug(); + $objPaginaSEI->montarBarraComandosInferior($arrComandos); + ?> +
+fecharBody(); +$objPaginaSEI->fecharHtml(); +?> diff --git a/src/pen_tramite_em_bloco_cadastrar.php b/src/pen_tramite_em_bloco_cadastrar.php new file mode 100755 index 000000000..d6427ccbc --- /dev/null +++ b/src/pen_tramite_em_bloco_cadastrar.php @@ -0,0 +1,197 @@ +setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(true); + InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + + SessaoSEI::getInstance()->validarLink(); + + // SessaoSEI::getInstance()->validarPermissao($_GET['acao']); + + $strParametros = ''; + if(isset($_GET['arvore'])) { + PaginaSEI::getInstance()->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore='.$_GET['arvore']; + } + + if (isset($_GET['id_procedimento'])) { + $strParametros .= "&id_procedimento=".$_GET['id_procedimento']; + } + + if (isset($_GET['id_documento'])) { + $strParametros .= "&id_documento=".$_GET['id_documento']; + } + + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + + $strDesabilitar = ''; + + $arrComandos = array(); + $bolCadastroOk = false; + + switch($_GET['acao']) { + case 'pen_tramite_em_bloco_cadastrar': + + $strTitulo = 'Novo Trâmite em Bloco'; + $arrComandos[] = ''; + $arrComandos[] = ''; + + $objTramiteEmBlocoDTO->setNumId(null); + $objTramiteEmBlocoDTO->setStrStaTipo(TramiteEmBlocoRN::$TB_INTERNO); + $objTramiteEmBlocoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objTramiteEmBlocoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objTramiteEmBlocoDTO->setStrDescricao($_POST['txtDescricao']); + $objTramiteEmBlocoDTO->setStrIdxBloco(null); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); + if (isset($_POST['sbmCadastrarTramiteEmBloco'])) { + try{ + // + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->cadastrar($objTramiteEmBlocoDTO); + PaginaSEI::getInstance()->setStrMensagem('Trâmite em Bloco "' . $objTramiteEmBlocoDTO->getNumId() . '" cadastrado com sucesso.'); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=md_pen_tramita_em_bloco&acao_origem=' . $_GET['acao'] . '&id_bloco=' . $objTramiteEmBlocoDTO->getNumId() . $strParametros . PaginaSEI::getInstance()->montarAncora($objTramiteEmBlocoDTO->getNumId()))); + die; + }catch(Exception $e){ + PaginaSEI::getInstance()->processarExcecao($e); + } + } + break; + + case 'pen_tramite_em_bloco_alterar': + + $strTitulo = 'Alterar Trâmite em Bloco'; + $arrComandos[] = ''; + $strDesabilitar = 'disabled="disabled"'; + + if (isset($_GET['id_bloco'])){ + $objTramiteEmBlocoDTO->setNumId($_GET['id_bloco']); + $objTramiteEmBlocoDTO->retTodos(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + if ($objTramiteEmBlocoDTO==null){ + throw new InfraException("Registro não encontrado."); + } + } else { + $objTramiteEmBlocoDTO->setNumId($_POST['hdnIdBloco']); + $objTramiteEmBlocoDTO->setStrDescricao($_POST['txtDescricao']); + } + + $arrComandos[] = ''; + + if (isset($_POST['sbmAlterarBloco'])) { + try { + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + PaginaSEI::getInstance()->setStrMensagem('Trâmite em Bloco "'.$objTramiteEmBlocoDTO->getNumId().'" alterado com sucesso.'); + header('Location: '.SessaoSEI::getInstance()->assinarLink('controlador.php?acao='.PaginaSEI::getInstance()->getAcaoRetorno().'&acao_origem='.$_GET['acao'].PaginaSEI::getInstance()->montarAncora($objTramiteEmBlocoDTO->getNumId()))); + die; + } catch (Exception $e) { + PaginaSEI::getInstance()->processarExcecao($e); + } + } + break; + + default: + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida."); + } + +} catch(Exception $e) { + PaginaSEI::getInstance()->processarExcecao($e); +} + +PaginaSEI::getInstance()->montarDocType(); +PaginaSEI::getInstance()->abrirHtml(); +PaginaSEI::getInstance()->abrirHead(); +PaginaSEI::getInstance()->montarMeta(); +PaginaSEI::getInstance()->montarTitle(PaginaSEI::getInstance()->getStrNomeSistema().' - '.$strTitulo); +PaginaSEI::getInstance()->montarStyle(); +PaginaSEI::getInstance()->abrirStyle(); +?> +#divIdentificacao {display:none;} +#lblIdBloco {position:absolute;left:0%;top:0%;width:25%;} +#txtIdBloco {position:absolute;left:0%;top:40%;width:25%;} + +#lblDescricao {position:absolute;left:0%;top:0%;width:95%;} +#txtDescricao {position:absolute;left:0%;top:18%;width:95%;} + +fecharStyle(); +PaginaSEI::getInstance()->montarJavaScript(); +PaginaSEI::getInstance()->abrirJavaScript(); +?> + +function inicializar(){ + + + + parent.document.getElementById('ifrVisualizacao').contentWindow.atualizarBlocos(getNumId()?>); + + window.parent.atualizarBlocos(getNumId()?>); + + self.setTimeout('infraFecharJanelaModal()',500); + return; + + + if (''=='pen_tramite_em_bloco_consultar') { + document.getElementById('divIdentificacao').style.display = 'block'; + infraDesabilitarCamposAreaDados(); + document.getElementById('btnFechar').focus(); + return; + } else if (''=='pen_tramite_em_bloco_cadastrar') { + document.getElementById('divIdentificacao').style.display = 'none'; + document.getElementById('txtDescricao').focus(); + } else { + document.getElementById('divIdentificacao').style.display = 'block'; + document.getElementById('btnCancelar').focus(); + } + + infraEfeitoTabelas(); +} + +function validarCadastroRI1284() { + return true; +} + +function OnSubmitForm() { + return validarCadastroRI1284(); +} + + +fecharJavaScript(); +PaginaSEI::getInstance()->fecharHead(); +PaginaSEI::getInstance()->abrirBody($strTitulo,'onload="inicializar();"'); +?> +
+montarBarraComandosSuperior($arrComandos); +?> +
+ + +
+
+ + +
+ + +montarAreaDebug(); +?> +
+fecharBody(); +PaginaSEI::getInstance()->fecharHtml(); +?> diff --git a/src/pen_tramite_processo_em_bloco_cadastrar.php b/src/pen_tramite_processo_em_bloco_cadastrar.php new file mode 100644 index 000000000..e0146612f --- /dev/null +++ b/src/pen_tramite_processo_em_bloco_cadastrar.php @@ -0,0 +1,206 @@ +validarLink(); + //$objSessaoSEI->validarPermissao($_GET['acao']); + + ////////////////////////////////////////////////////////////////////////////// + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(true); + InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// + + $strParametros = ''; + if(isset($_GET['arvore'])) { + PaginaSEI::getInstance()->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore='.$_GET['arvore']; + } + + if (isset($_GET['id_procedimento'])) { + $strParametros .= "&id_procedimento=".$_GET['id_procedimento']; + } + + if (isset($_GET['id_documento'])) { + $strParametros .= "&id_documento=".$_GET['id_documento']; + } + + SessaoSEI::getInstance()->setArrParametrosRepasseLink(array('arvore', 'pagina_simples','id_protocolo')); + + if(isset($_GET['arvore'])){ + PaginaSEI::getInstance()->setBolArvore($_GET['arvore']); + } + + $numIdProtocolo = ''; + if(isset($_GET['id_procedimento'])){ + $numIdProtocolo = $_GET['id_procedimento']; + } + +//Carregar dados do cabeçalho + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->setDblIdProcedimento($_GET['id_procedimento']); + + $objProcedimentoRN = new ProcedimentoRN(); + $arr = $objProcedimentoRN->listarCompleto($objProcedimentoDTO); + + foreach($arr as $item){ + $protocolo = $item->getStrProtocoloProcedimentoFormatado(); + } + + $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + + $arrComandos = array(); + $bolCadastroOk = false; + + switch($_GET['acao']) { + case 'pen_incluir_processo_em_bloco_tramite': + + $strTitulo = 'Incluir Processo no Bloco de Trâmite'; + $arrComandos[] = ''; + $arrComandos[] = ''; + + $objTramiteEmBlocoProtocoloDTO->setNumId(null); + $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($_GET['id_procedimento']); + $objTramiteEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($_POST['id_tramita_bloco']); + $objTramiteEmBlocoProtocoloDTO->setStrAnotacao(null); + $objTramiteEmBlocoProtocoloDTO->setNumSequencia(null); + $objTramiteEmBlocoProtocoloDTO->setStrIdxRelBlocoProtocolo($protocolo); + + if (isset($_POST['sbmCadastrarProcessoEmBloco'])) { + try{ + + $objTramiteEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + + $objTramiteEmBlocoProtocoloDTO = $objTramiteEmBlocoProtocoloRN->cadastrar($objTramiteEmBlocoProtocoloDTO); + PaginaSEI::getInstance()->setStrMensagem('Incluir Processo em Bloco "' . $objTramiteEmBlocoProtocoloDTO->getNumId() . '" cadastrado com sucesso.'); + // header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + + }catch(Exception $e){ + PaginaSEI::getInstance()->processarExcecao($e); + } + } + break; + + default: + throw new InfraException("Ação '".$_GET['acao']."' não reconhecida."); + } + + //Monta o select dos blocos + $arrMapIdBloco = array(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $arrNumIdBlocosUsados = $objTramiteEmBlocoRN->getNumMaxTamanhoDescricao($objTramiteEmBlocoDTO); + + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retNumIdUnidade(); + $objTramiteEmBlocoDTO->retStrDescricao(); + + foreach ($objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO) as $dados) { + $arrMapIdBloco[$dados->getNumId()] = $dados->getStrDescricao(); + } + +} catch(Exception $e) { + PaginaSEI::getInstance()->processarExcecao($e); +} + + $objPaginaSEI->montarDocType(); + $objPaginaSEI->abrirHtml(); + $objPaginaSEI->abrirHead(); + $objPaginaSEI->montarMeta(); + $objPaginaSEI->montarTitle($objPaginaSEI->getStrNomeSistema() . ' - ' . $strTitulo); + $objPaginaSEI->montarStyle(); + $objPaginaSEI->abrirStyle(); + +?> + #divIdentificacao {display:none;} + #lblBlocos{position:absolute;left:0%;top:0%;width:60%;min-width:250px;} + #selBlocos{position:absolute;left:0%;top:13%;width:60%;min-width:250px;} + +fecharStyle(); +$objPaginaSEI->montarJavaScript(); +$objPaginaSEI->abrirJavaScript(); +?> + +function inicializar(){ + + + + parent.document.getElementById('ifrVisualizacao').contentWindow.incluirProtocoloNoBloco(getNumId()?>); + + window.parent.incluirProtocoloNoBloco(getNumId()?>); + + self.setTimeout('infraFecharJanelaModal()',500); + return; + + +if (''=='pen_incluir_processo_em_bloco_tramite') { + document.getElementById('divIdentificacao').style.display = 'none'; + document.getElementById('id_tramita_bloco').focus(); +} else { + document.getElementById('divIdentificacao').style.display = 'block'; + document.getElementById('btnCancelar').focus(); +} + +infraEfeitoTabelas(); +} + +function validarCadastroProcessoEmBloco() { + return true; +} + +function OnSubmitForm() { + return validarCadastroProcessoEmBloco(); +} + +fecharJavaScript(); +$objPaginaSEI->fecharHead(); +$objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); +?> + +
+ + montarBarraComandosSuperior($arrComandos); + $objPaginaSEI->montarAreaValidacao(); + $objPaginaSEI->abrirAreaDados('15em'); + ?> + + + + + + + + montarAreaDebug(); + PaginaSEI::getInstance()->fecharAreaDados(); + ?> + + fecharAreaDados(); + $objPaginaSEI->montarAreaDebug(); + $objPaginaSEI->montarBarraComandosInferior($arrComandos); + ?> + +
+ +fecharBody(); +$objPaginaSEI->fecharHtml(); +?> diff --git a/src/rn/TramitaEmBlocoProtocoloRN.php b/src/rn/TramitaEmBlocoProtocoloRN.php new file mode 100755 index 000000000..fdbdbb160 --- /dev/null +++ b/src/rn/TramitaEmBlocoProtocoloRN.php @@ -0,0 +1,193 @@ +validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $parObjTramitaEmBlocoProtocoloDTO); + + $parObjRelBlocoProtocoloDTO = InfraString::prepararPesquisaDTO($parObjTramitaEmBlocoProtocoloDTO, "PalavrasPesquisa", "IdxRelBlocoProtocolo"); + $parObjRelBlocoProtocoloDTO->setStrStaNivelAcessoGlobalProtocolo(ProtocoloRN::$NA_SIGILOSO, InfraDTO::$OPER_DIFERENTE); + $arrObjRelProtocoloBlocoDTO = $this->listar($parObjRelBlocoProtocoloDTO); + + foreach ($arrObjRelProtocoloBlocoDTO as $dto) { + + $objPenProtocoloDTO = new PenProtocoloDTO(); + $objPenProtocoloDTO->setDblIdProtocolo($dto->getDblIdProtocolo()); + $objPenProtocoloDTO->retStrSinObteveRecusa(); + $objPenProtocoloDTO->setNumMaxRegistrosRetorno(1); + + $objProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); + $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); + + if (!empty($objPenProtocoloDTO)) { + $dto->setStrSinObteveRecusa($objPenProtocoloDTO->getStrSinObteveRecusa()); + } else { + $dto->setStrSinObteveRecusa('N'); + } + + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->setNumIdProcedimento($dto->getDblIdProtocolo()); + $objTramiteDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteDTO->setNumMaxRegistrosRetorno(1); + $objTramiteDTO->retNumIdTramite(); + $objTramiteDTO->retDthRegistro(); + $objTramiteDTO->retStrNomeUsuario(); + + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); + + $dto->setObjTramiteDTO($objTramiteDTO); + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($dto->getDblIdProtocolo()); + $objAtividadeDTO->setNumIdTarefa([ + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO) + ], InfraDTO::$OPER_IN); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeDTO->retDblIdProcedimentoProtocolo(); + $objAtividadeRN = new AtividadeRN(); + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); + + if (!empty($arrObjAtividadeDTO) && $arrObjAtividadeDTO[0]->getNumIdTarefa() != null) { + $dto->setNumStaIdTarefa($arrObjAtividadeDTO[0]->getNumIdTarefa()); + } else { + $dto->setNumStaIdTarefa(0); + } + + $ret[] = $dto; + } + + return $ret; + } catch (Exception $e) { + throw new InfraException('Erro listando protocolos do bloco.', $e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param TramitaEmBlocoProtocoloDTO $objDTO + * @return array + * @throws InfraException + */ + protected function listarControlado(TramitaEmBlocoProtocoloDTO $objDTO) + { + try { + //Valida Permissão + // SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $objDTO); + + $objTramitaEmBlocoProtocoloBD = new TramitaEmBlocoProtocoloBD($this->getObjInfraIBanco()); + $arrTramitaEmBlocoProtocoloDTO = $objTramitaEmBlocoProtocoloBD->listar($objDTO); + + return $arrTramitaEmBlocoProtocoloDTO; + } catch (\Exception $e) { + throw new InfraException('Falha na listagem de pendências de trâmite de processos em lote.', $e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param array $arrayObjDTO + * @return array + * @throws InfraException + */ + protected function excluirControlado(array $arrayObjDTO) + { + try { + //Valida Permissão + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_excluir', __METHOD__, $arrayObjDTO); + + $arrayExcluido = array(); + foreach ($arrayObjDTO as $objDTO) { + $objBD = new TramitaEmBlocoProtocoloBD(BancoSEI::getInstance()); + $arrayExcluido[] = $objBD->excluir($objDTO); + } + return $arrayExcluido; + } catch (Exception $e) { + throw new InfraException('Erro excluindo Bloco.', $e); + } + } + + protected function montarIndexacaoControlado(TramitaEmBlocoProtocoloDTO $obTramitaEmBlocoProtocoloDTO){ + try{ + + $dto = new TramitaEmBlocoProtocoloDTO(); + $dto->retNumId(); + + if (is_array($obTramitaEmBlocoProtocoloDTO->getNumId())) { + $dto->setNumId($obTramitaEmBlocoProtocoloDTO->getNumId(), InfraDTO::$OPER_IN); + } else { + $dto->setNumId($obTramitaEmBlocoProtocoloDTO->getNumId()); + } + + $objTramitaEmBlocoProtocoloDTOIdx = new TramitaEmBlocoProtocoloDTO(); + $objInfraException = new InfraException(); + $objTramitaEmBlocoProtocoloBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + + $arrObjTramitaEmBlocoProtocoloDTO = $this->listar($dto); + + foreach($arrObjTramitaEmBlocoProtocoloDTO as $dto) { + + $objTramitaEmBlocoProtocoloDTOIdx->setNumId($dto->getNumId()); + $objTramitaEmBlocoProtocoloDTOIdx->setStrIdxRelBlocoProtocolo(InfraString::prepararIndexacao($dto->getNumId())); + + // $this->validarStrIdxRelBlocoProtocolo($objTramitaEmBlocoProtocoloDTOIdx, $objInfraException); + // $objInfraException->lancarValidacoes(); + + //$objTramitaEmBlocoProtocoloBD->alterar($objTramitaEmBlocoProtocoloDTOIdx); + } + + } catch(Exception $e) { + throw new InfraException('Erro montando indexação de processos em bloco.',$e); + } + } + + protected function cadastrarControlado(TramitaEmBlocoProtocoloDTO $objTramitaEmBlocoProtocoloDTO) { + try { + + //Valida Permissao + // SessaoSEI::getInstance()->validarAuditarPermissao('pen_incluir_processo_em_bloco_tramite',__METHOD__,$objTramitaEmBlocoProtocoloDTO); + + //Regras de Negocio + $objInfraException = new InfraException(); + + //$this->validarStrAnotacao($objTramitaEmBlocoProtocoloDTO, $objInfraException); + // $this->validarStrIdxRelBlocoProtocolo($objTramitaEmBlocoProtocoloDTO, $objInfraException); + + $objInfraException->lancarValidacoes(); + + $objTramiteEmBlocoBD = new TramitaEmBlocoProtocoloBD($this->getObjInfraIBanco()); + $ret = $objTramiteEmBlocoBD->cadastrar($objTramitaEmBlocoProtocoloDTO); + + $this->montarIndexacao($ret); + + return $ret; + + } catch (Exception $e) { + throw new InfraException('Erro cadastrando Processo em Bloco.',$e); + } + } +} diff --git a/src/rn/TramiteEmBlocoRN.php b/src/rn/TramiteEmBlocoRN.php new file mode 100755 index 000000000..5e56cff39 --- /dev/null +++ b/src/rn/TramiteEmBlocoRN.php @@ -0,0 +1,384 @@ +getStrStaTipo())){ + $objInfraException->adicionarValidacao('Tipo não informado.'); + }else{ + if (!in_array($objTramiteEmBlocoDTO->getStrStaTipo(), InfraArray::converterArrInfraDTO($this->listarValoresTipo(),'StaTipo'))){ + $objInfraException->adicionarValidacao('Tipo inválido.'); + } + } + } + + private function validarNumIdUsuario(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException) { + if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getNumIdUsuario())){ + $objInfraException->adicionarValidacao('Usuário não informado.'); + } + } + + private function validarStrDescricao(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException){ + if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getStrDescricao())) { + + $objTramiteEmBlocoDTO->setStrDescricao(null); + + } else { + + $objTramiteEmBlocoDTO->setStrDescricao(trim($objTramiteEmBlocoDTO->getStrDescricao())); + $objTramiteEmBlocoDTO->setStrDescricao(InfraUtil::filtrarISO88591($objTramiteEmBlocoDTO->getStrDescricao())); + + if (strlen($objTramiteEmBlocoDTO->getStrDescricao()) > $this->getNumMaxTamanhoDescricao()){ + $objInfraException->adicionarValidacao('Descrição possui tamanho superior a ' .$this->getNumMaxTamanhoDescricao(). ' caracteres.'); + } + + } + } + + private function validarStrIdxBloco(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException){ + if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getStrIdxBloco())){ + + $objTramiteEmBlocoDTO->setStrIdxBloco(null); + + }else{ + + $objTramiteEmBlocoDTO->setStrIdxBloco(trim($objTramiteEmBlocoDTO->getStrIdxBloco())); + + if (strlen($objTramiteEmBlocoDTO->getStrIdxBloco()) > 500){ + $objInfraException->adicionarValidacao('Indexação possui tamanho superior a 500 caracteres.'); + } + + } + } + + private function validarStrStaEstado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException){ + if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getStrStaEstado())) { + + $objInfraException->adicionarValidacao('Estado não informado.'); + + } else { + + if (!in_array($objTramiteEmBlocoDTO->getStrStaEstado(), InfraArray::converterArrInfraDTO($this->listarValoresEstado(), 'StaEstado'))){ + $objInfraException->adicionarValidacao('Estado inválido.'); + } + + } + } + + public function listarValoresTipo(){ + try { + + $arrObjTipoDTO = array(); + + $objTipoDTO = new TipoDTO(); + $objTipoDTO->setStrStaTipo(self::$TB_INTERNO); + $objTipoDTO->setStrDescricao('Interno'); + $arrObjTipoDTO[] = $objTipoDTO; + + + return $arrObjTipoDTO; + + }catch(Exception $e){ + throw new InfraException('Erro listando valores de Tipo.', $e); + } + } + + public function listarValoresEstado(){ + try { + + $objArrEstadoBlocoDTO = array(); + + $objEstadoBlocoDTO = new EstadoBlocoDTO(); + $objEstadoBlocoDTO->setStrStaEstado(self::$TE_ABERTO); + $objEstadoBlocoDTO->setStrDescricao('Aberto'); + $objArrEstadoBlocoDTO[] = $objEstadoBlocoDTO; + + $objEstadoBlocoDTO = new EstadoBlocoDTO(); + $objEstadoBlocoDTO->setStrStaEstado(self::$TE_DISPONIBILIZADO); + $objEstadoBlocoDTO->setStrDescricao('Em Processamento'); + $objArrEstadoBlocoDTO[] = $objEstadoBlocoDTO; + + $objEstadoBlocoDTO = new EstadoBlocoDTO(); + $objEstadoBlocoDTO->setStrStaEstado(self::$TE_CONCLUIDO); + $objEstadoBlocoDTO->setStrDescricao('Concluído'); + $objArrEstadoBlocoDTO[] = $objEstadoBlocoDTO; + + return $objArrEstadoBlocoDTO; + + } catch(Exception $e) { + throw new InfraException('Erro listando valores de Estado.',$e); + } + } + + public function retornarEstadoDescricao($estado){ + try { + $arg = [ + self::$TE_ABERTO => 'Aberto', + self::$TE_DISPONIBILIZADO = 'Em Processamento', + self::$TE_RETORNADO = 'Retornado', + ]; + + return $arg[$estado]; + + } catch(Exception $e) { + throw new InfraException('Estado nâo encontrado.',$e); + } + } + + protected function listarConectado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('md_pen_tramita_em_bloco',__METHOD__,$objTramiteEmBlocoDTO); + + + if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { + $objTramiteEmBlocoDTO->retStrStaTipo(); + } + + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $ret = $objTramiteEmBlocoBD->listar($objTramiteEmBlocoDTO); + + if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { + $arrObjTipoDTO = $this->listarValoresTipo(); + foreach ($ret as $dto) { + foreach ($arrObjTipoDTO as $objTipoDTO) { + if ($dto->getStrStaTipo() == $objTipoDTO->getStrStaTipo()){ + $dto->setStrTipoDescricao($objTipoDTO->getStrDescricao()); + break; + } + } + } + } + + //Auditoria + + return $ret; + + } catch(Exception $e) { + throw new InfraException('Erro listando Tramite em Blocos.',$e); + } + } + + protected function montarIndexacaoControlado(TramiteEmBlocoDTO $obTramiteEmBlocoDTO){ + try{ + + $dto = new TramiteEmBlocoDTO(); + $dto->retNumId(); + $dto->retStrDescricao(); + + if (is_array($obTramiteEmBlocoDTO->getNumId())) { + $dto->setNumId($obTramiteEmBlocoDTO->getNumId(), InfraDTO::$OPER_IN); + } else { + $dto->setNumId($obTramiteEmBlocoDTO->getNumId()); + } + + $objTramiteEmBlocoDTOIdx = new TramiteEmBlocoDTO(); + $objInfraException = new InfraException(); + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + + $arrObjTramiteEmBlocoDTO = $this->listar($dto); + + foreach($arrObjTramiteEmBlocoDTO as $dto) { + + $objTramiteEmBlocoDTOIdx->setNumId($dto->getNumId()); + $objTramiteEmBlocoDTOIdx->setStrIdxBloco(InfraString::prepararIndexacao($dto->getNumId().' '.$dto->getStrDescricao())); + + $this->validarStrIdxBloco($objTramiteEmBlocoDTOIdx, $objInfraException); + $objInfraException->lancarValidacoes(); + + $objTramiteEmBlocoBD->alterar($objTramiteEmBlocoDTOIdx); + } + + } catch(Exception $e) { + throw new InfraException('Erro montando indexação de bloco.',$e); + } + } + + protected function cadastrarControlado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) { + try { + + //Valida Permissao +// / SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_cadastrar',__METHOD__,$objTramiteEmBlocoDTO); + + //Regras de Negocio + $objInfraException = new InfraException(); + + + $this->validarStrStaTipo($objTramiteEmBlocoDTO, $objInfraException); + $this->validarNumIdUsuario($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrDescricao($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrIdxBloco($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrStaEstado($objTramiteEmBlocoDTO, $objInfraException); + + + $objInfraException->lancarValidacoes(); + + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $ret = $objTramiteEmBlocoBD->cadastrar($objTramiteEmBlocoDTO); + + $this->montarIndexacao($ret); + + return $ret; + + } catch (Exception $e) { + throw new InfraException('Erro cadastrando Bloco.',$e); + } + } + + protected function consultarConectado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_consultar',__METHOD__,$objTramiteEmBlocoDTO); + + if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { + $objTramiteEmBlocoDTO->retStrStaTipo(); + } + + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $ret = $objTramiteEmBlocoBD->consultar($objTramiteEmBlocoDTO); + + if ($ret != null){ + if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { + $arrObjTipoDTO = $this->listarValoresTipo(); + foreach ($arrObjTipoDTO as $objTipoDTO) { + if ($ret->getStrStaTipo() == $objTipoDTO->getStrStaTipo()){ + $ret->setStrTipoDescricao($objTipoDTO->getStrDescricao()); + break; + } + } + } + } + //Auditoria + + return $ret; + } catch (Exception $e) { + throw new InfraException('Erro consultando Bloco.',$e); + } + } + + protected function alterarControlado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO){ + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_alterar',__METHOD__,$objTramiteEmBlocoDTO); + + //Regras de Negocio + $objInfraException = new InfraException(); + + $dto = new TramiteEmBlocoDTO(); + $dto->retStrStaTipo(); + $dto->setNumId($objTramiteEmBlocoDTO->getNumId()); + + $dto = $this->consultar($dto); + + if ($objTramiteEmBlocoDTO->isSetStrStaTipo() && $objTramiteEmBlocoDTO->getStrStaTipo()!=$dto->getStrStaTipo()){ + $objInfraException->lancarValidacao('Não é possível alterar o tipo do bloco.'); + } + + $objTramiteEmBlocoDTO->setStrStaTipo($dto->getStrStaTipo()); + + if ($objTramiteEmBlocoDTO->isSetStrStaTipo()){ + $this->validarStrStaTipo($objTramiteEmBlocoDTO, $objInfraException); + } + if ($objTramiteEmBlocoDTO->isSetNumIdUsuario()){ + $this->validarNumIdUsuario($objTramiteEmBlocoDTO, $objInfraException); + } + if ($objTramiteEmBlocoDTO->isSetStrDescricao()){ + $this->validarStrDescricao($objTramiteEmBlocoDTO, $objInfraException); + } + if ($objTramiteEmBlocoDTO->isSetStrIdxBloco()){ + $this->validarStrIdxBloco($objTramiteEmBlocoDTO, $objInfraException); + } + if ($objTramiteEmBlocoDTO->isSetStrStaEstado()){ + $this->validarStrStaEstado($objTramiteEmBlocoDTO, $objInfraException); + } + + $objInfraException->lancarValidacoes(); + + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $objTramiteEmBlocoBD->alterar($objTramiteEmBlocoDTO); + + $this->montarIndexacao($objTramiteEmBlocoDTO); + + //Auditoria + + } catch (Exception $e){ + throw new InfraException('Erro alterando Bloco.',$e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param array $arrayObjDTO + * @return array + * @throws InfraException + */ + protected function excluirControlado(array $arrayObjDTO) + { + try { + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('md_pen_tramita_em_bloco_excluir',__METHOD__,$arrayObjDTO); + + $arrayExcluido = array(); + foreach ($arrayObjDTO as $objDTO) { + $objBD = new TramiteEmBlocoBD(BancoSEI::getInstance()); + $arrayExcluido[] = $objBD->excluir($objDTO); + } + return $arrayExcluido; + } catch (Exception $e) { + throw new InfraException('Erro excluindo Bloco.', $e); + } + } + + protected function cancelarControlado(array $blocoIds) + { + try { + $objBloco = new TramitaEmBlocoProtocoloDTO(); + foreach ($blocoIds as $blocoId) { + $objBloco->setNumIdTramitaEmBloco($blocoId); + $objBloco->retDblIdProtocolo(); + $tramiteEmBlocoProtocoloRn = new TramitaEmBlocoProtocoloRN(); + $protocoloIds = $tramiteEmBlocoProtocoloRn->listar($objBloco); + $protocoloRn = new ExpedirProcedimentoRN(); + foreach ($protocoloIds as $protocoloId) { + $protocoloRn->cancelarTramite($protocoloId->getDblIdProtocolo()); + } + } + } catch (Exception $e) { + throw new InfraException('Erro cancelando Bloco.', $e); + } + } +} diff --git a/src/scripts/sei_atualizar_versao_modulo_pen.php b/src/scripts/sei_atualizar_versao_modulo_pen.php index 81f854fd6..c4d07df0b 100755 --- a/src/scripts/sei_atualizar_versao_modulo_pen.php +++ b/src/scripts/sei_atualizar_versao_modulo_pen.php @@ -263,6 +263,8 @@ protected function atualizarVersaoConectado() $this->instalarV3024(); case '3.2.4': $this->instalarV3030(); + case '3.4.0': + $this->instalarV3040(); break; // Ausência de [break;] proposital para realizar a atualização incremental de versões @@ -1656,9 +1658,9 @@ protected function instalarV1114() //Sequência: md_pen_seq_tramite_pendente $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_tramite_pendente'); $numMaxId = $rs[0]['total']; - if ($numMaxId == null) { - $numMaxId = 0; - } + if ($numMaxId == null) { + $numMaxId = 0; + } BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_tramite_pendente', $numMaxId + 1); $objInfraSequenciaDTO->setStrNome('md_pen_tramite_pendente'); $objInfraSequenciaDTO->retStrNome(); @@ -2520,8 +2522,77 @@ protected function instalarV3030() { $this->atualizarNumeroVersao("3.3.0"); } -} + // novo tramite em bloco + protected function instalarV3040() { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + + $objMetaBD = $this->objMeta; + $objMetaBD->criarTabela(array( + 'tabela' => 'md_pen_tramita_em_bloco', + 'cols' => array( + 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), + 'id_usuario' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), + 'descricao' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::SNULLO), + 'idx_bloco' => array($objMetaBD->tipoTextoVariavel(500), PenMetaBD::SNULLO), + 'sta_tipo' => array($objMetaBD->tipoTextoFixo(1), PenMetaBD::SNULLO), + 'sta_estado' => array($objMetaBD->tipoTextoFixo(1), PenMetaBD::SNULLO), + ), + 'pk' => array('cols' => array('id')), + 'uk' => array(), + 'fks' => array( + 'unidade' => array('nome' => 'fk_tramite_bloco_unidade', 'cols' => array('id_unidade', 'id_unidade')), + 'usuario' => array('nome' => 'fk_tramite_bloco_usuario', 'cols' => array('id_usuario', 'id_usuario')), + ) + )); + + # 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_tramita_em_bloco'); + $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_tramita_em_bloco', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_tramita_em_bloco'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $objMetaBD->criarTabela(array( + 'tabela' => 'md_pen_tramita_em_bloco_protocolo', + 'cols' => array( + 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'id_protocolo' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), + 'id_tramita_em_bloco' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), + 'anotacao' => array($objMetaBD->tipoTextoVariavel(500), PenMetaBD::SNULLO), + 'sequencia' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), + 'idx_rel_bloco_protocolo' => array($objMetaBD->tipoTextoVariavel(4000), PenMetaBD::SNULLO), + ), + 'pk' => array('cols' => array('id')), + 'uk' => array('id_protocolo', 'id_tramita_em_bloco', 'sequencia'), + 'fks' => array( + 'protocolo' => array('nome' => 'fk_tramita_em_bloco_protocolo_protocolo', 'cols' => array('id_protocolo', 'id_protocolo')), + //'md_pen_tramita_em_bloco' => array('nome' => 'fk_tramita_em_bloco_protocolo', 'cols' => array('id', 'id_tramita_em_bloco')), + ) + )); + + //Sequência: md_pen_tramita_em_bloco_protocolo + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_tramita_em_bloco_protocolo'); + $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_tramita_em_bloco_protocolo', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_tramita_em_bloco_protocolo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $this->atualizarNumeroVersao("3.4.0"); + } +} try { session_start(); diff --git a/src/scripts/sip_atualizar_versao_modulo_pen.php b/src/scripts/sip_atualizar_versao_modulo_pen.php index 919766680..76461db06 100755 --- a/src/scripts/sip_atualizar_versao_modulo_pen.php +++ b/src/scripts/sip_atualizar_versao_modulo_pen.php @@ -1,7 +1,7 @@ instalarV3024(); case '3.2.4': $this->instalarV3030(); + case '3.2.5': + $this->instalarV3031(); + case '3.4.0': + $this->instalarV3040(); + + break; // Ausência de [break;] proposital para realizar a atualização incremental de versões 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'); $this->finalizar('VERSAO DO MÓDULO JÁ CONSTA COMO ATUALIZADA'); return; } @@ -450,6 +457,28 @@ protected function consultarRecurso($numIdSistema, $strNomeRecurso) return $objRecursoDTO->getNumIdRecurso(); } + protected function consultarItemMenu($numIdSistema, $strNomeRecurso) + { + $numIdRecurso = $this->consultarRecurso($numIdSistema, $strNomeRecurso); + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setBolExclusaoLogica(false); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdRecurso($numIdRecurso); + $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO->retNumIdItemMenu(); + + $objItemMenuRN = new ItemMenuRN(); + $objItemMenuDTO = $objItemMenuRN->consultar($objItemMenuDTO); + + if ($objItemMenuDTO == null){ + throw new InfraException("Item de menu não pode ser localizado."); + throw new InfraException("Item de menu não pode ser localizado."); + } + + return array($objItemMenuDTO->getNumIdItemMenu(), $objItemMenuDTO->getNumIdMenu(), $numIdRecurso); + } + /** * Cria um novo menu lateral para o sistema SEI * @@ -569,7 +598,7 @@ public function atribuirPerfil($numIdSistema) /** - * Atualiza o número de versão do módulo nas tabelas de parâmetro do sistema + * Atualiza o número de versão do módulo nas tabelas de parâmetro do sistema * * @param string $parStrNumeroVersao * @return void @@ -623,13 +652,38 @@ private function instalarV100() $numIdSistema = $this->getNumIdSistema('SEI'); $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + //---------------------------------------------------------------------- + // Tramita.GOV.BR + //---------------------------------------------------------------------- + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setStrRotulo('Tramita.GOV.BR'); + $objItemMenuDTO->setNumMaxRegistrosRetorno(1); + $objItemMenuDTO->retNumIdItemMenu(); + + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + + //---------------------------------------------------------------------- + // Tramita.GOV.BR + //---------------------------------------------------------------------- + $numIdRecurso = $this->criarRecurso('pen_procedimento_expedido_listar', 'Tramita.GOV.BR', $numIdSistema); + $this->criarMenu('Tramita.GOV.BR', 55, null, $numIdMenu, $numIdRecurso, $numIdSistema); + + //Atribui as permissões aos recursos e menus + $this->atribuirPerfil($numIdSistema); + + //---------------------------------------------------------------------- // Expedir procedimento //---------------------------------------------------------------------- $this->criarRecurso('pen_procedimento_expedir', 'Expedir Procedimento', $numIdSistema); $this->criarRecurso('apensados_selecionar_expedir_procedimento', 'Processos Apensados', $numIdSistema); - $numIdRecurso = $this->criarRecurso('pen_procedimento_expedido_listar', 'Processos Trâmitados Externamente', $numIdSistema); - $this->criarMenu('Processos Trâmitados Externamente', 55, null, $numIdMenu, $numIdRecurso, $numIdSistema); + //$numIdRecurso = $this->criarRecurso('pen_procedimento_expedido_listar', 'Processos Trâmitados Externamente', $numIdSistema); + //$this->criarMenu('Processos Trâmitados Externamente', 55, null, $numIdMenu, $numIdRecurso, $numIdSistema); + //---------------------------------------------------------------------- // Mapeamento de documentos enviados //---------------------------------------------------------------------- @@ -1179,11 +1233,11 @@ private function instalarV119() $objRecursoDTO->retNumIdRecurso(); $objRecursoBD = new RecursoBD($this->getObjInfraIBanco()); $objRecursoDTO = $objRecursoBD->consultar($objRecursoDTO); - if (isset($objRecursoDTO)) { + if (isset($objRecursoDTO)) { $numIdRecurso = $objRecursoDTO->getNumIdRecurso(); $objRecursoDTO->setStrDescricao('Processos Tramitados Externamente'); $objRecursoBD->alterar($objRecursoDTO); - } + } $objItemMenuDTO = new ItemMenuDTO(); $objItemMenuDTO->setNumIdItemMenuPai(null); @@ -1194,12 +1248,11 @@ private function instalarV119() $objItemMenuDTO->retNumIdItemMenu(); $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); - if (isset($objItemMenuDTO)) { + if (isset($objItemMenuDTO)) { $objItemMenuDTO->setStrDescricao('Processos Tramitados Externamente'); $objItemMenuDTO->setStrRotulo('Processos Tramitados Externamente'); $objItemMenuBD->alterar($objItemMenuDTO); - } - + } $this->atualizarNumeroVersao('1.1.9'); } @@ -1209,6 +1262,59 @@ private function instalarV119() */ private function instalarV1110() { + + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + + //Menu Tramita.GOV.BR + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setStrRotulo('Tramita.GOV.BR'); + $objItemMenuDTO->setNumMaxRegistrosRetorno(1); + $objItemMenuDTO->retNumIdItemMenu(); + + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + + if (empty($objItemMenuDTO)) { + throw new InfraException('Menu "Tramita.GOV.BR" não foi localizado'); + } + + // ---------- antigo método (instalarV006R004S001US043) ---------- // + $objBD = new ItemMenuBD(BancoSip::getInstance()); + + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + + $objDTO = new ItemMenuDTO(); + $objDTO->setNumIdSistema($numIdSistema); + $objDTO->setNumIdMenu($numIdMenu); + $objDTO->setStrRotulo('Tramita.GOV.BR'); + $objDTO->setNumMaxRegistrosRetorno(1); + $objDTO->retNumIdItemMenu(); + + $objDTO = $objBD->consultar($objDTO); + if (empty($objDTO)) { + throw new InfraException('Menu "Tramita.GOV.BR" não foi localizado'); + } + + $numIdItemMenuPai = $objDTO->getNumIdItemMenu(); + + $numIdRecurso = $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trâmite Externo', $numIdSistema); + $this->criarMenu('Blocos de Trâmite Externo', 57, $numIdItemMenuPai, $numIdMenu, $numIdRecurso, $numIdSistema); + $numIdRecurso = $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trâmite Externo', $numIdSistema); + $this->criarMenu('Blocos de Trâmite Externo', 57, $numIdItemMenuPai, $numIdMenu, $numIdRecurso, $numIdSistema); + + $numIdRecurso = $this->criarRecurso('pen_procedimento_expedido_listar', 'Processos Tramitados Externamente', $numIdSistema); + $this->criarMenu('Processos Tramitados Externamente', 55, $numIdItemMenuPai, $numIdMenu, $numIdRecurso, $numIdSistema); + + $numIdRecurso = $this->criarRecurso('pen_expedir_lote_listar', 'Processos Tramitados em Lote', $numIdSistema); + $this->criarMenu('Processos Tramitados em Lote', 56, $numIdItemMenuPai, $numIdMenu, $numIdRecurso, $numIdSistema); + + $this->atribuirPerfil($numIdSistema); + $this->atualizarNumeroVersao('1.1.10'); } @@ -1402,7 +1508,7 @@ private function instalarV1503() private function instalarV2000_beta1() { // Criar novos recursos de configuração de espécie documental padrão para envio de processos - $this->logar('ATRIBUIÇÃO DE PERMISSÃO DE ATRIBUÍÇÃO DE ESPÉCIES/TIPO DE DOCUMENTO PADRÃO AO PERFIL ADMINISTRADOR'); + $this->logar('ATRIBUIÇÃO DE PERMISSÃO DE ATRIBUÃÇÃO DE ESPÉCIES/TIPO DE DOCUMENTO PADRÃO AO PERFIL ADMINISTRADOR'); $numIdSistemaSei = $this->getNumIdSistema('SEI'); $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistemaSei, "Administrador"); $this->criarRecurso('pen_map_tipo_documento_envio_padrao_atribuir', 'Atribuir espécie documental padrão para envio de processos', $numIdSistemaSei); @@ -1414,6 +1520,7 @@ private function instalarV2000_beta1() ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_tipo_doc_recebimento_padrao_atribuir'); ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_tipo_doc_recebimento_padrao_consultar'); + $this->logar('RECONFIGURAÇÃO DE MENUS DE FUNCIONALIDADES DE MAPEAMENTO DE ESPÉCIES DOCUMENTAIS DO PEN'); $this->logar('RECONFIGURAÇÃO DE MENUS DE FUNCIONALIDADES DE MAPEAMENTO DE ESPÉCIES DOCUMENTAIS DO PEN'); $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistemaSei, "Administrador"); $numIdMenuSEI = ScriptSip::obterIdMenu($numIdSistemaSei, 'Principal'); @@ -1475,17 +1582,17 @@ private function instalarV2000_beta1() $this->logar('Atribuição de permissões do módulo ao perfil Básico do SEI'); - $strNomeMenuProcessosTramitados = "Processos Tramitados Externamente"; + $strNomeMenuProcessosTramitados = "Tramita.GOV.BR"; $numIdSistemaSei = ScriptSip::obterIdSistema('SEI'); $numIdPerfilSeiBasico = ScriptSip::obterIdPerfil($numIdSistemaSei, "Básico"); $numIdMenuSei = ScriptSip::obterIdMenu($numIdSistemaSei, 'Principal'); // Remove item de menu e adiciona-o novamente para criá-lo seguindo o padrão definido na rotina adicionarItemMenu - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiBasico, 'pen_procedimento_expedir'); + /* ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiBasico, 'pen_procedimento_expedir'); $objRecursoDTO = ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiBasico, 'pen_procedimento_expedido_listar'); $numIdMenuProcessoTramitados = ScriptSip::obterIdItemMenu($numIdSistemaSei, $numIdMenuSei, $strNomeMenuProcessosTramitados); ScriptSip::removerItemMenu($numIdSistemaSei, $numIdMenuSei, $numIdMenuProcessoTramitados); - ScriptSip::adicionarItemMenu($numIdSistemaSei, $numIdPerfilSeiBasico, $numIdMenuSei, null, $objRecursoDTO->getNumIdRecurso(), $strNomeMenuProcessosTramitados, 55); + ScriptSip::adicionarItemMenu($numIdSistemaSei, $numIdPerfilSeiBasico, $numIdMenuSei, null, $objRecursoDTO->getNumIdRecurso(), $strNomeMenuProcessosTramitados, 55);*/ $this->atualizarNumeroVersao("2.0.0-beta1"); } @@ -1553,7 +1660,7 @@ protected function instalarV2100() */ protected function instalarV2101() { - // Adição de recursos relacionados à consulta de mapeamento de hipóteses legais de envio e recebimento + // Adição de recursos relacionados à consulta de mapeamento de hipóteses legais de envio e recebimento $numIdSistemaSei = $this->getNumIdSistema('SEI'); $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistemaSei, "Administrador"); $this->criarRecurso('pen_map_hipotese_legal_recebimento_consultar', 'Consulta de mapeamento de Hipóteses Legais de Recebimento', $numIdSistemaSei); @@ -1629,8 +1736,8 @@ protected function instalarV3010() $this->criarRecurso('pen_expedir_lote', 'Expedir Procedimento em Lote', $numIdSistema); ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_expedir_lote'); - $numIdRecurso = $this->criarRecurso('pen_expedir_lote_listar', 'Listar Processos Tramitados em Lote', $numIdSistema); - ScriptSip::adicionarItemMenu($numIdSistema, $numIdPerfilSeiAdministrador, $numIdMenu, null, $numIdRecurso, "Processos Tramitados em Lote", 55); + //$numIdRecurso = $this->criarRecurso('pen_expedir_lote_listar', 'Listar Processos Tramitados em Lote', $numIdSistema); + //ScriptSip::adicionarItemMenu($numIdSistema, $numIdPerfilSeiAdministrador, $numIdMenu, null, $numIdRecurso, "Processos Tramitados em Lote", 55); $this->atualizarNumeroVersao("3.1.0"); } @@ -1725,7 +1832,7 @@ protected function instalarV30113() } }; - // A partir da versão 3.0.0 é que o SIP passa a dar suporte à ícones + // A partir da versão 3.0.0 é que o SIP passa a dar suporte à ícones if (InfraUtil::compararVersoes(SIP_VERSAO, ">=", "3.0.0")) { $numIdSistema = $this->getNumIdSistema('SEI'); $numIdMenuPai = $this->getNumIdMenu('Principal', $numIdSistema); @@ -1811,6 +1918,144 @@ protected function instalarV3030() { $this->atualizarNumeroVersao("3.3.0"); } + + //Perfil Tramitador de Processos em Bloco + protected function instalarV3031() + { + + //Consulta do Sistema + $sistemaDTO = new SistemaDTO(); + $sistemaDTO->setStrSigla('SEI'); + $sistemaDTO->setNumRegistrosPaginaAtual(1); + $sistemaDTO->retNumIdSistema(); + + $sistemaRN = new SistemaRN(); + $sistemaDTO = $sistemaRN->consultar($sistemaDTO); + + if (!empty($sistemaDTO)) { + $numIdSistema = $sistemaDTO->getNumIdSistema(); + } + + //Cria função genérica de cadastro de perfil + //Cria função genérica de cadastro de perfil + $fnCadastrarPerfil = function ($numIdSistema, $nome, $descricao, $coordenado, $ativo) { + $objPerfilDTO = new PerfilDTO(); + $objPerfilDTO->setNumIdSistema($numIdSistema); + $objPerfilDTO->setStrNome($nome); + $objPerfilDTO->setStrDescricao($descricao); + $objPerfilDTO->setStrSinCoordenado($coordenado); + $objPerfilDTO->setStrSinAtivo($ativo); + + $objPerfilRN = new PerfilRN(); + $objPerfilDTO = $objPerfilRN->cadastrar($objPerfilDTO); + + return $objPerfilDTO->getNumIdPerfil(); + }; + + //Cadastrar o perfil + $id_perfil_tramitador = $fnCadastrarPerfil($numIdSistema, 'Tramitador de Processos em Bloco', 'Acesso aos recursos especí­ficos ao perfil Tramitador de Processos em Bloco', 'N', 'S'); + + $this->arrRecurso = []; + $this->arrRecurso = array_merge($this->arrRecurso, array( + $this->consultarRecurso($numIdSistema, "md_pen_tramita_em_bloco"), + $this->consultarRecurso($numIdSistema, "pen_procedimento_expedido_listar"), + $this->consultarRecurso($numIdSistema, "pen_expedir_lote_listar") + )); + + $this->arrMenu = []; + $this->arrMenu = array_merge($this->arrMenu, array( + $this->consultarItemMenu($numIdSistema, "md_pen_tramita_em_bloco") + )); + + //Atribui as permissões aos recursos e menus + //Atribui as permissões aos recursos e menus + $this->atribuirPerfil($numIdSistema, $id_perfil_tramitador); + + $this->atualizarNumeroVersao("3.2.5"); + } + + protected function instalarV3040() + { + /* Corrige nome de menu de trâmite de documentos */ + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + + //Corrige nome do recurso + // $objRecursoDTO = new RecursoDTO(); + // $objRecursoDTO->setNumIdSistema($numIdSistema); + // $objRecursoDTO->setStrNome('md_pen_tramita_em_bloco'); + // $objRecursoDTO->retNumIdRecurso(); + // $objRecursoBD = new RecursoBD($this->getObjInfraIBanco()); + // $objRecursoDTO = $objRecursoBD->consultar($objRecursoDTO); + // if (isset($objRecursoDTO)) { + // $numIdRecurso = $objRecursoDTO->getNumIdRecurso(); + // $objRecursoDTO->setStrDescricao('Blocos de Trâmite Externo'); + // $objRecursoBD->alterar($objRecursoDTO); + // } + + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdItemMenuPai(null); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdRecurso($numIdRecurso); + $objItemMenuDTO->setStrRotulo('Blocos de Trâmite Externo'); + $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + + if (isset($objItemMenuDTO)) { + $objItemMenuDTO->setStrDescricao('Blocos de Trâmite Externo'); + $objItemMenuDTO->setStrRotulo('Blocos de Trâmite Externo'); + $objItemMenuBD->alterar($objItemMenuDTO); + } + // adicionar submenu + + $this->logar('Atribuição de permissões do módulo ao perfil do SEI'); + $this->logar('Atribuição de permissões do módulo ao perfil do SEI'); + + // adicionar permissão + // adicionar permissão + $numIdPerfilSeiTramitador = ScriptSip::obterIdPerfil($numIdSistema, "Tramitador de Processos em Bloco"); + $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trâmite Externo', $numIdSistema); + $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trâmite Externo', $numIdSistema); + $this->criarRecurso('md_pen_tramita_em_bloco_cadastrar', 'Cadastrar Bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('md_pen_tramita_em_bloco_alterar', 'Alterar Descrição do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramite_em_bloco_consultar', 'Alterar Descrição do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramita_em_bloco_protocolo_listar', 'Listar Processos do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramita_em_bloco_protocolo_excluir', 'Excluir processos do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramita_em_bloco_protocolo_cancelar', 'Cancelar processos do bloco de Tramite Externo', $numIdSistema); + + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'md_pen_tramita_em_bloco'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'pen_tramite_em_bloco_cadastrar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'pen_tramite_em_bloco_alterar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'pen_tramite_em_bloco_consultar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'pen_tramite_em_bloco_cancelar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'pen_tramita_em_bloco_protocolo_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'pen_tramita_em_bloco_protocolo_excluir'); + + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'pen_incluir_processo_em_bloco_tramite'); + + $objRecursoDTO = new RecursoDTO(); + $objRecursoDTO->setNumIdSistema($numIdSistema); + $objRecursoDTO->setStrNome('md_pen_tramita_em_bloco_excluir'); + $objRecursoDTO->setStrNome('pen_tramita_em_bloco_protocolo_listar'); + $objRecursoDTO->setStrNome('pen_tramita_em_bloco_protocolo_excluir'); + $objRecursoDTO->setStrNome('pen_tramita_em_bloco_protocolo_cancelar'); + $objRecursoDTO->setStrNome('md_pen_tramita_em_bloco'); + $objRecursoDTO->retNumIdRecurso(); + $objRecursoBD = new RecursoBD($this->getObjInfraIBanco()); + $objRecursoDTO = $objRecursoBD->consultar($objRecursoDTO); + + // adicionar permissão + $numIdPerfilSeiTramitador = ScriptSip::obterIdPerfil($numIdSistema, "Tramitador de Processos em Bloco"); + $this->criarRecurso('md_pen_tramita_em_bloco_excluir', 'Blocos de Trâmite Externo', $numIdSistema); + $this->criarRecurso('md_pen_tramita_em_bloco_excluir', 'Blocos de Trâmite Externo', $numIdSistema); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiTramitador, 'md_pen_tramita_em_bloco_excluir'); + + $this->atualizarNumeroVersao("3.4.0"); + } + + } diff --git a/tests_sei4/funcional/src/paginas/PaginaTramiteEmBloco.php b/tests_sei4/funcional/src/paginas/PaginaTramiteEmBloco.php new file mode 100755 index 000000000..caf4f9a79 --- /dev/null +++ b/tests_sei4/funcional/src/paginas/PaginaTramiteEmBloco.php @@ -0,0 +1,100 @@ +selectRepositorio('RE CGPRO', 'Origem'); + $this->selectUnidade('Fabrica-org2', 'Origem'); + $this->selectRepositorio('RE CGPRO', 'Destino'); + $this->selectUnidade('Fabrica-org1', '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(); + } + + /** + * Description + * @return void + */ + private function novoBlocoDeTramite() + { + $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Novo']"); + $buttonElement->click(); + } + + /** + * Description + * @return void + */ + private function salvar() + { + $this->test->byId("btnSalvar")->click(); + } +} \ No newline at end of file diff --git a/tests_super/funcional/src/paginas/PaginaTramitarProcessoEmBloco.php b/tests_super/funcional/src/paginas/PaginaTramitarProcessoEmBloco.php new file mode 100755 index 000000000..ffc7c8ddf --- /dev/null +++ b/tests_super/funcional/src/paginas/PaginaTramitarProcessoEmBloco.php @@ -0,0 +1,100 @@ +repositorio('RE CGPRO'); + $this->unidade('Fabrica-org2'); + $this->btnEnviar(); + sleep(2); + + } + + /** + * Description + * @return void + */ + public function criarNovoBloco() + { + $this->btnNovoBlocoDeTramite(); + $this->test->byId('txtDescricao')->value('Bloco para teste funcional'); + $this->btnSalvar(); + } + + public function adicionarProcessoAoBloco() + { + $this->bntAdicionarProcessoAoBloco(); + + $selectElement = $this->test->byId('selBlocos'); + + $lastOptionScript = "var options = document.getElementById('selBlocos').options; options[options.length - 1].selected = true;"; + $this->test->execute(['script' => $lastOptionScript, 'args' => []]); + + $selectedOptionValue = $selectElement->value(); + $lastOptionElement = $this->test->byXPath("//select[@id='selBlocos']/option[last()]"); + $lastOptionValue = $lastOptionElement->attribute('value'); + + $this->test->assertEquals($lastOptionValue, $selectedOptionValue); + $this->btnSalvar(); + sleep(2); + } + + public function btnTramitarBloco() + { + // Localizar o ultimo bloco criado + $imageElement = $this->test->element($this->test->using('css selector')->value('img[alt="Bloco-0"]')); + $imageElement->click(); + sleep(2); + } + + /** + * Description + * @return void + */ + private function btnNovoBlocoDeTramite() + { + $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Novo']"); + $buttonElement->click(); + } + + /** + * Description + * @return void + */ + private function btnEnviar() + { + $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Enviar']"); + $buttonElement->click(); + } + + /** + * Description + * @return void + */ + private function btnSalvar() + { + $buttonElement = $this->test->byXPath("//button[@type='submit' and @value='Salvar']"); + $buttonElement->click(); + } + + private function bntAdicionarProcessoAoBloco() + { + $this->test->frame(null); + $this->test->frame("ifrVisualizacao"); + $this->test->byXPath("//img[contains(@alt, 'Incluir Processo no Bloco de Tramite')]")->click(); + } +} \ No newline at end of file diff --git a/tests_super/funcional/tests/CenarioBaseTestCase.php b/tests_super/funcional/tests/CenarioBaseTestCase.php index 82cf70203..a07a88f3c 100755 --- a/tests_super/funcional/tests/CenarioBaseTestCase.php +++ b/tests_super/funcional/tests/CenarioBaseTestCase.php @@ -39,9 +39,14 @@ class CenarioBaseTestCase extends Selenium2TestCase protected $paginaCancelarDocumento = null; protected $paginaTramitarProcessoEmLote = null; + protected $paginaTramitarProcessoEmBloco = null; + public function setUpPage(): void { $this->paginaBase = new PaginaTeste($this); + + $this->paginaTramitarProcessoEmBloco = new PaginaTramitarProcessoEmBloco($this); + $this->paginaDocumento = new PaginaDocumento($this); $this->paginaAssinaturaDocumento = new PaginaAssinaturaDocumento($this); $this->paginaProcesso = new PaginaProcesso($this); @@ -56,6 +61,8 @@ public function setUpPage(): void $this->paginaCancelarDocumento = new PaginaCancelarDocumento($this); $this->paginaMoverDocumento = new PaginaMoverDocumento($this); $this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this); + + $this->currentWindow()->maximize(); } @@ -221,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) @@ -763,6 +782,12 @@ protected function navegarProcessoEmLote($selAndamento, $numProtocolo=null) $this->paginaTramitarProcessoEmLote->navegarProcessoEmLote($selAndamento, $numProtocolo); } + protected function selecionarBlocoDeTramite() + { + $this->paginaTramitarProcessoEmBloco->adicionarProcessoAoBloco(); + sleep(2); + } + public function atualizarTramitesPEN($bolOrg1 = true, $bolOrg2 = true, $org2Primeiro = true, $quantidade = 1) { /*for($i=0;$i<$quantidade;$i++){ diff --git a/tests_super/funcional/tests/TramiteProcessoEmBlocoTest.php b/tests_super/funcional/tests/TramiteProcessoEmBlocoTest.php new file mode 100755 index 000000000..9d0f5d6ed --- /dev/null +++ b/tests_super/funcional/tests/TramiteProcessoEmBlocoTest.php @@ -0,0 +1,63 @@ +definirContextoTeste(CONTEXTO_ORGAO_A); + self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); + self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); + self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); + + $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); + + // Criar bloco para tramite exeterno + $this->navegarPara('md_pen_tramita_em_bloco'); + $this->paginaTramitarProcessoEmBloco->criarNovoBloco(); + + self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); + + // criar documento e anexar no bloco + $this->cadastrarDocumentoInterno(self::$documentoTeste1); + $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); + $this->abrirProcesso(self::$protocoloTeste); + + $this->selecionarBlocoDeTramite(); + + $this->navegarPara('md_pen_tramita_em_bloco'); + $this->paginaTramitarProcessoEmBloco->btnTramitarBloco(); + + // tramitar bloco + $this->paginaTramitarProcessoEmBloco->tramitar(); + sleep(10); + + $this->assertTrue(true); + + } + +} \ No newline at end of file