From fb0d0b5bd7ed62897f6fe7c2c6af1c3122b01b80 Mon Sep 17 00:00:00 2001 From: Carlos Vieira <3831408+caduvieira@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:18:30 -0300 Subject: [PATCH] fix: reabrir processo para cancelar documento MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Caso o processo esteja fechado o mesmo é reaberto na unidade que criou o mesmo para cancelar o documento Closes #379 --- src/rn/ReceberProcedimentoRN.php | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/rn/ReceberProcedimentoRN.php b/src/rn/ReceberProcedimentoRN.php index 1b8281420..5d439db46 100755 --- a/src/rn/ReceberProcedimentoRN.php +++ b/src/rn/ReceberProcedimentoRN.php @@ -1896,8 +1896,14 @@ private function cancelarDocumentosProcesso($parDblIdProcedimento, $parArrIdDocu $objDocumentoRN = new DocumentoRN(); $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); SessaoSEI::getInstance()->setNumIdUnidadeAtual($objDocumentoDTO->getNumIdUnidadeGeradoraProtocolo()); - + //Para cancelar o documento é preciso que esteja aberto o processo na unidade que ele foi gerado. + $this->abrirProcessoSeNaoAberto($parDblIdProcedimento); + $this->objSeiRN->cancelarDocumento($objEntradaCancelarDocumentoAPI); + + $objEntradaConcluirProcessoAPI = new EntradaConcluirProcessoAPI(); + $objEntradaConcluirProcessoAPI->setIdProcedimento($parDblIdProcedimento); + $this->objSeiRN->concluirProcesso($objEntradaConcluirProcessoAPI); } } } catch(Exception $e) { @@ -1910,6 +1916,25 @@ private function cancelarDocumentosProcesso($parDblIdProcedimento, $parArrIdDocu } } + //Cópia de parte do SeiRN. Esse método deveria estar lá e não aqui no módulo. + private function abrirProcessoSeNaoAberto($parDblIdProcedimento){ + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->setDblIdProtocolo($parDblIdProcedimento); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setDthConclusao(null); + $objAtividadeRN = new AtividadeRN(); + + if ($objAtividadeRN->consultarRN0033($objAtividadeDTO)==null){ + $objReabrirProcessoDTO = new ReabrirProcessoDTO(); + $objReabrirProcessoDTO->setDblIdProcedimento($parDblIdProcedimento); + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); + } + } private function atribuirComponentesDigitais(DocumentoDTO $parObjDocumentoDTO, $parArrObjComponentesDigitais) {