From 53db1ec642bde42b80a647ef28f6862bbaa48b82 Mon Sep 17 00:00:00 2001 From: eduardo.praxedes Date: Tue, 14 Mar 2017 10:18:16 -0300 Subject: [PATCH] Correção no recebimento de processos de outra unidade e do travamento da tela de processos em caso de indisponibilidade do módulo --- PENIntegracao.php | 10 ++++++++++ rn/ProcessoEletronicoRN.php | 11 +++++++++++ rn/ReceberProcedimentoRN.php | 20 ++++++++++++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/PENIntegracao.php b/PENIntegracao.php index 7be035a..1210888 100644 --- a/PENIntegracao.php +++ b/PENIntegracao.php @@ -32,7 +32,17 @@ class PENIntegracao extends SeiIntegracao { $dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); $numIdUsuario = SessaoSEI::getInstance()->getNumIdUsuario(); $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + + if(!file_exists($objInfraParametro->getValor('PEN_LOCALIZACAO_CERTIFICADO_DIGITAL'))){ + return array("NÃO DISPONÍVEL"); + } + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + + if(!$objProcessoEletronicoRN->testarDisponibilidade()){ + return array(); + } //Verifica se o processo encontra-se aberto na unidade atual $objAtividadeRN = new AtividadeRN(); diff --git a/rn/ProcessoEletronicoRN.php b/rn/ProcessoEletronicoRN.php index e8addbb..4e6b362 100644 --- a/rn/ProcessoEletronicoRN.php +++ b/rn/ProcessoEletronicoRN.php @@ -141,6 +141,17 @@ class ProcessoEletronicoRN extends InfraRN { } } + public function testarDisponibilidade(){ + + try{ + $this->testaUrl($this->strWSDL, $this->options['local_cert']); + return true; + } catch (Exception $ex) { + return false; + } + + } + private function getObjPenWs() { if($this->objPenWs == null) { diff --git a/rn/ReceberProcedimentoRN.php b/rn/ReceberProcedimentoRN.php index 6fd3737..b66bcde 100644 --- a/rn/ReceberProcedimentoRN.php +++ b/rn/ReceberProcedimentoRN.php @@ -475,7 +475,24 @@ class ReceberProcedimentoRN extends InfraRN //$objProcedimentoDTO = $arrObjProcedimentoDTO[0]; - + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); + $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); + $objAtividadeDTO->setOrd('Conclusao', InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdUnidade(); + + $objAtividadeRN = new AtividadeRN(); + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); + $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); + + if($arrObjAtividadeDTO){ + $objAtividadeDTO = $arrObjAtividadeDTO[0]; + $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); + } + + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $numIdUnidade); + $objSeiRN = new SeiRN(); $objAtividadeDTO = new AtividadeDTO(); @@ -483,7 +500,6 @@ class ReceberProcedimentoRN extends InfraRN $objAtividadeDTO->setDblIdProtocolo($parDblIdProcedimento); $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objAtividadeRN = new AtividadeRN(); $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); $flgReabrir = true; -- libgit2 0.21.2