From a263fd7c36b68a2738a2048b732791969a4d9f26 Mon Sep 17 00:00:00 2001 From: Mauro Costa Date: Wed, 25 Sep 2024 19:18:55 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20valida=C3=A7=C3=A3o=20de=20tamite=20com?= =?UTF-8?q?=20processo=20incluido=20e=20bloco,=20valida=C3=A7=C3=A3o=20par?= =?UTF-8?q?a=20visualiza=C3=A7=C3=A3o=20detalhada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...en_tramite_processo_em_bloco_cadastrar.php | 10 ++++- src/rn/ExpedirProcedimentoRN.php | 38 +++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/pen_tramite_processo_em_bloco_cadastrar.php b/src/pen_tramite_processo_em_bloco_cadastrar.php index e504647c..a9b11677 100755 --- a/src/pen_tramite_processo_em_bloco_cadastrar.php +++ b/src/pen_tramite_processo_em_bloco_cadastrar.php @@ -165,7 +165,11 @@ } break; case 'pen_tramita_em_bloco_adicionar': - $arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos')); + $arrProtocolosOrigem = array_merge( + $objPaginaSEI->getArrStrItensSelecionados('Gerados'), + $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), + $objPaginaSEI->getArrStrItensSelecionados('Detalhado') + ); $strIdItensSelecionados = $strIdItensSelecionados ?: $_GET['processos']; $strTitulo = 'Incluir Processo(s) no Bloco de Trâmite'; @@ -270,7 +274,9 @@ $objTramiteEmBlocoDTO->retNumOrdem(); $objTramiteEmBlocoDTO->retNumIdUnidade(); $objTramiteEmBlocoDTO->retStrDescricao(); - PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + if ($_GET['acao'] != 'pen_tramita_em_bloco_adicionar') { + PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + } $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); foreach ($objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO) as $dados) { diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php index a188b155..ac1a71ae 100755 --- a/src/rn/ExpedirProcedimentoRN.php +++ b/src/rn/ExpedirProcedimentoRN.php @@ -2466,6 +2466,43 @@ private function validarProcessoAbertoUnidade(InfraException $objInfraException, } } + private function validarProcessoIncluidoEmBlocoEmAndamento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + { + $concluido = array( + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE + ); + + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); + $objPenBlocoProcessoDTO->retNumIdAtividade(); + $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + + foreach ($arrPenBlocoProcessoDTO as $objPenBlocoProcessoDTO) { + if (!in_array($objPenBlocoProcessoDTO->getNumIdAtividade(), $concluido)) { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($objPenBlocoProcessoDTO->getNumIdBloco()); + $objTramiteEmBlocoDTO->retNumOrdem(); + $objTramiteEmBlocoDTO->retStrSiglaUnidade(); + $objTramiteEmBlocoDTO->retStrDescricao(); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + + $mensagem = "Prezado(a) usuário(a), o processo {$objPenBlocoProcessoDTO->getStrProtocoloFormatadoProtocolo()} encontra-se inserido no bloco {$objTramiteEmBlocoDTO->getNumOrdem()} - " + . " {$objTramiteEmBlocoDTO->getStrDescricao()} da unidade {$objTramiteEmBlocoDTO->getStrSiglaUnidade()}." + . " Para continuar com essa ação é necessário que o processo seja removido do bloco em questão."; + $objInfraException->adicionarValidacao($mensagem, $strAtributoValidacao); + } + } + } + private function validarNivelAcessoProcesso(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) { if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO) { @@ -2594,6 +2631,7 @@ public function validarPreCondicoesExpedirProcedimento(InfraException $objInfraE $this->validarDadosDocumentos($objInfraException, $objProcedimentoDTO->getArrObjDocumentoDTO(), $strAtributoValidacao); $this->validarDocumentacaoExistende($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); $this->validarProcessoAbertoUnidade($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); + $this->validarProcessoIncluidoEmBlocoEmAndamento($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); $this->validarNivelAcessoProcesso($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); $this->validarHipoteseLegalEnvio($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); $this->validarAssinaturas($objInfraException, $objProcedimentoDTO, $strAtributoValidacao);