From 435c787797685405d03b83a5e9d84e465c56fbd1 Mon Sep 17 00:00:00 2001 From: 04290064116 Date: Fri, 1 Mar 2019 11:36:08 -0300 Subject: [PATCH] Finalizada identação do código e correção de erros que estavam impedindo o recebimento de processos --- rn/ReceberProcedimentoRN.php | 835 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 file changed, 407 insertions(+), 428 deletions(-) diff --git a/rn/ReceberProcedimentoRN.php b/rn/ReceberProcedimentoRN.php index 7959ab5..9f586a6 100644 --- a/rn/ReceberProcedimentoRN.php +++ b/rn/ReceberProcedimentoRN.php @@ -3,7 +3,6 @@ require_once dirname(__FILE__) . '/../../../SEI.php'; //TODO: Implementar validação sobre tamanho do documento a ser recebido (Parâmetros SEI) - class ReceberProcedimentoRN extends InfraRN { const STR_APENSACAO_PROCEDIMENTOS = 'Relacionamento representando a apensação de processos recebidos externamente'; @@ -34,7 +33,6 @@ class ReceberProcedimentoRN extends InfraRN return $arrObjPendencias; } - protected function receberProcedimentoControlado($parNumIdentificacaoTramite) { try { @@ -111,7 +109,6 @@ class ReceberProcedimentoRN extends InfraRN //Percorre os componentes que precisam ser recebidos foreach($objTramite->componenteDigitalPendenteDeRecebimento as $key => $componentePendente){ - if(!is_null($componentePendente)){ if(!$this->documentoJaRegistrado($strNumeroRegistro, $parNumIdentificacaoTramite, $componentePendente)){ $arrComponentesPendentesRecebimento[] = $componentePendente; @@ -208,13 +205,13 @@ class ReceberProcedimentoRN extends InfraRN $strNomeDocumento = (array_key_exists($strHash, $arrStrNomeDocumento)) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; $objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); - // @join_tec US008.09 (#23092) + // @join_tec US008.09 (#23092) $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); $this->gravarLogDebug($strMensagemRecebimento, 6); } } - // @join_tec US008.10 (#23092) + // @join_tec US008.10 (#23092) $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); }else{ $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); @@ -238,7 +235,6 @@ class ReceberProcedimentoRN extends InfraRN } } - private function substituirDestinoParaUnidadeReceptora($parObjMetadadosTramite) { if (isset($parObjMetadadosTramite->metadados->unidadeReceptora)) { @@ -251,9 +247,8 @@ class ReceberProcedimentoRN extends InfraRN } } - - public function fecharProcedimentoEmOutraUnidades(ProcedimentoDTO $objProcedimentoDTO, $parObjMetadadosProcedimento){ - + public function fecharProcedimentoEmOutraUnidades(ProcedimentoDTO $objProcedimentoDTO, $parObjMetadadosProcedimento) + { $objPenUnidadeDTO = new PenUnidadeDTO(); $objPenUnidadeDTO->setNumIdUnidadeRH($parObjMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura); $objPenUnidadeDTO->retNumIdUnidade(); @@ -302,8 +297,8 @@ class ReceberProcedimentoRN extends InfraRN * * @return array[String] */ - private function listarMetaDadosComponentesDigitais($objProtocolo){ - + private function listarMetaDadosComponentesDigitais($objProtocolo) + { $arrMetadadoDocumento = array(); $objMapBD = new GenericoBD($this->getObjInfraIBanco()); @@ -373,11 +368,9 @@ class ReceberProcedimentoRN extends InfraRN $numTamanhoMb = $objDocument->componenteDigital->tamanhoEmBytes / ( 1024 * 1024); $this->objProcessoEletronicoRN->recusarTramite($parNumIdentificacaoTramite, 'Componente digital não pode ultrapassar '.round($numTamDocExterno, 2).'MBs, o tamanho do anexo é '.round($numTamanhoMb, 2).'MBs .', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); throw new InfraException('Componente digital não pode ultrapassar '.round($numTamDocExterno, 2).'MBs, o tamanho do anexo é '.round($numTamanhoMb).'MBs'); - } } } - } private function obterDocumentosProtocolo($parObjProtocolo) @@ -441,7 +434,6 @@ class ReceberProcedimentoRN extends InfraRN return $objTramiteBD->contar($objTramiteDTO) > 0; } - private function documentoJaRegistrado($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrHashComponenteDigital) { //Verifica se componente digital já está registrado para o documento @@ -463,7 +455,6 @@ class ReceberProcedimentoRN extends InfraRN return $objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0; } - private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrProtocolo = null) { $dblIdProcedimento = null; @@ -558,14 +549,13 @@ class ReceberProcedimentoRN extends InfraRN $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); - if($flgReabrir){ $objEntradaReabrirProcessoAPI = new EntradaReabrirProcessoAPI(); $objEntradaReabrirProcessoAPI->setIdProcedimento($parDblIdProcedimento); $objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI); } - //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!) + //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!) if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) { $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento); } @@ -593,11 +583,10 @@ class ReceberProcedimentoRN extends InfraRN //$this->removerAndamentosProcedimento($objProcedimentoDTO); return $objProcedimentoDTO; - } - private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) { - + private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) + { $objUnidadeDTO = new PenUnidadeDTO(); $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); $objUnidadeDTO->setStrSinAtivo('S'); @@ -627,8 +616,8 @@ class ReceberProcedimentoRN extends InfraRN $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); } - private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo){ - + private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) + { if(!isset($objMetadadosProcedimento)){ throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); } @@ -670,6 +659,7 @@ class ReceberProcedimentoRN extends InfraRN $objProtocoloDTO->setStrProtocoloFormatado(utf8_decode($parObjProtocolo->protocolo)); $objProtocoloDTO->setDtaGeracao($this->parObjProtocoloEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); +// $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); $objProtocoloDTO->setArrObjAnexoDTO(array()); $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array()); $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array()); @@ -705,7 +695,7 @@ class ReceberProcedimentoRN extends InfraRN $objProcedimentoDTO = new ProcedimentoDTO(); $objProcedimentoDTO->setDblIdProcedimento(null); $objProcedimentoDTO->setObjProtocoloDTO($objProtocoloDTO); - $objProcedimentoDTO->setDtaGeracaoProtocolo($this->parObjProtocoloEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); + $objProcedimentoDTO->setDtaGeracaoProtocolo($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado(utf8_decode($parObjProtocolo->protocolo)); $objProcedimentoDTO->setStrSinGerarPendencia('S'); $objProcedimentoDTO->setArrObjDocumentoDTO(array()); @@ -726,7 +716,6 @@ class ReceberProcedimentoRN extends InfraRN // $objProcedimentoDTO->getNumIdUsuarioGeradorProtocolo(), // $objProcedimentoDTO->getNumIdUnidadeGeradoraProtocolo()); - //TODO:Adicionar demais informações do processo // // @@ -775,7 +764,8 @@ class ReceberProcedimentoRN extends InfraRN $objProtocoloRN->alterarRN0203($objProtocoloDTO); } - private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento){ + private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento) + { //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal) $objProtocoloDTO = new ProtocoloDTO(); $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento); @@ -789,7 +779,6 @@ class ReceberProcedimentoRN extends InfraRN $objProtocoloRN->alterarRN0203($objProtocoloDTO); } - private function removerAndamentosProcedimento($parObjProtocoloDTO) { //TODO: Remover apenas as atividades geradas pelo recebimento do processo, não as atividades geradas anteriormente @@ -836,7 +825,6 @@ class ReceberProcedimentoRN extends InfraRN $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; if(isset($objEstrutura->hierarquia)) { - $arrObjNivel = $objEstrutura->hierarquia->nivel; $nome = ""; @@ -870,7 +858,6 @@ class ReceberProcedimentoRN extends InfraRN $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; } - $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); @@ -883,10 +870,8 @@ class ReceberProcedimentoRN extends InfraRN $objAtividadeRN = new AtividadeRN(); $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); - } - //TODO: Avaliar a necessidade de registrar os dados do remetente como participante do processo private function atribuirRemetente(ProtocoloDTO $objProtocoloDTO, $objRemetente) { @@ -999,7 +984,6 @@ class ReceberProcedimentoRN extends InfraRN return $objUnidadeDTOEnvio; } - //TODO: Grande parte da regra de negócio se baseou em SEIRN:199 - incluirDocumento. //Avaliar a refatoração para impedir a duplicação de código private function atribuirDocumentos($objProcedimentoDTO, $parObjProtocolo, $objUnidadeDTO, $parObjMetadadosProcedimento) @@ -1012,15 +996,16 @@ class ReceberProcedimentoRN extends InfraRN throw new InfraException('Unidade responsável pelo documento não informada.'); } - $arrObjDocumento = $this->obterDocumentosProtocolo($objProtocolo); + $arrObjDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo); - if(!isset($arrObjDocumento) || count($arrObjDocumento) == 0) { + if(!isset($arrObjDocumentos) || count($arrObjDocumentos) == 0) { throw new InfraException('Lista de documentos não informada.'); } $strNumeroRegistro = $parObjMetadadosProcedimento->metadados->NRE; //$numTramite = $parObjMetadadosProcedimento->metadados->IDT; //Ordenação dos documentos conforme informado pelo remetente. Campo documento->ordem + usort($arrObjDocumentos, array("ReceberProcedimentoRN", "comparacaoOrdemDocumentos")); //Obter dados dos documentos já registrados no sistema @@ -1041,7 +1026,6 @@ class ReceberProcedimentoRN extends InfraRN $arrObjDocumentoDTO = array(); foreach($arrObjDocumentos as $objDocumento){ - // @join_tec US027 (#3498) if(isset($objDocumento->retirado) && $objDocumento->retirado === true) { //$strHashConteudo = ProcessoEletronicoRN::getHashFromMetaDados($objDocumento->componenteDigital->hash); @@ -1236,12 +1220,12 @@ class ReceberProcedimentoRN extends InfraRN $strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); $objDocumentoDTO->setStrConteudo(null); - //$objDocumentoDTO->setStrSinFormulario('N'); + //$objDocumentoDTO->setStrSinFormulario('N'); $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); $objDocumentoDTO->setStrSinBloqueado('S'); - //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto + //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); $objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO); @@ -1277,8 +1261,8 @@ class ReceberProcedimentoRN extends InfraRN $objProcedimentoDTO->setArrObjDocumentoDTO($arrObjDocumentoDTO); - /* if($numIdUnidadeAtual != $numIdUnidadeGeradora){ - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $numIdUnidadeAtual); + /* if($numIdUnidadeAtual != $numIdUnidadeGeradora){ + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $numIdUnidadeAtual); } */ } @@ -1286,146 +1270,148 @@ class ReceberProcedimentoRN extends InfraRN private function atribuirComponentesDigitais(DocumentoDTO $parObjDocumentoDTO, $parArrObjComponentesDigitais) { if(!isset($parArrObjComponentesDigitais)) { - throw new InfraException('Componentes digitais do documento não informado.'); - } + throw new InfraException('Componentes digitais do documento não informado.'); + } //TODO: Aplicar mesmas validações realizadas no momento do upload de um documento InfraPagina::processarUpload //TODO: Avaliar a refatoração do código abaixo para impedir a duplicação de regras de negócios + $arrObjAnexoDTO = array(); + if($parObjDocumentoDTO->getObjProtocoloDTO()->isSetArrObjAnexoDTO()) { + $arrObjAnexoDTO = $parObjDocumentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO(); + } - $arrObjAnexoDTO = array(); - if($parObjDocumentoDTO->getObjProtocoloDTO()->isSetArrObjAnexoDTO()) { - $arrObjAnexoDTO = $parObjDocumentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO(); - } - - if (!is_array($parArrObjComponentesDigitais)) { - $parArrObjComponentesDigitais = array($parArrObjComponentesDigitais); - } + if (!is_array($parArrObjComponentesDigitais)) { + $parArrObjComponentesDigitais = array($parArrObjComponentesDigitais); + } //TODO: Tratar a ordem dos componentes digitais //... + $parObjDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO); + } - $parObjDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO); - } - - private function atribuirAssunto(ProtocoloDTO $objProtocoloDTO, $numIdAssunto) - { + private function atribuirAssunto(ProtocoloDTO $objProtocoloDTO, $numIdAssunto) + { //TODO: Removido. Serão utilizados os tipos de procedimento enviados atribuídos ao tipo de processo externo (PEN_TIPO_PROCESSO_EXTERNO) - } + } - private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $objProcedimento) - { - if(isset($objProcedimento->processoApensado)) { - if(!is_array($objProcedimento->processoApensado)){ - $objProcedimento->processoApensado = array($objProcedimento->processoApensado); - } + private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $objProcedimento) + { + if(isset($objProcedimento->processoApensado)){ + if(!is_array($objProcedimento->processoApensado)){ + $objProcedimento->processoApensado = array($objProcedimento->processoApensado); + } - $objProcedimentoDTOApensado = null; - foreach ($objProcedimento->processoApensado as $processoApensado) { - $objProcedimentoDTOApensado = $this->gerarProcedimento($objMetadadosProcedimento, $processoApensado); - $this->relacionarProcedimentos($objProcedimentoDTOPrincipal, $objProcedimentoDTOApensado); - $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado); + $objProcedimentoDTOApensado = null; + foreach ($objProcedimento->processoApensado as $processoApensado){ + $objProcedimentoDTOApensado = $this->gerarProcedimento($objMetadadosProcedimento, $processoApensado); + $this->relacionarProcedimentos($objProcedimentoDTOPrincipal, $objProcedimentoDTOApensado); + $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado); + } } } -} -private function validarDadosDestinatario(InfraException $objInfraException, $objMetadadosProcedimento) -{ - if(isset($objDestinatario)){ - throw new InfraException("Parâmetro $objDestinatario não informado."); - } + private function validarDadosDestinatario(InfraException $objInfraException, $objMetadadosProcedimento) + { + $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; - $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; + if(!isset($objDestinatario)){ + throw new InfraException('Parâmetro $objDestinatario não informado.'); + } - $objPenParametroRN = new PenParametroRN(); - $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); - $numIdRepositorioDestinoProcesso = $objDestinatario->identificacaoDoRepositorioDeEstruturas; - $numeroDeIdentificacaoDaEstrutura = $objDestinatario->numeroDeIdentificacaoDaEstrutura; + $objPenParametroRN = new PenParametroRN(); + $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); + $numIdRepositorioDestinoProcesso = $objDestinatario->identificacaoDoRepositorioDeEstruturas; + $numeroDeIdentificacaoDaEstrutura = $objDestinatario->numeroDeIdentificacaoDaEstrutura; //Validação do repositório de destino do processo - if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem){ - $objInfraException->adicionarValidacao("Identificação do repositório de origem do processo [$numIdRepositorioDestinoProcesso] não reconhecida."); - } + if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem){ + $objInfraException->adicionarValidacao("Identificação do repositório de origem do processo [$numIdRepositorioDestinoProcesso] não reconhecida."); + } //Validação do unidade de destino do processo - $objUnidadeDTO = new PenUnidadeDTO(); - $objUnidadeDTO->setNumIdUnidadeRH($numeroDeIdentificacaoDaEstrutura); - $objUnidadeDTO->setStrSinAtivo('S'); - $objUnidadeDTO->retNumIdUnidade(); - - $objUnidadeRN = new UnidadeRN(); - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->setNumIdUnidadeRH($numeroDeIdentificacaoDaEstrutura); + $objUnidadeDTO->setStrSinAtivo('S'); + $objUnidadeDTO->retNumIdUnidade(); - if(!isset($objUnidadeDTO)){ - $objInfraException->adicionarValidacao("Unidade [Estrutura: {$numeroDeIdentificacaoDaEstrutura}] não configurada para receber processos externos no sistema de destino."); - } -} + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); -private function validarDadosRemetente(InfraException $objInfraException, $objMetadadosProcedimento){ + if(!isset($objUnidadeDTO)){ + $objInfraException->adicionarValidacao("Unidade [Estrutura: {$numeroDeIdentificacaoDaEstrutura}] não configurada para receber processos externos no sistema de destino."); + } + } -} + private function validarDadosRemetente(InfraException $objInfraException, $objMetadadosProcedimento) + { -private function validarDadosProcesso(InfraException $objInfraException, $objMetadadosProcedimento){ + } -} + private function validarDadosProcesso(InfraException $objInfraException, $objMetadadosProcedimento) + { -private function validarDadosDocumentos(InfraException $objInfraException, $objMetadadosProcedimento){ + } -} + private function validarDadosDocumentos(InfraException $objInfraException, $objMetadadosProcedimento) + { -private function obterNivelSigiloSEI($strNivelSigiloPEN) { - switch ($strNivelSigiloPEN) { + } - case ProcessoEletronicoRN::$STA_SIGILO_PUBLICO: return ProtocoloRN::$NA_PUBLICO; - break; - case ProcessoEletronicoRN::$STA_SIGILO_RESTRITO: return ProtocoloRN::$NA_RESTRITO; - break; - case ProcessoEletronicoRN::$STA_SIGILO_SIGILOSO: return ProtocoloRN::$NA_SIGILOSO; - break; - default: - break; - } -} + private function obterNivelSigiloSEI($strNivelSigiloPEN) + { + switch ($strNivelSigiloPEN) { + case ProcessoEletronicoRN::$STA_SIGILO_PUBLICO: return ProtocoloRN::$NA_PUBLICO; + break; + case ProcessoEletronicoRN::$STA_SIGILO_RESTRITO: return ProtocoloRN::$NA_RESTRITO; + break; + case ProcessoEletronicoRN::$STA_SIGILO_SIGILOSO: return ProtocoloRN::$NA_SIGILOSO; + break; + default: + break; + } + } -private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN) { + private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN) + { //Atribuí a hipótese legal - $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); - $objPenParametroRN = new PenParametroRN(); - $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); + $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); + $objPenParametroRN = new PenParametroRN(); + $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); - $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($parNumIdHipoteseLegalPEN); + $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($parNumIdHipoteseLegalPEN); - if (empty($numIdHipoteseLegal)) { - return $numIdHipoteseLegalPadrao; - } else { - return $numIdHipoteseLegal; + if (empty($numIdHipoteseLegal)) { + return $numIdHipoteseLegalPadrao; + } else { + return $numIdHipoteseLegal; + } } -} //TODO: Implementar o mapeamento entre as unidade do SEI e Barramento de Serviços (Secretaria de Saúde: 218794) -private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) -{ - $objUnidadeDTO = new PenUnidadeDTO(); - $objUnidadeDTO->setNumIdUnidadeRH($numIdentificacaoDaEstrutura); - $objUnidadeDTO->setStrSinAtivo('S'); - $objUnidadeDTO->retNumIdUnidade(); - $objUnidadeDTO->retNumIdOrgao(); - $objUnidadeDTO->retStrSigla(); - $objUnidadeDTO->retStrDescricao(); - - $objUnidadeRN = new UnidadeRN(); - return $objUnidadeRN->consultarRN0125($objUnidadeDTO); -} - - - /** - * - * @return SerieDTO - */ - private function obterSerieMapeada($numCodigoEspecie) - { + private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) + { + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->setNumIdUnidadeRH($numIdentificacaoDaEstrutura); + $objUnidadeDTO->setStrSinAtivo('S'); + $objUnidadeDTO->retNumIdUnidade(); + $objUnidadeDTO->retNumIdOrgao(); + $objUnidadeDTO->retStrSigla(); + $objUnidadeDTO->retStrDescricao(); + + $objUnidadeRN = new UnidadeRN(); + return $objUnidadeRN->consultarRN0125($objUnidadeDTO); + } + + + /** + * + * @return SerieDTO + */ + private function obterSerieMapeada($numCodigoEspecie) + { $objSerieDTO = null; $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); @@ -1436,363 +1422,358 @@ private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) $objMapDTO = $objGenericoBD->consultar($objMapDTO); if(empty($objMapDTO)) { - $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); - $objMapDTO->retNumIdSerie(); - $objMapDTO->setStrPadrao('S'); - $objMapDTO->setNumMaxRegistrosRetorno(1); - $objMapDTO = $objGenericoBD->consultar($objMapDTO); - } - - if(!empty($objMapDTO)) { - $objSerieDTO = new SerieDTO(); - $objSerieDTO->retStrNome(); - $objSerieDTO->retNumIdSerie(); - $objSerieDTO->setNumIdSerie($objMapDTO->getNumIdSerie()); - - $objSerieRN = new SerieRN(); - $objSerieDTO = $objSerieRN->consultarRN0644($objSerieDTO); - } - - return $objSerieDTO; - } - - private function relacionarProcedimentos($objProcedimentoDTO1, $objProcedimentoDTO2) - { - if(!isset($objProcedimentoDTO1) || !isset($objProcedimentoDTO1)) { - throw new InfraException('Parâmetro $objProcedimentoDTO não informado.'); - } - - $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); - $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($objProcedimentoDTO2->getDblIdProcedimento()); - $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO1->getDblIdProcedimento()); - $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_RELACIONADO); - $objRelProtocoloProtocoloDTO->setStrMotivo(self::STR_APENSACAO_PROCEDIMENTOS); - - $objProcedimentoRN = new ProcedimentoRN(); - $objProcedimentoRN->relacionarProcedimentoRN1020($objRelProtocoloProtocoloDTO); -} + $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); + $objMapDTO->retNumIdSerie(); + $objMapDTO->setStrPadrao('S'); + $objMapDTO->setNumMaxRegistrosRetorno(1); + $objMapDTO = $objGenericoBD->consultar($objMapDTO); + } - //TODO: Método identico ao localizado na classe SeiRN:2214 - //Refatorar código para evitar problemas de manutenção -private function prepararParticipantes($arrObjParticipanteDTO) -{ - $objContatoRN = new ContatoRN(); - $objUsuarioRN = new UsuarioRN(); + if(!empty($objMapDTO)) { + $objSerieDTO = new SerieDTO(); + $objSerieDTO->retStrNome(); + $objSerieDTO->retNumIdSerie(); + $objSerieDTO->setNumIdSerie($objMapDTO->getNumIdSerie()); - foreach($arrObjParticipanteDTO as $objParticipanteDTO) { + $objSerieRN = new SerieRN(); + $objSerieDTO = $objSerieRN->consultarRN0644($objSerieDTO); + } - $objContatoDTO = new ContatoDTO(); - $objContatoDTO->retNumIdContato(); + return $objSerieDTO; + } - if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato()) && !InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { - $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); - $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); + private function relacionarProcedimentos($objProcedimentoDTO1, $objProcedimentoDTO2) + { + if(!isset($objProcedimentoDTO1) || !isset($objProcedimentoDTO1)) { + throw new InfraException('Parâmetro $objProcedimentoDTO não informado.'); + } + + $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); + $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($objProcedimentoDTO2->getDblIdProcedimento()); + $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO1->getDblIdProcedimento()); + $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_RELACIONADO); + $objRelProtocoloProtocoloDTO->setStrMotivo(self::STR_APENSACAO_PROCEDIMENTOS); - } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato())) { - $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoRN->relacionarProcedimentoRN1020($objRelProtocoloProtocoloDTO); + } - } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { - $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); - } else { - if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_INTERESSADO) { - throw new InfraException('Interessado vazio ou nulo.'); - } - else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_REMETENTE) { - throw new InfraException('Remetente vazio ou nulo.'); - } - else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_DESTINATARIO) { - throw new InfraException('Destinatário vazio ou nulo.'); - } - } + //TODO: Método identico ao localizado na classe SeiRN:2214 + //Refatorar código para evitar problemas de manutenção + private function prepararParticipantes($arrObjParticipanteDTO) + { + $objContatoRN = new ContatoRN(); + $objUsuarioRN = new UsuarioRN(); - $arrObjContatoDTO = $objContatoRN->listarRN0325($objContatoDTO); + foreach($arrObjParticipanteDTO as $objParticipanteDTO) { + $objContatoDTO = new ContatoDTO(); + $objContatoDTO->retNumIdContato(); - if (count($arrObjContatoDTO)) { + if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato()) && !InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { + $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); + $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); - $objContatoDTO = null; + } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato())) { + $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); - //preferencia para contatos que representam usuarios - foreach($arrObjContatoDTO as $dto) { + } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { + $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); + } else { + if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_INTERESSADO) { + throw new InfraException('Interessado vazio ou nulo.'); + } + else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_REMETENTE) { + throw new InfraException('Remetente vazio ou nulo.'); + } + else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_DESTINATARIO) { + throw new InfraException('Destinatário vazio ou nulo.'); + } + } - $objUsuarioDTO = new UsuarioDTO(); - $objUsuarioDTO->setBolExclusaoLogica(false); - $objUsuarioDTO->setNumIdContato($dto->getNumIdContato()); + $arrObjContatoDTO = $objContatoRN->listarRN0325($objContatoDTO); - if ($objUsuarioRN->contarRN0492($objUsuarioDTO)) { - $objContatoDTO = $dto; - break; - } -} + if (count($arrObjContatoDTO)) { - //nao achou contato de usuario pega o primeiro retornado -if ($objContatoDTO==null) { - $objContatoDTO = $arrObjContatoDTO[0]; -} -} else { - $objContatoDTO = $objContatoRN->cadastrarContextoTemporario($objContatoDTO); -} + $objContatoDTO = null; -$objParticipanteDTO->setNumIdContato($objContatoDTO->getNumIdContato()); -} + //preferencia para contatos que representam usuarios + foreach($arrObjContatoDTO as $dto) { -return $arrObjParticipanteDTO; -} + $objUsuarioDTO = new UsuarioDTO(); + $objUsuarioDTO->setBolExclusaoLogica(false); + $objUsuarioDTO->setNumIdContato($dto->getNumIdContato()); -private function registrarProcedimentoNaoVisualizado(ProcedimentoDTO $parObjProcedimentoDTO) -{ - $objAtividadeDTOVisualizacao = new AtividadeDTO(); - $objAtividadeDTOVisualizacao->setDblIdProtocolo($parObjProcedimentoDTO->getDblIdProcedimento()); - $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO); + if ($objUsuarioRN->contarRN0492($objUsuarioDTO)) { + $objContatoDTO = $dto; + break; + } + } - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->atualizarVisualizacao($objAtividadeDTOVisualizacao); -} + //nao achou contato de usuario pega o primeiro retornado + if ($objContatoDTO==null){ + $objContatoDTO = $arrObjContatoDTO[0]; + } + } else { + $objContatoDTO = $objContatoRN->cadastrarContextoTemporario($objContatoDTO); + } -private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDTO, $retransmissao = false) -{ - $objAtividadeRN = new PenAtividadeRN(); - $objInfraException = new InfraException(); + $objParticipanteDTO->setNumIdContato($objContatoDTO->getNumIdContato()); + } - if(!$parObjProcedimentoDTO->isSetArrObjUnidadeDTO() || count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) == 0) { - $objInfraException->lancarValidacao('Unidade de destino do processo não informada.'); - } + return $arrObjParticipanteDTO; + } - $arrObjUnidadeDTO = $parObjProcedimentoDTO->getArrObjUnidadeDTO(); + private function registrarProcedimentoNaoVisualizado(ProcedimentoDTO $parObjProcedimentoDTO) + { + $objAtividadeDTOVisualizacao = new AtividadeDTO(); + $objAtividadeDTOVisualizacao->setDblIdProtocolo($parObjProcedimentoDTO->getDblIdProcedimento()); + $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO); - if(count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) > 1) { - $objInfraException->lancarValidacao('Não permitido a indicação de múltiplas unidades de destino para um processo recebido externamente.'); - } + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->atualizarVisualizacao($objAtividadeDTOVisualizacao); + } - $arrObjUnidadeDTO = array_values($parObjProcedimentoDTO->getArrObjUnidadeDTO()); - $objUnidadeDTO = $arrObjUnidadeDTO[0]; + private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDTO, $retransmissao = false) + { + $objAtividadeRN = new PenAtividadeRN(); + $objInfraException = new InfraException(); - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->retDblIdProcedimento(); - $objProcedimentoDTO->retNumIdTipoProcedimento(); - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); - $objProcedimentoDTO->retNumIdTipoProcedimento(); - $objProcedimentoDTO->retStrNomeTipoProcedimento(); - $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo(); -// $objProcedimentoDTO->retStrStaEstadoProtocolo(); - $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado()); + if(!$parObjProcedimentoDTO->isSetArrObjUnidadeDTO() || count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) == 0) { + $objInfraException->lancarValidacao('Unidade de destino do processo não informada.'); + } - $objProcedimentoRN = new ProcedimentoRN(); - $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); + $arrObjUnidadeDTO = $parObjProcedimentoDTO->getArrObjUnidadeDTO(); - if ($objProcedimentoDTO == null || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_SIGILOSO) { - $objInfraException->lancarValidacao('Processo ['.$parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'] não encontrado.'); - } + if(count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) > 1) { + $objInfraException->lancarValidacao('Não permitido a indicação de múltiplas unidades de destino para um processo recebido externamente.'); + } - if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) { - $objAcessoDTO = new AcessoDTO(); - $objAcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); - $objAcessoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); + $arrObjUnidadeDTO = array_values($parObjProcedimentoDTO->getArrObjUnidadeDTO()); + $objUnidadeDTO = $arrObjUnidadeDTO[0]; - $objAcessoRN = new AcessoRN(); - if ($objAcessoRN->contar($objAcessoDTO)==0) { - // AVALIAR $objInfraException->adicionarValidacao('Unidade ['.$objUnidadeDTO->getStrSigla().'] não possui acesso ao processo ['.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'].'); - } - } + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retDblIdProcedimento(); + $objProcedimentoDTO->retNumIdTipoProcedimento(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->retNumIdTipoProcedimento(); + $objProcedimentoDTO->retStrNomeTipoProcedimento(); + $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo(); + // $objProcedimentoDTO->retStrStaEstadoProtocolo(); + $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado()); - $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO(); - $objPesquisaPendenciaDTO->setDblIdProtocolo(array($objProcedimentoDTO->getDblIdProcedimento())); - $objPesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); - $objPesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - if($retransmissao){ - $objAtividadeRN->setStatusPesquisa(false); + if ($objProcedimentoDTO == null || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_SIGILOSO) { + $objInfraException->lancarValidacao('Processo ['.$parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'] não encontrado.'); + } -} + if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) { + $objAcessoDTO = new AcessoDTO(); + $objAcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); + $objAcessoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); -$objAtividadeDTO2 = new AtividadeDTO(); -$objAtividadeDTO2->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); -$objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); -$objAtividadeDTO2->setDthConclusao(null); + $objAcessoRN = new AcessoRN(); + if ($objAcessoRN->contar($objAcessoDTO)==0) { + // AVALIAR $objInfraException->adicionarValidacao('Unidade ['.$objUnidadeDTO->getStrSigla().'] não possui acesso ao processo ['.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'].'); + } + } + $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO(); + $objPesquisaPendenciaDTO->setDblIdProtocolo(array($objProcedimentoDTO->getDblIdProcedimento())); + $objPesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objPesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); -if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) { + if($retransmissao){ + $objAtividadeRN->setStatusPesquisa(false); + } - //reabertura automática - $objReabrirProcessoDTO = new ReabrirProcessoDTO(); - $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); - $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); + $objAtividadeDTO2 = new AtividadeDTO(); + $objAtividadeDTO2->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); + $objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO2->setDthConclusao(null); -} + + if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) { + //reabertura automática + $objReabrirProcessoDTO = new ReabrirProcessoDTO(); + $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); + } //$objPenAtividadeRN = new PenAtividadeRN(); -$arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO); + $arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO); -$objInfraException->lancarValidacoes(); + $objInfraException->lancarValidacoes(); -$objEnviarProcessoDTO = new EnviarProcessoDTO(); -$objEnviarProcessoDTO->setArrAtividadesOrigem($arrObjProcedimentoDTO[0]->getArrObjAtividadeDTO()); + $objEnviarProcessoDTO = new EnviarProcessoDTO(); + $objEnviarProcessoDTO->setArrAtividadesOrigem($arrObjProcedimentoDTO[0]->getArrObjAtividadeDTO()); -$objAtividadeDTO = new AtividadeDTO(); -$objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); -$objAtividadeDTO->setNumIdUsuario(null); -$objAtividadeDTO->setNumIdUsuarioOrigem(SessaoSEI::getInstance()->getNumIdUsuario()); -$objAtividadeDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); -$objAtividadeDTO->setNumIdUnidadeOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); -$objEnviarProcessoDTO->setArrAtividades(array($objAtividadeDTO)); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); + $objAtividadeDTO->setNumIdUsuario(null); + $objAtividadeDTO->setNumIdUsuarioOrigem(SessaoSEI::getInstance()->getNumIdUsuario()); + $objAtividadeDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); + $objAtividadeDTO->setNumIdUnidadeOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objEnviarProcessoDTO->setArrAtividades(array($objAtividadeDTO)); -$objPenParametroRN = new PenParametroRN(); + $objPenParametroRN = new PenParametroRN(); -$objEnviarProcessoDTO->setStrSinManterAberto('N'); -$strEnviaEmailNotificacao = $objPenParametroRN->getParametro('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO'); -$objEnviarProcessoDTO->setStrSinEnviarEmailNotificacao($strEnviaEmailNotificacao); -$objEnviarProcessoDTO->setStrSinRemoverAnotacoes('S'); -$objEnviarProcessoDTO->setDtaPrazo(null); -$objEnviarProcessoDTO->setNumDias(null); -$objEnviarProcessoDTO->setStrSinDiasUteis('N'); + $objEnviarProcessoDTO->setStrSinManterAberto('N'); + $strEnviaEmailNotificacao = $objPenParametroRN->getParametro('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO'); + $objEnviarProcessoDTO->setStrSinEnviarEmailNotificacao($strEnviaEmailNotificacao); + $objEnviarProcessoDTO->setStrSinRemoverAnotacoes('S'); + $objEnviarProcessoDTO->setDtaPrazo(null); + $objEnviarProcessoDTO->setNumDias(null); + $objEnviarProcessoDTO->setStrSinDiasUteis('N'); -$objAtividadeRN->enviarRN0023($objEnviarProcessoDTO); + $objAtividadeRN->enviarRN0023($objEnviarProcessoDTO); + } -} + /* Essa é a função estática de comparação */ + static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2) + { + $numOrdemDocumento1 = strtolower($parDocumento1->ordem); + $numOrdemDocumento2 = strtolower($parDocumento2->ordem); -/* Essa é a função estática de comparação */ -static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2) -{ - $numOrdemDocumento1 = strtolower($parDocumento1->ordem); - $numOrdemDocumento2 = strtolower($parDocumento2->ordem); - return $numOrdemDocumento1 - $numOrdemDocumento2; -} + return $numOrdemDocumento1 - $numOrdemDocumento2; + } -public function receberTramitesRecusados($parNumIdentificacaoTramite) -{ - try { - if (empty($parNumIdentificacaoTramite)) { - throw new InfraException('Parâmetro $parNumIdentificacaoTramite não informado.'); - } + public function receberTramitesRecusados($parNumIdentificacaoTramite) + { + try { + if (empty($parNumIdentificacaoTramite)) { + throw new InfraException('Parâmetro $parNumIdentificacaoTramite não informado.'); + } //Busca os dados do trâmite no barramento - $tramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); + $tramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); - if(!isset($tramite[0])){ - throw new InfraException("Não foi encontrado no PEN o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa"); - } + if(!isset($tramite[0])){ + throw new InfraException("Não foi encontrado no PEN o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa"); + } - $tramite = $tramite[0]; + $tramite = $tramite[0]; - $objTramiteDTO = new TramiteDTO(); - $objTramiteDTO->setNumIdTramite($parNumIdentificacaoTramite); - $objTramiteDTO->retNumIdUnidade(); + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->setNumIdTramite($parNumIdentificacaoTramite); + $objTramiteDTO->retNumIdUnidade(); - $objTramiteBD = new TramiteBD(BancoSEI::getInstance()); - $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); + $objTramiteBD = new TramiteBD(BancoSEI::getInstance()); + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - if(!isset($objTramiteDTO)){ - throw new InfraException("Não foi encontrado no sistema o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa"); - } + if(!isset($objTramiteDTO)){ + throw new InfraException("Não foi encontrado no sistema o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa"); + } - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); //Busca os dados do procedimento - $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2); - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE); - $objProcessoEletronicoDTO->retDblIdProcedimento(); - $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); - $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); + $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2); + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE); + $objProcessoEletronicoDTO->retDblIdProcedimento(); + $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); + $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); //Busca a última atividade de trâmite externo - $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2); - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); - $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco()); - $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO); + $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco()); + $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO); //Busca a unidade de destino - $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2); - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade()); - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); - $objAtributoAndamentoDTO->retStrValor(); - $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco()); - $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO); + $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2); + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade()); + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); + $objAtributoAndamentoDTO->retStrValor(); + $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco()); + $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO); //Monta o DTO de receber tramite recusado - $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2); - $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO(); - $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite); - $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); - $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null); - $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO)); - $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa)); - $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor()); + $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2); + $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO(); + $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite); + $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); + $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null); + $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO)); + $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa)); + $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor()); //Faz o tratamento do processo e do trâmite recusado - $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2); - $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO); - - } catch (Exception $e) { - $mensagemErro = InfraException::inspecionar($e); - $this->gravarLogDebug($mensagemErro); - LogSEI::getInstance()->gravar($mensagemErro); - throw $e; + $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2); + $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO); + + } catch (Exception $e) { + $mensagemErro = InfraException::inspecionar($e); + $this->gravarLogDebug($mensagemErro); + LogSEI::getInstance()->gravar($mensagemErro); + throw $e; + } } -} -protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO) -{ + protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO) + { //Realiza o desbloqueio do processo - $this->gravarLogDebug("Realizando o desbloqueio do processo", 4); - $objProtocoloDTO = new ProtocoloDTO(); - $objProtocoloDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); - $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO); - $objProtocoloRN = new ProtocoloRN(); - if($objProtocoloRN->contarRN0667($objProtocoloDTO) != 0) { - $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); - $objSeiRN = new SeiRN(); - $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); - } else { - $this->gravarLogDebug("Processo " . $objReceberTramiteRecusadoDTO->getNumIdProtocolo() . " já se encontra desbloqueado!", 6); - } + $this->gravarLogDebug("Realizando o desbloqueio do processo", 4); + $objProtocoloDTO = new ProtocoloDTO(); + $objProtocoloDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); + $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO); + $objProtocoloRN = new ProtocoloRN(); + if($objProtocoloRN->contarRN0667($objProtocoloDTO) != 0) { + $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); + $objEntradaDesbloquearProcessoAPI->setIdProcedimento($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); + $objSeiRN = new SeiRN(); + $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); + } else { + $this->gravarLogDebug("Processo " . $objReceberTramiteRecusadoDTO->getNumIdProtocolo() . " já se encontra desbloqueado!", 6); + } //Adiciona um andamento para o trâmite recusado - $this->gravarLogDebug("Adicionando andamento para registro da recusa do trâmite", 4); - $arrObjAtributoAndamentoDTO = array(); - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('MOTIVO'); - $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrMotivoRecusa()); - $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; - - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); - $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrNomeUnidadeDestino()); - $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; - - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objAtividadeDTO->setNumIdTarefa($objReceberTramiteRecusadoDTO->getNumIdTarefa()); - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); - - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + $this->gravarLogDebug("Adicionando andamento para registro da recusa do trâmite", 4); + $arrObjAtributoAndamentoDTO = array(); + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('MOTIVO'); + $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrMotivoRecusa()); + $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; - //Sinaliza na PenProtocolo que o processo obteve recusa - $this->gravarLogDebug("Atualizando protocolo sobre obtenção da ciência de recusa", 4); - $objProtocolo = new PenProtocoloDTO(); - $objProtocolo->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); - $objProtocolo->setStrSinObteveRecusa('S'); - $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); - $objProtocoloBD->alterar($objProtocolo); + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); + $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrNomeUnidadeDestino()); + $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; - $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $objReceberTramiteRecusadoDTO->getNumIdTramite(), 4); - $this->objProcessoEletronicoRN->cienciaRecusa($objReceberTramiteRecusadoDTO->getNumIdTramite()); -} + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setNumIdTarefa($objReceberTramiteRecusadoDTO->getNumIdTarefa()); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + + //Sinaliza na PenProtocolo que o processo obteve recusa + $this->gravarLogDebug("Atualizando protocolo sobre obtenção da ciência de recusa", 4); + $objProtocolo = new PenProtocoloDTO(); + $objProtocolo->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); + $objProtocolo->setStrSinObteveRecusa('S'); + $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); + $objProtocoloBD->alterar($objProtocolo); + + $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $objReceberTramiteRecusadoDTO->getNumIdTramite(), 4); + $this->objProcessoEletronicoRN->cienciaRecusa($objReceberTramiteRecusadoDTO->getNumIdTramite()); + } /** * Método que realiza a validação da extensão dos componentes digitais a serem recebidos @@ -1801,8 +1782,8 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad * @param object $parObjProtocolo * @throws InfraException */ - public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo){ - + public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo) + { //Armazena o array de documentos $arrDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo); @@ -1829,8 +1810,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO); throw new InfraException("Processo recusado devido a existência de documento em formato {$extDocumento} não permitido pelo sistema. "); } - - } } @@ -1871,6 +1850,7 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad $this->gravarLogDebug("Sincronizando o recebimento de processos concorrentes...", 4); $objProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->bloquear($objProcedimentoAndamentoDTORet) ? isset($objProcedimentoAndamentoDTORet) : false; $this->gravarLogDebug("Liberando processo concorrente de recebimento de processo ...", 4); + return $objProcedimentoAndamentoDTO; } @@ -1880,5 +1860,4 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad $strLog = sprintf("[%s] [PROCESSAMENTO] %s %s", $strDataLog, str_repeat(" ", $numIdentacao * 4), $strMensagem); InfraDebug::getInstance()->gravar($strLog); } - -} +} \ No newline at end of file -- libgit2 0.21.2