diff --git a/src/rn/EnviarReciboTramiteRN.php b/src/rn/EnviarReciboTramiteRN.php index 5fceb8b9..4152cdd6 100755 --- a/src/rn/EnviarReciboTramiteRN.php +++ b/src/rn/EnviarReciboTramiteRN.php @@ -154,8 +154,8 @@ private function obterDataRecebimentoComponentesDigitais($parObjTramite) } foreach ($parObjTramite->itensHistorico->operacao as $operacao) { - if($operacao['situacao'] == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO) { - return ProcessoEletronicoRN::converterDataSEI($operacao['dataHora']); + if($operacao->situacao == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO) { + return ProcessoEletronicoRN::converterDataSEI($operacao->dataHora); } } diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php index 3774dedd..aef3919d 100755 --- a/src/rn/ExpedirProcedimentoRN.php +++ b/src/rn/ExpedirProcedimentoRN.php @@ -209,14 +209,14 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe $novoTramite = $this->objProcessoEletronicoRN->enviarProcessoREST($param); - $numIdTramite = $novoTramite['IDT']; + $numIdTramite = $novoTramite->IDT; $this->lancarEventoEnvioMetadados($numIdTramite); $this->atualizarPenProtocolo($dblIdProcedimento); if (isset($novoTramite)) { $objTramite = $novoTramite; - $this->objProcedimentoAndamentoRN->setOpts($objTramite['NRE'], $objTramite['IDT'], ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), $dblIdProcedimento); + $this->objProcedimentoAndamentoRN->setOpts($objTramite->NRE, $objTramite->IDT, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), $dblIdProcedimento); try { $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Envio do metadados do processo', 'S')); @@ -232,23 +232,23 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( $arrProcesso['idProcedimentoSEI'], - $objTramite['NRE'], - $objTramite['IDT'], + $objTramite->NRE, + $objTramite->IDT, ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO, - $objTramite['dataHoraDeRegistroDoTramite'], + $objTramite->dataHoraDeRegistroDoTramite, $objExpedirProcedimentoDTO->getNumIdRepositorioOrigem(), $objExpedirProcedimentoDTO->getNumIdUnidadeOrigem(), $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), $arrProcesso, - $objTramite['ticketParaEnvioDeComponentesDigitais'], - $objTramite['processosComComponentesDigitaisSolicitados'], + $objTramite->ticketParaEnvioDeComponentesDigitais, + $objTramite->processosComComponentesDigitaisSolicitados, $bolSinProcessamentoEmBloco, $numIdUnidade ); - $this->objProcessoEletronicoRN->cadastrarTramitePendente($objTramite['IDT'], $idAtividadeExpedicao); + $this->objProcessoEletronicoRN->cadastrarTramitePendente($objTramite->IDT, $idAtividadeExpedicao); //TODO: Erro no BARRAMENTO: Processo no pode ser enviado se possuir 2 documentos iguais(mesmo hash) //TODO: Melhoria no barramento de servios. O mtodo solicitar metadados no deixa claro quais os componentes digitais que @@ -257,7 +257,7 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe //componentes precisam ser baixados, semelhante ao que ocorre no enviarProcesso onde o barramento informa quais os componentes //que precisam ser enviados - $this->enviarComponentesDigitais($objTramite['NRE'], $objTramite['IDT'], $arrProcesso['protocolo'], $bolSinProcessamentoEmBloco); + $this->enviarComponentesDigitais($objTramite->NRE, $objTramite->IDT, $arrProcesso['protocolo'], $bolSinProcessamentoEmBloco); //TODO: Ao enviar o processo e seus documentos, necessrio bloquear os documentos para alterao //pois eles j foram visualizados @@ -280,7 +280,7 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concluído envio dos componentes do processo', 'S')); - $this->receberReciboDeEnvio($objTramite['IDT']); + $this->receberReciboDeEnvio($objTramite->IDT); $this->gravarLogDebug(sprintf('Trâmite do processo %s foi concluído', $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()), 2); diff --git a/src/rn/PENAgendamentoRN.php b/src/rn/PENAgendamentoRN.php index 58d3bba8..39e891a8 100755 --- a/src/rn/PENAgendamentoRN.php +++ b/src/rn/PENAgendamentoRN.php @@ -23,12 +23,12 @@ protected function atualizarHipotesesLegaisControlado() $hipotesesPenDesativadas = $processoEletronicoRN->consultarHipotesesLegais(false); $hipoteses = []; - if (!empty($hipotesesPen) && !empty($hipotesesPen['hipotesesLegais'])) { - $hipoteses = $hipotesesPen['hipotesesLegais']; + if (!empty($hipotesesPen) && !empty($hipotesesPen->hipotesesLegais)) { + $hipoteses = $hipotesesPen->hipotesesLegais; } - if (!empty($hipotesesPenDesativadas) && !empty($hipotesesPenDesativadas['hipotesesLegais'])) { - $hipoteses = array_merge($hipoteses, $hipotesesPenDesativadas['hipotesesLegais']); + if (!empty($hipotesesPenDesativadas) && !empty($hipotesesPenDesativadas->hipotesesLegais)) { + $hipoteses = array_merge($hipoteses, $hipotesesPenDesativadas->hipotesesLegais); } if(empty($hipoteses)) { @@ -39,20 +39,20 @@ protected function atualizarHipotesesLegaisControlado() foreach ($hipoteses as $hipotese) { $objDTO = new PenHipoteseLegalDTO(); - $objDTO->setNumIdentificacao($hipotese['identificacao']); + $objDTO->setNumIdentificacao($hipotese->identificacao); $objDTO->setNumMaxRegistrosRetorno(1); $objDTO->retStrNome(); $objDTO->retNumIdHipoteseLegal(); $objConsulta = $objBD->consultar($objDTO); //Caso não haja um nome para a hipótese legal, ele pula para a próxima. - if (empty($hipotese['nome'])) { + if (empty($hipotese->nome)) { continue; } - $objDTO->setStrNome(mb_convert_encoding($hipotese['nome'], 'ISO-8859-1', 'UTF-8')); + $objDTO->setStrNome(mb_convert_encoding($hipotese->nome, 'ISO-8859-1', 'UTF-8')); - if ($hipotese['status']) { + if ($hipotese->status) { $objDTO->setStrAtivo('S'); } else { $objDTO->setStrAtivo('N'); diff --git a/src/rn/ProcessoEletronicoRN.php b/src/rn/ProcessoEletronicoRN.php index 77c7585e..6b8cd22f 100755 --- a/src/rn/ProcessoEletronicoRN.php +++ b/src/rn/ProcessoEletronicoRN.php @@ -184,11 +184,11 @@ public function consultarRepositoriosDeEstruturas($numIdentificacaoDoRepositorio if (isset($arrResultado)) { foreach ($arrResultado as $repositorio) { - if ($repositorio['id'] == $numIdentificacaoDoRepositorioDeEstruturas) { + if ($repositorio->id == $numIdentificacaoDoRepositorioDeEstruturas) { $objRepositorioDTO = new RepositorioDTO(); - $objRepositorioDTO->setNumId($repositorio['id']); - $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio['nome'], 'ISO-8859-1', 'UTF-8')); - $objRepositorioDTO->setBolAtivo($repositorio['ativo']); + $objRepositorioDTO->setNumId($repositorio->id); + $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio->nome, 'ISO-8859-1', 'UTF-8')); + $objRepositorioDTO->setBolAtivo($repositorio->ativo); } } } @@ -221,9 +221,9 @@ public function listarRepositoriosDeEstruturas($ativo = true) if (isset($arrResultado)) { foreach ($arrResultado as $repositorio) { $objRepositorioDTO = new RepositorioDTO(); - $objRepositorioDTO->setNumId($repositorio['id']); - $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio['nome'], 'ISO-8859-1', 'UTF-8')); - $objRepositorioDTO->setBolAtivo($repositorio['ativo']); + $objRepositorioDTO->setNumId($repositorio->id); + $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio->nome, 'ISO-8859-1', 'UTF-8')); + $objRepositorioDTO->setBolAtivo($repositorio->ativo); $arrObjRepositorioDTO[] = $objRepositorioDTO; } } @@ -253,12 +253,12 @@ public function consultarEstrutura($idRepositorioEstrutura, $numeroDeIdentificac $arrResultado = $this->get($endpoint, $parametros); if ($bolRetornoRaw !== false) { - $arrResultado['nome'] = mb_convert_encoding($arrResultado['nome'], 'ISO-8859-1', 'UTF-8'); - $arrResultado['sigla'] = mb_convert_encoding($arrResultado['sigla'], 'ISO-8859-1', 'UTF-8'); + $arrResultado->nome = mb_convert_encoding($arrResultado->nome, 'ISO-8859-1', 'UTF-8'); + $arrResultado->sigla = mb_convert_encoding($arrResultado->sigla, 'ISO-8859-1', 'UTF-8'); - if (isset($arrResultado['hierarquia']) && is_array($arrResultado['hierarquia'])) { - foreach ($arrResultado['hierarquia'] as &$arrHierarquia) { - $arrHierarquia['nome'] = mb_convert_encoding($arrHierarquia['nome'], 'ISO-8859-1', 'UTF-8'); + if (isset($arrResultado->hierarquia) && is_array($arrResultado->hierarquia)) { + foreach ($arrResultado->hierarquia as &$arrHierarquia) { + $arrHierarquia->nome = mb_convert_encoding($arrHierarquia->nome, 'ISO-8859-1', 'UTF-8'); } } @@ -266,12 +266,12 @@ public function consultarEstrutura($idRepositorioEstrutura, $numeroDeIdentificac } $objEstruturaDTO = new EstruturaDTO(); - $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($arrResultado['numeroDeIdentificacaoDaEstrutura']); - $objEstruturaDTO->setStrNome(mb_convert_encoding($arrResultado['nome'], 'ISO-8859-1', 'UTF-8')); - $objEstruturaDTO->setStrSigla(mb_convert_encoding($arrResultado['sigla'], 'ISO-8859-1', 'UTF-8')); - $objEstruturaDTO->setBolAtivo($arrResultado['ativo']); - $objEstruturaDTO->setBolAptoParaReceberTramites($arrResultado['aptoParaReceberTramites']); - $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($arrResultado['codigoNoOrgaoEntidade']); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($arrResultado->numeroDeIdentificacaoDaEstrutura); + $objEstruturaDTO->setStrNome(mb_convert_encoding($arrResultado->nome, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($arrResultado->sigla, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setBolAtivo($arrResultado->ativo); + $objEstruturaDTO->setBolAptoParaReceberTramites($arrResultado->aptoParaReceberTramites); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($arrResultado->codigoNoOrgaoEntidade); return $objEstruturaDTO; } catch (Exception $e) { @@ -438,17 +438,17 @@ public function buscarEstrutura( if ($estrutura !== null) { $objEstruturaDTO = new EstruturaDTO(); - $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura['numeroDeIdentificacaoDaEstrutura']); - $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura['nome'], 'ISO-8859-1', 'UTF-8')); - $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura['sigla'], 'ISO-8859-1', 'UTF-8')); - $objEstruturaDTO->setBolAtivo($estrutura['ativo']); - $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura['aptoParaReceberTramites']); - $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura['codigoNoOrgaoEntidade']); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura); + $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura->nome, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura->sigla, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setBolAtivo($estrutura->ativo); + $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade); $arrHerarquia = array_map( function ($nivel) { - return mb_convert_encoding($nivel['sigla'], 'ISO-8859-1', 'UTF-8'); - }, $estrutura['hierarquia'] ?: [] + return mb_convert_encoding($nivel->sigla, 'ISO-8859-1', 'UTF-8'); + }, $estrutura->hierarquia ?: [] ); $objEstruturaDTO->setArrHierarquia($arrHerarquia); @@ -663,22 +663,22 @@ public function listarEstruturasAutoCompletar( $arrResultado = $this->consultarEstruturas($idRepositorioEstrutura, $parametros); - if ($arrResultado['totalDeRegistros'] > 0) { - foreach ($arrResultado['estruturas'] as $estrutura) { + if ($arrResultado->totalDeRegistros > 0) { + foreach ($arrResultado->estruturas as $estrutura) { $objEstruturaDTO = new EstruturaDTO(); - $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura['numeroDeIdentificacaoDaEstrutura']); - $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura['nome'], 'UTF-8')); - $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura['sigla'], 'UTF-8')); - $objEstruturaDTO->setBolAtivo($estrutura['ativo']); - $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura['aptoParaReceberTramites']); - $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura['codigoNoOrgaoEntidade']); - $objEstruturaDTO->setNumTotalDeRegistros($arrResultado['totalDeRegistros']); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura); + $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura->nome, 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura->sigla, 'UTF-8')); + $objEstruturaDTO->setBolAtivo($estrutura->ativo); + $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade); + $objEstruturaDTO->setNumTotalDeRegistros($arrResultado->totalDeRegistros); $arrHerarquia = array_map( function ($nivel) { - return mb_convert_encoding($nivel['sigla'], 'UTF-8'); - }, $estrutura['hierarquia'] ?: [] + return mb_convert_encoding($nivel->sigla, 'UTF-8'); + }, $estrutura->hierarquia ?: [] ); $objEstruturaDTO->setArrHierarquia($arrHerarquia); @@ -686,7 +686,7 @@ function ($nivel) { $arrObjEstruturaDTO["itens"][] = $objEstruturaDTO; } - $totalDeRegistros = $arrResultado['totalDeRegistros']; + $totalDeRegistros = $arrResultado->totalDeRegistros; $arrObjEstruturaDTO["diferencaDeRegistros"] = $totalDeRegistros > count($arrObjEstruturaDTO["itens"]) ? $totalDeRegistros - count($arrObjEstruturaDTO["itens"]) : 0; } @@ -709,10 +709,10 @@ public function consultarMotivosUrgencia() $arrResultado = $this->get($endpoint, $parametros); $arrMotivosUrgencia = []; if (isset($arrResultado)) { - $count = count($arrResultado['motivosUrgencia']); + $count = count($arrResultado->motivosUrgencia); for ($i = 0; $i < $count; $i++) { $codigo = $i + 1; - $arrMotivosUrgencia[$codigo] = mb_convert_encoding($arrResultado['motivosUrgencia'][$i]['descricao'], 'ISO-8859-1', 'UTF-8'); + $arrMotivosUrgencia[$codigo] = mb_convert_encoding($arrResultado->motivosUrgencia[$i]->descricao, 'ISO-8859-1', 'UTF-8'); } } @@ -741,10 +741,10 @@ public function consultarEspeciesDocumentais() $arrResultado = $this->get($endpoint, $parametros); $arrEspecies = []; if (isset($arrResultado)) { - $count = count($arrResultado['especies']); + $count = count($arrResultado->especies); for ($i = 0; $i < $count; $i++) { $codigo = $i + 1; - $arrEspecies[$codigo] = mb_convert_encoding($arrResultado['especies'][$i]['nomeNoProdutor'], 'ISO-8859-1', 'UTF-8'); + $arrEspecies[$codigo] = mb_convert_encoding($arrResultado->especies[$i]->nomeNoProdutor, 'ISO-8859-1', 'UTF-8'); } } @@ -790,11 +790,11 @@ public function listarPendencias($bolTodasPendencias) $arrResultado = $this->get($endpoint, $parametros); - if (is_array($arrResultado) && !is_null($arrResultado)) { + if (!is_null($arrResultado)) { foreach ($arrResultado as $strPendencia) { $pendenciaDTO = new PendenciaDTO(); - $pendenciaDTO->setNumIdentificacaoTramite($strPendencia['IDT']); - $pendenciaDTO->setStrStatus($strPendencia['status']); + $pendenciaDTO->setNumIdentificacaoTramite($strPendencia->IDT); + $pendenciaDTO->setStrStatus($strPendencia->status); $arrObjPendenciaDTO[] = $pendenciaDTO; } } @@ -1163,30 +1163,23 @@ public function solicitarMetadados($parNumIdentificacaoTramite) 'IDT' => $parNumIdentificacaoTramite ]; - $arrResultado = $this->get($endpoint, $parametros); - - $arrResultado['IDT'] = $parNumIdentificacaoTramite; - $arrResultado['NRE'] = $arrResultado['nre']; + $objResultado = $this->get($endpoint, $parametros); - $objResultado = new stdClass(); $objResultado->IDT = $parNumIdentificacaoTramite; - $objResultado->NRE = $arrResultado['nre']; + $objResultado->NRE = $objResultado->nre; // verificar se é um documento avulso - if (!array_key_exists('processo', $arrResultado) || $arrResultado['processo'] == null) { - $objResultado->metadados = $this->converterArrayParaObjeto($arrResultado); - + if (!property_exists($objResultado,'processo') || $objResultado->processo == null) { + $objResultado->metadados = $objResultado; return $objResultado; } $multivalorado = false; - if (count($arrResultado['processo']['documentos']) <= 1) { - $arrResultado['processo']['documentos'] = (object) $arrResultado['processo']['documentos'][0]; - } else { + if (count($objResultado->processo->documentos) > 1) { $multivalorado = true; - } + } - $objResultado->metadados = $this->converterArrayParaObjeto($arrResultado); + $objResultado->metadados = $objResultado; if ($multivalorado) { $objResultado->metadados->processo->documentos = (array) $objResultado->metadados->processo->documentos; @@ -1279,10 +1272,10 @@ public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroR throw new InfraException('Parâmetro $objProcesso não informado.'); } - if (is_array($parObjProtocolo)) { - $parObjProtocolo = (object) $parObjProtocolo; - } + $parObjProtocolo = $this->converterArrayParaObjeto($parObjProtocolo); + + //Monta dados do processo eletrônico $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); $objProcessoEletronicoDTO->setStrNumeroRegistro($parStrNumeroRegistro); @@ -1435,10 +1428,7 @@ protected function cadastrarTramiteDeProcessoInternoControlado(ProcessoEletronic */ public static function getHashFromMetaDados($objMeta) { - if (is_array($objMeta)) { - $objMeta = (object) $objMeta; - } - + $strHashConteudo = ''; if (isset($objMeta)) { @@ -1478,10 +1468,6 @@ private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNume foreach ($arrayComponentesDigitais as $objComponenteDigital){ - if (is_array($objComponenteDigital)) { - $objComponenteDigital = (object) $objComponenteDigital; - } - $contComponentes++; $objComponenteDigitalDTO = new ComponenteDigitalDTO(); $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); @@ -1570,7 +1556,7 @@ private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIden if(is_array($objDocumento->componentesDigitais) && count($objDocumento->componentesDigitais) != 1) { throw new InfraException("Erro processando componentes digitais do processo " . $parObjProtocolo->protocolo . "\n Somente é permitido o recebimento de documentos com apenas um Componente Digital."); } - + $arrComponenteDigital = is_array($objDocumento->componentesDigitais) ? $objDocumento->componentesDigitais[0] : $objDocumento->componentesDigitais; $objComponenteDigital = (object) $arrComponenteDigital; $objComponenteDigitalDTO->setStrNome(utf8_decode($objComponenteDigital->nome)); @@ -1598,9 +1584,8 @@ private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIden $arrObjItensSolicitados = $parObjComponentesDigitaisSolicitados ?? [$parObjComponentesDigitaisSolicitados]; foreach ($arrObjItensSolicitados as $objItemSolicitado) { if(!is_null($objItemSolicitado)) { - $objItemSolicitado['hashes'] = is_array($objItemSolicitado['hashes']) ? $objItemSolicitado['hashes'] : [$objItemSolicitado['hashes']]; - if($objItemSolicitado['protocolo'] == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado['hashes']) && !$objDocumento->retirado) { + if($objItemSolicitado->protocolo == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado->hashes) && !$objDocumento->retirado) { $objComponenteDigitalDTO->setStrSinEnviar("S"); } } @@ -1691,20 +1676,20 @@ public function consultarTramites($parNumIdTramite = null, $parNumeroRegistro = $arrResultado = $this->get($endpoint, $parametros); - if (isset($arrResultado['tramites']) && !empty($arrResultado['tramites'][0])) { + if (isset($arrResultado->tramites) && !empty($arrResultado->tramites[0])) { $itensHistorico = []; - foreach ($arrResultado['tramites'][0]['mudancasDeSituacao'] as $mudancaDeSituacao) { + foreach ($arrResultado->tramites[0]->mudancasDeSituacao as $mudancaDeSituacao) { $itensHistorico['operacao'][] = $mudancaDeSituacao; } - $arrResultado['tramites'][0] = array_filter( - $arrResultado['tramites'][0], function ($value) { + $arrResultado->tramites[0] = array_filter( + get_object_vars($arrResultado->tramites[0]), function ($value) { return !is_null($value); } ); - $arrObjTramite[] = $this->converterArrayParaObjeto($arrResultado['tramites'][0]); + $arrObjTramite[] = $this->converterArrayParaObjeto($arrResultado->tramites[0]); $arrObjTramite[0]->itensHistorico = (object) $itensHistorico; } @@ -1912,7 +1897,7 @@ public function receberReciboDeTramite($parNumIdTramite) ]; $arrResultado = $this->get($endpoint, $parametros); - $arrResultado['recibo']['hashDoComponenteDigital'] = $arrResultado['recibo']['hashesDosComponentesDigitais'][0]; + $arrResultado->recibo->hashDoComponenteDigital= $arrResultado->recibo->hashesDosComponentesDigitais[0]; return $this->converterArrayParaObjeto($arrResultado); @@ -1938,7 +1923,7 @@ public function receberReciboDeEnvio($parNumIdTramite) ]; $arrResultado = $this->get($endpoint, $parametros); - $arrResultado['reciboDeEnvio']['hashDoComponenteDigital'] = $arrResultado['reciboDeEnvio']['hashesDosComponentesDigitais'][0]; + $arrResultado->reciboDeEnvio->hashDoComponenteDigital = $arrResultado->reciboDeEnvio->hashesDosComponentesDigitais[0]; return $this->converterArrayParaObjeto($arrResultado); } @@ -2270,31 +2255,14 @@ public static function comparacaoOrdemAjustadaDocumentos($parDocumento1, $parDoc } public static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2) - { - - if (is_array($parDocumento1)) { - $parDocumento1 = (object) $parDocumento1; - } - - if (is_array($parDocumento2)) { - $parDocumento2 = (object) $parDocumento2; - } - + { $numOrdemDocumento1 = intval($parDocumento1->ordem); $numOrdemDocumento2 = intval($parDocumento2->ordem); return $numOrdemDocumento1 - $numOrdemDocumento2; } public static function comparacaoOrdemComponenteDigitais($parComponenteDigital1, $parComponenteDigital2) - { - if (is_array($parComponenteDigital1)) { - $parComponenteDigital1 = (object) $parComponenteDigital1; - } - - if (is_array($parComponenteDigital2)) { - $parComponenteDigital2 = (object) $parComponenteDigital2; - } - + { $numOrdemComponenteDigital1 = intval($parComponenteDigital1->ordem); $numOrdemComponenteDigital2 = intval($parComponenteDigital2->ordem); return $numOrdemComponenteDigital1 - $numOrdemComponenteDigital2; @@ -2308,10 +2276,7 @@ public static function obterDocumentosProtocolo($parObjProtocolo, $parBolExtrair usort($arrObjProtocolo, ["ProcessoEletronicoRN", "comparacaoOrdemAjustadaDocumentos"]); //Tratamento recursivo para processos anexados - foreach ($arrObjProtocolo as $objProtocolo) { - if (is_array(($objProtocolo))) { - $objProtocolo = (object) $objProtocolo; - } + foreach ($arrObjProtocolo as $objProtocolo) { $bolEhProcessoAnexado = $objProtocolo->staTipoProtocolo == ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO; if($parBolExtrairAnexados && $bolEhProcessoAnexado) { $arrProtocolosAnexados = ProcessoEletronicoRN::obterDocumentosProtocolo($objProtocolo, $parBolExtrairAnexados); @@ -2340,10 +2305,7 @@ public static function obterDocumentosProtocolo($parObjProtocolo, $parBolExtrair $arrObjDocumentoPadronizados = ($parBolExtrairAnexados) ? $arrObjDocumento : $arrObjProtocolo; - foreach ($arrObjDocumentoPadronizados as $documento) { - if (is_array($documento) && $documento['componentesDigitais']) { - $documento = (object) $documento; - } + foreach ($arrObjDocumentoPadronizados as $documento) { $documento->componentesDigitais = self::obterComponentesDocumentos($documento); } @@ -2771,6 +2733,12 @@ public function buscarEstruturaRest($idRepositorioEstrutura, $idUnidadeRH) } } + //Incluída este método isJson porque o endpoint componente-digital-parcial não retorna um Json como os demais endpoints. + //TODO: Na versão php 8.3, poderemos usar a função Json_validate + function isJson($string) { + json_decode($string); + return json_last_error() === JSON_ERROR_NONE; + } /** * Iniciar requisição HTTP utilizado para comunicação Webservice REST */ @@ -2779,13 +2747,18 @@ private function getArrPenWsRest($method, $endpoint, $options = []) try { $arrResultado = $this->strClientGuzzle->request($method, $endpoint, $options); $base64 = $arrResultado->getBody()->getContents(); + + if($this->isJson($base64)){ + $foo = json_decode($base64, false); + }else{ + $foo = $base64; + } + + if (is_array($foo)) { + return (object) $foo; + } - $foo = json_decode($arrResultado->getBody(), true); - if ($foo != null) { - return $foo; - } - - return $base64; + return $foo; } catch (RequestException $e) { $erroResposta = json_decode($e->getResponse()->getBody()->getContents()); diff --git a/src/rn/ReceberComponenteDigitalRN.php b/src/rn/ReceberComponenteDigitalRN.php index c3fbd8bf..b9c63cb9 100755 --- a/src/rn/ReceberComponenteDigitalRN.php +++ b/src/rn/ReceberComponenteDigitalRN.php @@ -256,11 +256,7 @@ public function copiarComponenteDigitalPastaTemporaria($parObjComponenteDigital, { if (!isset($parObjComponenteDigital)) { throw new InfraException("Componente Digital não informado"); - } - - if (is_array($parObjComponenteDigital)) { - $parObjComponenteDigital = (object) $parObjComponenteDigital; - } + } $objAnexoRN = new AnexoRN(); $strNomeArquivoUpload = $objAnexoRN->gerarNomeArquivoTemporario(); $strConteudoCodificado = $parObjConteudo->conteudoDoComponenteDigital; diff --git a/src/rn/ReceberProcedimentoRN.php b/src/rn/ReceberProcedimentoRN.php index 689acff2..961eaf50 100755 --- a/src/rn/ReceberProcedimentoRN.php +++ b/src/rn/ReceberProcedimentoRN.php @@ -643,11 +643,7 @@ private function listarHashDosComponentesMetadado($parObjProtocolo) } $arrObjComponentesDigitais = is_array($objDocumento->componentesDigitais) ? $objDocumento->componentesDigitais : [$objDocumento->componentesDigitais]; - foreach ($arrObjComponentesDigitais as $objComponenteDigital) { - - if (is_array($objComponenteDigital)) { - $objComponenteDigital = (object) $objComponenteDigital; - } + foreach ($arrObjComponentesDigitais as $objComponenteDigital) { $arrHashsComponentesDigitais[] = ProcessoEletronicoRN::getHashFromMetaDados($objComponenteDigital->hash); } @@ -714,10 +710,7 @@ private function validarComponentesDigitais($parObjProtocolo, $parNumIdentificac if(!isset($numIdTipoDocumentoPadrao)) { foreach($arrObjDocumentos as $objDocument){ - $especie = $objDocument->especie; - if (is_array($especie)) { - $objDocument->especie = (object) $objDocument->especie; - } + $especie = $objDocument->especie; $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapRecebidoDTO(); $objPenRelTipoDocMapEnviadoDTO->retTodos(); @@ -745,10 +738,7 @@ private function validarComponentesDigitais($parObjProtocolo, $parNumIdentificac } private function validaTamanhoComponenteDigital($objComponenteDigital) - { - if (is_array($objComponenteDigital)) { - $objComponenteDigital = (object) $objComponenteDigital; - } + { if (is_null($objComponenteDigital->tamanhoEmBytes) || $objComponenteDigital->tamanhoEmBytes == 0) { throw new InfraException('Tamanho de componente digital não informado.', null, 'RECUSA: '.ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); @@ -1613,11 +1603,7 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o $this->gravarLogDebug("Quantidade de documentos para recebimento: $count", 2); foreach($arrObjDocumentos as $objDocumento) { - - if (is_array($objDocumento)) { - $objDocumento = (object) $objDocumento; - } - + if(!isset($objDocumento->staTipoProtocolo) || $bolDocumentoAvulso) { // Definição da ordem do documento para avaliação do posicionamento @@ -1866,10 +1852,7 @@ private function atribuirComponentesJaExistentesNoProcesso($objComponentesDigita { $arrObjAnexosDTO = []; $arrObjAnexoDTO = []; - foreach ($objComponentesDigitais as $objComponenteDigital) { - if (is_array($objComponenteDigital)) { - $objComponenteDigital = (object) $objComponenteDigital; - } + foreach ($objComponentesDigitais as $objComponenteDigital) { $strHashComponenteDigital = ProcessoEletronicoRN::getHashFromMetaDados($objComponenteDigital->hash); $bolComponenteDigitalBaixado = in_array($strHashComponenteDigital, $arrHashComponenteBaixados); @@ -2477,10 +2460,7 @@ public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtoco $arrComponentesDigitais = $objDocumento->componentesDigitais; foreach ($arrComponentesDigitais as $componenteDigital) { - - if (is_array($componenteDigital)) { - $componenteDigital = (object) $componenteDigital; - } + //Busca o nome do documento $nomeDocumento = $componenteDigital->nome; @@ -2598,11 +2578,7 @@ private function obterTamanhoComponenteDigitalPendente($parObjProtocolo, $parCom //Percorre os documentos e compoenntes para pegar o tamanho em bytes do componente foreach ($arrObjDocumentos as $objDocumento) { $arrObjComponentesDigitais = ProcessoEletronicoRN::obterComponentesDigitaisDocumento($objDocumento); - foreach ($arrObjComponentesDigitais as $objComponentesDigital) { - - if (is_array($objComponentesDigital)) { - $objComponentesDigital = (object) $objComponentesDigital; - } + foreach ($arrObjComponentesDigitais as $objComponentesDigital) { if (ProcessoEletronicoRN::getHashFromMetaDados($objComponentesDigital->hash) == $parComponentePendente) { $tamanhoComponentePendende = $objComponentesDigital->tamanhoEmBytes; @@ -2683,12 +2659,8 @@ private function indexarComponenteDigitaisDoProtocolo($parObjProtocolo) if(isset($arrDocumento->componentesDigitais) && !is_array($arrDocumento->componentesDigitais)) { $arrDocumento->componentesDigitais = [$arrDocumento->componentesDigitais]; } - foreach ($arrDocumento->componentesDigitais as $objComponente) { - - if (is_array($objComponente)) { - $objComponente = (object) $objComponente; - } - + foreach ($arrDocumento->componentesDigitais as $objComponente) { + $strHash = ProcessoEletronicoRN::getHashFromMetaDados($objComponente->hash); $resultado[$strHash] = $objComponente; } @@ -2773,10 +2745,7 @@ private function criarDiretorioAnexo($parObjAnexoDTO) private function adicionarObservacoesSobreNumeroDocumento($parObjDocumento) { - $arrObjObservacoes = []; - if (is_array($parObjDocumento->produtor)) { - $parObjDocumento->produtor = (object) $parObjDocumento->produtor; - } + $arrObjObservacoes = []; $strNumeroDocumentoOrigem = $parObjDocumento->protocolo ?? $parObjDocumento->produtor->numeroDeIdentificacao; if(!empty($strNumeroDocumentoOrigem)) {