From 2fc5620fe59c036218b93e4a53a063b9b9475729 Mon Sep 17 00:00:00 2001 From: Guilherme Andrade Del Cantoni Date: Tue, 9 Apr 2019 12:48:55 -0300 Subject: [PATCH] [Fixed #47] Correção de problema com mapeamento de espécies documentais --- dto/ComponenteDigitalDTO.php | 10 ++++++---- dto/TramiteDTO.php | 2 +- rn/ExpedirProcedimentoRN.php | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------- rn/PenAtualizarSeiRN.php | 19 +++++++++++++++++++ rn/ProcessoEletronicoRN.php | 20 +++++++++++++++----- rn/ReceberComponenteDigitalRN.php | 4 ++-- rn/ReceberProcedimentoRN.php | 9 --------- sip_atualizar_versao_modulo_pen.php | 16 ++++++++++++++++ 8 files changed, 191 insertions(+), 30 deletions(-) diff --git a/dto/ComponenteDigitalDTO.php b/dto/ComponenteDigitalDTO.php index a650e7f..1210268 100644 --- a/dto/ComponenteDigitalDTO.php +++ b/dto/ComponenteDigitalDTO.php @@ -23,11 +23,13 @@ class ComponenteDigitalDTO extends InfraDTO { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'MimeType', 'mime_type'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'DadosComplementares', 'dados_complementares'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Tamanho', 'tamanho'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'CodigoEspecie', 'codigo_especie'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeEspecieProdutor', 'nome_especie_produtor'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Ordem', 'ordem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'SinEnviar', 'sin_enviar'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'SinEnviar', 'sin_enviar'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'TicketEnvioComponentes', 'ticket_envio_componentes', 'md_pen_tramite'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ConteudoAssinaturaDocumento', 'conteudo_assinatura', 'documento_conteudo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ConteudoAssinaturaDocumento', 'conteudo_assinatura', 'documento_conteudo'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ProtocoloDocumentoFormatado', 'protocolo_formatado', 'protocolo'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoProtocolo', 'sta_estado', 'protocolo'); @@ -35,9 +37,9 @@ class ComponenteDigitalDTO extends InfraDTO { $this->configurarPK('IdDocumento', InfraDTO::$TIPO_PK_INFORMADO); $this->configurarFK('NumeroRegistro', 'md_pen_tramite', 'numero_registro', InfraDTO::$TIPO_FK_OBRIGATORIA); - $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OBRIGATORIA); + $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OBRIGATORIA); $this->configurarFK('IdDocumento', 'documento', 'id_documento', InfraDTO::$TIPO_FK_OBRIGATORIA); $this->configurarFK('IdDocumento', 'protocolo', 'id_protocolo', InfraDTO::$TIPO_FK_OBRIGATORIA); $this->configurarFK('IdDocumento', 'documento_conteudo', 'id_documento', InfraDTO::$TIPO_FK_OBRIGATORIA); } -} \ No newline at end of file +} diff --git a/dto/TramiteDTO.php b/dto/TramiteDTO.php index f8a4e3f..2c30698 100644 --- a/dto/TramiteDTO.php +++ b/dto/TramiteDTO.php @@ -30,7 +30,7 @@ class TramiteDTO extends InfraDTO { $this->configurarPK('IdTramite', InfraDTO::$TIPO_PK_INFORMADO); $this->configurarFK('NumeroRegistro', 'md_pen_tramite', 'numero_registro', InfraDTO::$TIPO_FK_OBRIGATORIA); - $this->configurarFK('NumeroRegistro', 'md_pen_processo_eletronico pe', 'pe.numero_registro'); + $this->configurarFK('NumeroRegistro', 'md_pen_processo_eletronico', 'numero_registro'); $this->configurarFK('IdUsuario', 'usuario u', 'u.id_usuario'); $this->configurarFK('IdUnidade', 'unidade u', 'u.id_unidade'); } diff --git a/rn/ExpedirProcedimentoRN.php b/rn/ExpedirProcedimentoRN.php index c4ca30f..c59e966 100644 --- a/rn/ExpedirProcedimentoRN.php +++ b/rn/ExpedirProcedimentoRN.php @@ -114,6 +114,7 @@ class ExpedirProcedimentoRN extends InfraRN { $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_VALIDACAO); $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); + //Valida regras de negócio $objInfraException = new InfraException(); //Carregamento dos dados de processo e documento para validação e envio externo @@ -133,11 +134,14 @@ class ExpedirProcedimentoRN extends InfraRN { $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_PROCEDIMENTO); $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_PROCEDIMENTO, $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado())); + //Busca metadados do processo registrado em trâmite anterior + $objMetadadosProcessoTramiteAnterior = $this->consultarMetadadosPEN($dblIdProcedimento); + //Construo dos cabecalho para envio do processo $objCabecalho = $this->construirCabecalho($objExpedirProcedimentoDTO); //Construção do processo para envio - $objProcesso = $this->construirProcesso($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado()); + $objProcesso = $this->construirProcesso($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado(), $objMetadadosProcessoTramiteAnterior); $param = new stdClass(); $param->novoTramiteDeProcesso = new stdClass(); @@ -237,6 +241,43 @@ class ExpedirProcedimentoRN extends InfraRN { } } + /** + * Busca metadados do processo registrado no Barramento de Serviços do PEN em trâmites anteriores + * @return stdClass Metadados do Processo + */ + private function consultarMetadadosPEN($parDblIdProcedimento) + { + $objMetadadosProtocolo = null; + + try{ + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->setNumIdProcedimento($parDblIdProcedimento); + $objTramiteDTO->setStrStaTipoTramite(ProcessoEletronicoRN::$STA_TIPO_TRAMITE_RECEBIMENTO); + $objTramiteDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteDTO->setNumMaxRegistrosRetorno(1); + $objTramiteDTO->retNumIdTramite(); + + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); + if(isset($objTramiteDTO)) { + $parNumIdentificacaoTramite = $objTramiteDTO->getNumIdTramite(); + $objRetorno = $this->objProcessoEletronicoRN->solicitarMetadados($parNumIdentificacaoTramite); + + if(isset($objRetorno)){ + $objMetadadosProtocolo = $objRetorno->metadados; + } + } + } + catch(Exception $e){ + //Em caso de falha na comunicação com o barramento neste ponto, o procedimento deve serguir em frente considerando + //que os metadados do protocolo não pode ser obtida + $objMetadadosProtocolo = null; + LogSEI::getInstance()->gravar("Falha na obtenção dos metadados de trâmites anteriores do processo ($parDblIdProcedimento) durante trâmite externo."); + throw $e; + } + + return $objMetadadosProtocolo; + } public function listarRepositoriosDeEstruturas() { @@ -363,13 +404,12 @@ class ExpedirProcedimentoRN extends InfraRN { ); } - private function construirProcesso($dblIdProcedimento, $arrIdProcessoApensado = null) + private function construirProcesso($dblIdProcedimento, $arrIdProcessoApensado=null, $parObjMetadadosTramiteAnterior=null) { if(!isset($dblIdProcedimento)){ throw new InfraException('Parâmetro $dblIdProcedimento não informado.'); } - //TODO: Passar dados do ProcedimentoDTO via parâmetro j carregado anteriormente $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento); $objPenRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); @@ -386,7 +426,7 @@ class ExpedirProcedimentoRN extends InfraRN { $this->atribuirProdutorProcesso($objProcesso, $objProcedimentoDTO->getNumIdUsuarioGeradorProtocolo(), $objProcedimentoDTO->getNumIdUnidadeGeradoraProtocolo()); $this->atribuirDataHoraDeRegistro($objProcesso, $objProcedimentoDTO->getDblIdProcedimento()); - $this->atribuirDocumentos($objProcesso, $dblIdProcedimento); + $this->atribuirDocumentos($objProcesso, $dblIdProcedimento, $parObjMetadadosTramiteAnterior); $this->atribuirDadosInteressados($objProcesso, $dblIdProcedimento); $this->adicionarProcessosApensados($objProcesso, $arrIdProcessoApensado); @@ -754,7 +794,7 @@ class ExpedirProcedimentoRN extends InfraRN { } } - private function atribuirDocumentos($objProcesso, $dblIdProcedimento) + private function atribuirDocumentos($objProcesso, $dblIdProcedimento, $parObjMetadadosTramiteAnterior) { if(!isset($objProcesso)) { throw new InfraException('Parâmetro $objProcesso não informado.'); @@ -827,10 +867,8 @@ class ExpedirProcedimentoRN extends InfraRN { $documento->produtor->numeroDeIdentificacao = $documentoDTO->getStrProtocoloDocumentoFormatado(); //TODO: Avaliar se informação está correta $this->atribuirDataHoraDeRegistro($documento, $documentoDTO->getDblIdProcedimento(), $documentoDTO->getDblIdDocumento()); - //TODO: Implementar mapeamento de espécies documentais - $documento->especie = new stdClass(); - $documento->especie->codigo = $this->obterEspecieMapeada($documentoDTO->getNumIdSerie()); - $documento->especie->nomeNoProdutor = utf8_encode($documentoDTO->getStrNomeSerie()); + $this->atribuirEspecieDocumental($documento, $documentoDTO, $parObjMetadadosTramiteAnterior); + //TODO: Tratar campos adicionais do documento //Identificao do documento $this->atribuirNumeracaoDocumento($documento, $documentoDTO); @@ -888,6 +926,91 @@ class ExpedirProcedimentoRN extends InfraRN { } + /** + * Obtém a espécie documental relacionada ao documento do processo. + * A espécie documental, por padrão, é obtida do mapeamento de espécies realizado pelo administrador + * nas configurações do módulo. + * Caso o documento tenha sido produzido por outro órgão externamente, a espécie a ser considerada será + * aquela definida originalmente pelo seu produtor + * + * @param int $parDblIdProcedimento Identificador do processo + * @param int $parDblIdDocumento Identificador do documento + * @return int Código da espécie documental + * + */ + private function atribuirEspecieDocumental($parMetaDocumento, $parDocumentoDTO, $parObjMetadadosTramiteAnterior) + { + //Validação dos parâmetros da função + if(!isset($parDocumentoDTO)){ + throw new InfraException('Parâmetro $parDocumentoDTO não informado.'); + } + + if(!isset($parMetaDocumento)){ + throw new InfraException('Parâmetro $parMetaDocumento não informado.'); + } + + $numCodigoEspecie = null; + $strNomeEspecieProdutor = null; + $dblIdProcedimento = $parDocumentoDTO->getDblIdProcedimento(); + $dblIdDocumento = $parDocumentoDTO->getDblIdDocumento(); + + //Inicialmente, busca espécie documental atribuida pelo produtor em trâmite realizado anteriormente + $objComponenteDigitalDTO = new ComponenteDigitalDTO(); + $objComponenteDigitalDTO->retNumCodigoEspecie(); + $objComponenteDigitalDTO->retStrNomeEspecieProdutor(); + $objComponenteDigitalDTO->setDblIdProcedimento($dblIdProcedimento); + $objComponenteDigitalDTO->setDblIdDocumento($dblIdDocumento); + $objComponenteDigitalDTO->setNumMaxRegistrosRetorno(1); + $objComponenteDigitalDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); + + $objComponenteDigitalBD = new ComponenteDigitalBD(BancoSEI::getInstance()); + $objComponenteDigitalDTO = $objComponenteDigitalBD->consultar($objComponenteDigitalDTO); + + if($objComponenteDigitalDTO != null){ + $numCodigoEspecie = $objComponenteDigitalDTO->getNumCodigoEspecie(); + $strNomeEspecieProdutor = $objComponenteDigitalDTO->getStrNomeEspecieProdutor(); + } + + //Caso a informação sobre mapeamento esteja nulo, necessário buscar tal informação no Barramento + //A lista de documentos recuperada do trâmite anterior será indexada pela sua ordem no protocolo e + //a espécie documental e o nome no produtar serão obtidos para atribuição ao documento + if($objComponenteDigitalDTO != null && $numCodigoEspecie == null) { + if(isset($parObjMetadadosTramiteAnterior)){ + $arrObjMetaDocumentosTramiteAnterior = []; + + //Obtenção de lista de documentos do processo + $arrObjMetaDocumentosTramiteAnterior = $parObjMetadadosTramiteAnterior->processo->documento; + if(isset($arrObjMetaDocumentosTramiteAnterior) && !is_array($arrObjMetaDocumentosTramiteAnterior)){ + $arrObjMetaDocumentosTramiteAnterior = array($arrObjMetaDocumentosTramiteAnterior); + } + + //Indexação dos documentos pela sua ordem + $arrMetaDocumentosAnteriorIndexado = []; + foreach ($arrObjMetaDocumentosTramiteAnterior as $objMetaDoc) { + $arrMetaDocumentosAnteriorIndexado[$objMetaDoc->ordem] = $objMetaDoc; + } + + //Atribui espécie documental definida pelo produtor do documento e registrado no PEN, caso exista + if(count($arrMetaDocumentosAnteriorIndexado) > 0 && array_key_exists($parMetaDocumento->ordem, $arrMetaDocumentosAnteriorIndexado)){ + $numCodigoEspecie = $arrMetaDocumentosAnteriorIndexado[$parMetaDocumento->ordem]->especie->codigo; + $strNomeEspecieProdutor = utf8_encode($arrMetaDocumentosAnteriorIndexado[$parMetaDocumento->ordem]->especie->nomeNoProdutor); + } + } + } + + //Aplica o mapeamento de espécies definida pelo administrador para os novos documentos + if($numCodigoEspecie == null) { + $numCodigoEspecie = $this->obterEspecieMapeada($parDocumentoDTO->getNumIdSerie()); + $strNomeEspecieProdutor = utf8_encode($parDocumentoDTO->getStrNomeSerie()); + } + + $parMetaDocumento->especie = new stdClass(); + $parMetaDocumento->especie->codigo = $numCodigoEspecie; + $parMetaDocumento->especie->nomeNoProdutor = $strNomeEspecieProdutor; + + return $parMetaDocumento; + } + private function obterEspecieMapeada($parNumIdSerie) { if(!isset($parNumIdSerie) || $parNumIdSerie == 0) { diff --git a/rn/PenAtualizarSeiRN.php b/rn/PenAtualizarSeiRN.php index d2672de..5663af3 100644 --- a/rn/PenAtualizarSeiRN.php +++ b/rn/PenAtualizarSeiRN.php @@ -66,6 +66,7 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { case '1.1.15': $this->instalarV1116(); case '1.1.16': $this->instalarV1117(); case '1.1.17': $this->instalarV1200(); + case '1.2.0': $this->instalarV1201(); break; default: @@ -1533,4 +1534,22 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { $objInfraParametroDTO->setStrValor('1.2.0'); $objInfraParametroBD->alterar($objInfraParametroDTO); } + + /* Contêm atualizações da versao 1.2.1 do módulo */ + protected function instalarV1201() + { + //Fix-47 - Corrigir erro com mapeamento de espécies documentais da origem + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'codigo_especie', $objInfraMetaBD->tipoNumero(), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'nome_especie_produtor', $objInfraMetaBD->tipoTextoVariavel(255), 'null'); + + + //altera o parâmetro da versão de banco + $objInfraParametroBD = new InfraParametroBD(BancoSEI::getInstance()); + $objInfraParametroDTO = new InfraParametroDTO(); + $objInfraParametroDTO->setStrNome(self::PARAMETRO_VERSAO_MODULO); + $objInfraParametroDTO->setStrValor('1.2.1'); + $objInfraParametroBD->alterar($objInfraParametroDTO); + } + } diff --git a/rn/ProcessoEletronicoRN.php b/rn/ProcessoEletronicoRN.php index 7f5ce73..d40f684 100644 --- a/rn/ProcessoEletronicoRN.php +++ b/rn/ProcessoEletronicoRN.php @@ -60,7 +60,7 @@ class ProcessoEletronicoRN extends InfraRN { /** * Espécie documentoal não mapeada */ - const MTV_RCSR_TRAM_CD_ESPECIE_NAO_MAPEADA = '03'; + const MTV_RCSR_TRAM_CD_ESPECIE_NAO_MAPEADA = '04'; /** * Motivo para recusar de tramite de componente digital @@ -404,13 +404,18 @@ class ProcessoEletronicoRN extends InfraRN { { try { return $this->getObjPenWs()->enviarProcesso($parametros); - } catch (\Exception $e) { - $mensagem = "Falha no envio externo do processo. Verifique log de erros do sistema para maiores informações."; - $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + + } catch (\SoapFault $e) { + $mensagem = "Falha no envio externo do processo: "; + $mensagem .= InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); if ($e instanceof \SoapFault && !empty($e->detail->interoperabilidadeException->codigoErro) && $e->detail->interoperabilidadeException->codigoErro == '0005') { - $detalhes = 'O código mapeado para a unidade ' . utf8_decode($parametros->novoTramiteDeProcesso->processo->documento[0]->produtor->unidade->nome) . ' está incorreto.'; + $mensagem .= 'O código mapeado para a unidade ' . utf8_decode($parametros->novoTramiteDeProcesso->processo->documento[0]->produtor->unidade->nome) . ' está incorreto.'; } + throw new InfraException($mensagem, $e); + } catch (\Exception $e) { + $mensagem = "Falha no envio externo do processo. Verifique log de erros do sistema para maiores informações."; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); } } @@ -807,6 +812,11 @@ class ProcessoEletronicoRN extends InfraRN { $objComponenteDigital = $objDocumento->componenteDigital; $objComponenteDigitalDTO->setStrNome($objComponenteDigital->nome); + if(isset($objDocumento->especie)){ + $objComponenteDigitalDTO->setNumCodigoEspecie(intval($objDocumento->especie->codigo)); + $objComponenteDigitalDTO->setStrNomeEspecieProdutor($objDocumento->especie->nomeNoProdutor); + } + $strHashConteudo = static::getHashFromMetaDados($objComponenteDigital->hash); $objComponenteDigitalDTO->setStrHashConteudo($strHashConteudo); diff --git a/rn/ReceberComponenteDigitalRN.php b/rn/ReceberComponenteDigitalRN.php index f2f1478..d05d44f 100644 --- a/rn/ReceberComponenteDigitalRN.php +++ b/rn/ReceberComponenteDigitalRN.php @@ -28,7 +28,7 @@ class ReceberComponenteDigitalRN extends InfraRN return BancoSEI::getInstance(); } - protected function receberComponenteDigitalConectado(ComponenteDigitalDTO $parObjComponenteDigitalDTO) + protected function receberComponenteDigitalControlado(ComponenteDigitalDTO $parObjComponenteDigitalDTO) { if(!isset($parObjComponenteDigitalDTO) || !isset($parObjComponenteDigitalDTO)) { @@ -120,7 +120,7 @@ class ReceberComponenteDigitalRN extends InfraRN $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); if ($objDocumentoDTO==null){ - throw new InfraException("Registro não encontrado."); + throw new InfraException("Documento não pode ser localizado (".$parObjComponenteDigitalDTO->getDblIdDocumento().")"); } $objProtocoloDTO = new ProtocoloDTO(); diff --git a/rn/ReceberProcedimentoRN.php b/rn/ReceberProcedimentoRN.php index 6c6de51..8cd00a9 100644 --- a/rn/ReceberProcedimentoRN.php +++ b/rn/ReceberProcedimentoRN.php @@ -421,15 +421,6 @@ class ReceberProcedimentoRN extends InfraRN $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); $objComponenteDigitalDTO->setStrHashConteudo($parStrHashComponenteDigital); - // $objComponenteDigitalDTO->retDblIdDocumento(); - // $objComponenteDigitalDTO->retNumTicketEnvioComponentes(); - // $objComponenteDigitalDTO->retStrProtocoloDocumentoFormatado(); - // $objComponenteDigitalDTO->retStrHashConteudo(); - // $objComponenteDigitalDTO->retStrProtocolo(); - // $objComponenteDigitalDTO->retStrNumeroRegistro(); - // $objComponenteDigitalDTO->retNumIdTramite(); - // $objComponenteDigitalDTO->retStrNome(); - // $objComponenteDigitalDTO->retStrStaEstadoProtocolo(); $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); return $objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0; diff --git a/sip_atualizar_versao_modulo_pen.php b/sip_atualizar_versao_modulo_pen.php index 463b85a..bde699b 100644 --- a/sip_atualizar_versao_modulo_pen.php +++ b/sip_atualizar_versao_modulo_pen.php @@ -101,6 +101,7 @@ class PenAtualizarSipRN extends InfraRN { case '1.1.15': $this->instalarV1116(); case '1.1.16': $this->instalarV1117(); case '1.1.17': $this->instalarV1200(); + case '1.1.20': $this->instalarV1201(); break; default: @@ -1135,6 +1136,21 @@ class PenAtualizarSipRN extends InfraRN { $objInfraParametroDTO->setStrValor('1.2.0'); $objInfraParametroBD->alterar($objInfraParametroDTO); } + + /** + * Instala/Atualiza os módulo PEN para versão 1.2.1 + */ + protected function instalarV1201() + { + //Corrigir a versão do módulo no banco de dados + $objInfraParametroDTO = new InfraParametroDTO(); + $objInfraParametroDTO->setStrNome(self::PARAMETRO_VERSAO_MODULO); + $objInfraParametroDTO->retTodos(); + $objInfraParametroBD = new InfraParametroBD(BancoSip::getInstance()); + $objInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); + $objInfraParametroDTO->setStrValor('1.2.1'); + $objInfraParametroBD->alterar($objInfraParametroDTO); + } } try { -- libgit2 0.21.2