From b87cc6f9473c687212767bcd3fae83c0f7d27acc Mon Sep 17 00:00:00 2001 From: Glaydson Rodrigues Date: Thu, 6 Jun 2024 09:06:41 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20incluir=20altera=C3=A7=C3=A3o=20do=20ti?= =?UTF-8?q?po=20de=20processo=20no=20andamento=20do=20processo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rn/ReceberProcedimentoRN.php | 69 +++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/src/rn/ReceberProcedimentoRN.php b/src/rn/ReceberProcedimentoRN.php index 6b58321d4..9befb02d7 100755 --- a/src/rn/ReceberProcedimentoRN.php +++ b/src/rn/ReceberProcedimentoRN.php @@ -1078,7 +1078,7 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $numIdTipoProcedimento = $this->objPenParametroRN->getParametro('PEN_TIPO_PROCESSO_EXTERNO'); $remetente = $objMetadadosProcedimento->metadados->remetente; $destinatario = $objMetadadosProcedimento->metadados->destinatario; - $this->atribuirTipoProcedimento( + $alterouTipoProcesso = $this->atribuirTipoProcedimento( $objProcedimentoDTO, $remetente, $destinatario, @@ -1113,6 +1113,10 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $objInfraParametro->setValor('SEI_FEDERACAO_NUMERO_PROCESSO', 0); $objProcedimentoDTOGerado = $objProcedimentoRN->gerarRN0156($objProcedimentoDTO); + if ($alterouTipoProcesso) { + $this->atribuirTipoProcedimentoRelacinado($objProcedimentoDTO->getNumIdTipoProcedimento(), $objProcedimentoDTOGerado->getDblIdProcedimento(), $strProcessoNegocio); + } + $objProcedimentoDTO->setDblIdProcedimento($objProcedimentoDTOGerado->getDblIdProcedimento()); $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($objProcedimentoDTO->getObjProtocoloDTO()->getStrProtocoloFormatado()); @@ -1462,11 +1466,33 @@ private function obterTipoProcessoPeloNomeOrgaoUnidade($strNomeTipoProcesso, $nu * @param \stdClass $destinatario * @param string|int $numIdTipoProcedimento * @param string|int $strProcessoNegocio - * @return ProcedimentoDTO + * @return bool * @throws InfraException */ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $remetente, $destinatario, $numIdTipoProcedimento, $strProcessoNegocio) { + + // $objTipoProcedimentoDTO = null; + // $dblAlterouTipoProcesso = false; + // if (!empty(trim($strProcessoNegocio))) { + // $objTipoProcedimentoDTO = $this->obterMapeamentoTipoProcesso($remetente, $destinatario, $strProcessoNegocio); + // $dblAlterouTipoProcesso = is_null($objTipoProcedimentoDTO); + + // if ($dblAlterouTipoProcesso) { + // $objTipoProcedimentoDTO = $this->obterTipoProcessoPeloNomeOrgaoUnidade( + // $strProcessoNegocio, + // SessaoSEI::getInstance()->getNumIdOrgaoUnidadeAtual(), + // SessaoSEI::getInstance()->getNumIdUnidadeAtual() + // ); + // } + // } + + // if (is_null($objTipoProcedimentoDTO)) { + // $dblAlterouTipoProcesso = true; + // $objTipoProcedimentoDTO = $this->obterTipoProcessoPadrao($numIdTipoProcedimento); + // } + + $dblAlterouTipoProcesso = false; if(!empty(trim($strProcessoNegocio))){ // Verifica se existe relacionamento entre orgãos $objTipoProcedimentoDTO = $this->obterMapeamentoTipoProcesso($remetente, $destinatario, $strProcessoNegocio); @@ -1478,11 +1504,14 @@ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $ SessaoSEI::getInstance()->getNumIdOrgaoUnidadeAtual(), SessaoSEI::getInstance()->getNumIdUnidadeAtual() ); + } else { + $dblAlterouTipoProcesso = true; } } if(is_null($objTipoProcedimentoDTO)){ // Verifica tipo de processo padrão cadastrado + $alterouTipoProcesso = true; $objTipoProcedimentoDTO = $this->obterTipoProcessoPadrao($numIdTipoProcedimento); } @@ -1511,6 +1540,8 @@ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $ } $objProcedimentoDTO->getObjProtocoloDTO()->setArrObjRelProtocoloAssuntoDTO($arrObjAssuntoDTO); + + return $dblAlterouTipoProcesso; } /** @@ -2892,4 +2923,38 @@ private static function validaTamanhoMaximoAnexo($nomeArquivo, $nrTamanhMegaByte } } } + + + private function atribuirTipoProcedimentoRelacinado($numIdTipoProcedimento, $numIdProcedimento, $strProcessoNegocio) { + + $objAtributoAndamentoDTOAnterior = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOAnterior->setStrNome('TIPO_PROCESSO_ANTERIOR'); + $objAtributoAndamentoDTOAnterior->setStrValor($strProcessoNegocio); + $objAtributoAndamentoDTOAnterior->setStrIdOrigem($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTOAnterior; + + $objTipoProcedimentoRN = new TipoProcedimentoRN(); + $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); + $objTipoProcedimentoDTO->setBolExclusaoLogica(false); + $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); + $objTipoProcedimentoDTO->retStrNome(); + $objTipoProcedimentoDTO->setNumIdTipoProcedimento($numIdTipoProcedimento); + $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); + + $objAtributoAndamentoDTOAtual = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOAtual->setStrNome('TIPO_PROCESSO_ATUAL'); + $objAtributoAndamentoDTOAtual->setStrValor($objTipoProcedimentoDTO->getStrNome()); + $objAtributoAndamentoDTOAtual->setStrIdOrigem($objTipoProcedimentoDTO->getNumIdTipoProcedimento()); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTOAtual; + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($numIdProcedimento); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_ALTERACAO_TIPO_PROCESSO); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); + + // Gerar a atividade + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + } }