Commit 43fc67743d297adffcd36e5d3c8893b9695125f9
1 parent
26dba05c
Exists in
master
and in
19 other branches
[Fixed #13] Correção de erro no tratamento de transação do andamento do trâmite
Showing
5 changed files
with
40 additions
and
72 deletions
Show diff stats
dto/ProcedimentoAndamentoDTO.php
| ... | ... | @@ -32,4 +32,11 @@ class ProcedimentoAndamentoDTO extends InfraDTO { |
| 32 | 32 | $this->configurarPK('IdAndamento', InfraDTO::$TIPO_PK_SEQUENCIAL); |
| 33 | 33 | $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OPCIONAL); |
| 34 | 34 | } |
| 35 | + | |
| 36 | + public static function criarAndamento($strMensagem = 'Não informado', $strSituacao = 'N') { | |
| 37 | + $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); | |
| 38 | + $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 39 | + $objProcedimentoAndamentoDTO->setStrMensagem($strMensagem); | |
| 40 | + return $objProcedimentoAndamentoDTO; | |
| 41 | + } | |
| 35 | 42 | } | ... | ... |
rn/ExpedirProcedimentoRN.php
| ... | ... | @@ -26,8 +26,8 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 26 | 26 | const TC_TIPO_CONTEUDO_VIDEO = 'vid'; |
| 27 | 27 | const TC_TIPO_CONTEUDO_OUTROS = 'out'; |
| 28 | 28 | |
| 29 | - //TODO: Alterar codificao do SEI para reconhecer esse novo estado do processo | |
| 30 | - //Esse estado ser utilizado juntamente com os estados da expedio | |
| 29 | + //TODO: Alterar codificao do SEI para reconhecer esse novo estado do processo | |
| 30 | + //Esse estado ser utilizado juntamente com os estados da expedio | |
| 31 | 31 | const TE_PROCEDIMENTO_BLOQUEADO = '4'; |
| 32 | 32 | const TE_PROCEDIMENTO_EM_PROCESSAMENTO = '5'; |
| 33 | 33 | |
| ... | ... | @@ -124,17 +124,14 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 124 | 124 | try { |
| 125 | 125 | //Valida Permissão |
| 126 | 126 | SessaoSEI::getInstance()->validarAuditarPermissao('pen_procedimento_expedir',__METHOD__, $objExpedirProcedimentoDTO); |
| 127 | - | |
| 128 | 127 | $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento(); |
| 129 | 128 | |
| 130 | 129 | $this->barraProgresso->exibir(); |
| 131 | - | |
| 132 | 130 | //Valida regras de negócio |
| 133 | 131 | $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_VALIDACAO); |
| 134 | 132 | $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); |
| 135 | 133 | |
| 136 | 134 | $objInfraException = new InfraException(); |
| 137 | - | |
| 138 | 135 | //Carregamento dos dados de processo e documento para validação e envio externo |
| 139 | 136 | $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento); |
| 140 | 137 | $objProcedimentoDTO->setArrObjDocumentoDTO($this->listarDocumentos($dblIdProcedimento)); |
| ... | ... | @@ -142,7 +139,6 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 142 | 139 | |
| 143 | 140 | $this->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO); |
| 144 | 141 | $this->validarParametrosExpedicao($objInfraException, $objExpedirProcedimentoDTO); |
| 145 | - | |
| 146 | 142 | //Apresentao da mensagens de validao na janela da barra de progresso |
| 147 | 143 | if($objInfraException->contemValidacoes()){ |
| 148 | 144 | $this->barraProgresso->mover(0); |
| ... | ... | @@ -155,10 +151,8 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 155 | 151 | |
| 156 | 152 | //Construo dos cabecalho para envio do processo |
| 157 | 153 | $objCabecalho = $this->construirCabecalho($objExpedirProcedimentoDTO); |
| 158 | - | |
| 159 | 154 | //Construo do processo para envio |
| 160 | 155 | $objProcesso = $this->construirProcesso($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado()); |
| 161 | - | |
| 162 | 156 | try { |
| 163 | 157 | $param = new stdClass(); |
| 164 | 158 | $param->novoTramiteDeProcesso = new stdClass(); |
| ... | ... | @@ -170,14 +164,13 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 170 | 164 | } catch (\Exception $e) { |
| 171 | 165 | throw new InfraException("Error Processing Request", $e); |
| 172 | 166 | } |
| 173 | - | |
| 174 | 167 | $this->atualizarPenProtocolo($dblIdProcedimento); |
| 175 | - | |
| 176 | 168 | if (isset($novoTramite->dadosTramiteDeProcessoCriado)) { |
| 177 | 169 | $objTramite = $novoTramite->dadosTramiteDeProcessoCriado; |
| 178 | 170 | $this->objProcedimentoAndamentoRN->setOpts($dblIdProcedimento, $objTramite->IDT, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); |
| 179 | 171 | try { |
| 180 | - $this->objProcedimentoAndamentoRN->cadastrar('Envio do metadados do processo', 'S'); | |
| 172 | + | |
| 173 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Envio do metadados do processo', 'S')); | |
| 181 | 174 | $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI); |
| 182 | 175 | |
| 183 | 176 | $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( |
| ... | ... | @@ -230,8 +223,7 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 230 | 223 | $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_CONCLUSAO); |
| 231 | 224 | |
| 232 | 225 | // @join_tec US008.06 (#23092) |
| 233 | - $this->objProcedimentoAndamentoRN->cadastrar('Concluído envio dos componentes do processo', 'S'); | |
| 234 | - | |
| 226 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concluído envio dos componentes do processo', 'S')); | |
| 235 | 227 | |
| 236 | 228 | $this->receberReciboDeEnvio($objTramite->IDT); |
| 237 | 229 | } |
| ... | ... | @@ -253,7 +245,7 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 253 | 245 | $this->registrarAndamentoExpedicaoAbortada($objProcesso->idProcedimentoSEI); |
| 254 | 246 | |
| 255 | 247 | // @join_tec US008.06 (#23092) |
| 256 | - $this->objProcedimentoAndamentoRN->cadastrar('Concluído envio dos componentes do processo', 'N'); | |
| 248 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concluído envio dos componentes do processo', 'N')); | |
| 257 | 249 | throw $e; |
| 258 | 250 | } |
| 259 | 251 | } |
| ... | ... | @@ -1566,10 +1558,10 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 1566 | 1558 | //Bloquea documento para atualizao, j que ele foi visualizado |
| 1567 | 1559 | $this->objDocumentoRN->bloquearConteudo($objDocumentoDTO); |
| 1568 | 1560 | // @join_tec US008.05 (#23092) |
| 1569 | - $this->objProcedimentoAndamentoRN->cadastrar(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'S'); | |
| 1561 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'S')); | |
| 1570 | 1562 | } catch (Exception $e) { |
| 1571 | 1563 | // @join_tec US008.05 (#23092) |
| 1572 | - $this->objProcedimentoAndamentoRN->cadastrar(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'N'); | |
| 1564 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'N')); | |
| 1573 | 1565 | throw new InfraException("Error Processing Request", $e); |
| 1574 | 1566 | } |
| 1575 | 1567 | } | ... | ... |
rn/ProcedimentoAndamentoRN.php
| ... | ... | @@ -14,20 +14,7 @@ class ProcedimentoAndamentoRN extends InfraRN { |
| 14 | 14 | protected $dblIdTramit; |
| 15 | 15 | protected $numTarefa; |
| 16 | 16 | |
| 17 | - /** | |
| 18 | - * Instância do driver de conexão com o banco de dados | |
| 19 | - * | |
| 20 | - * @var Infra[Driver] | |
| 21 | - */ | |
| 22 | - protected $bancoSEI = null; | |
| 23 | 17 | |
| 24 | - public function __destruct() { | |
| 25 | - | |
| 26 | - if(!empty($this->bancoSEI)) { | |
| 27 | - | |
| 28 | - $this->bancoSEI->fecharConexao(); | |
| 29 | - } | |
| 30 | - } | |
| 31 | 18 | |
| 32 | 19 | /** |
| 33 | 20 | * Invés de aproveitar o singleton do BancoSEI criamos uma nova instância para |
| ... | ... | @@ -35,15 +22,8 @@ class ProcedimentoAndamentoRN extends InfraRN { |
| 35 | 22 | * |
| 36 | 23 | * @return Infra[Driver] |
| 37 | 24 | */ |
| 38 | - protected function inicializarObjInfraIBanco() { | |
| 39 | - | |
| 40 | - if(empty($this->bancoSEI)) { | |
| 41 | - | |
| 42 | - $this->bancoSEI = new BancoSEI(); | |
| 43 | - $this->bancoSEI->abrirConexao(); | |
| 44 | - } | |
| 45 | - | |
| 46 | - return $this->bancoSEI; | |
| 25 | + protected function inicializarObjInfraIBanco(){ | |
| 26 | + return BancoSEI::getInstance(); | |
| 47 | 27 | } |
| 48 | 28 | |
| 49 | 29 | |
| ... | ... | @@ -58,40 +38,29 @@ class ProcedimentoAndamentoRN extends InfraRN { |
| 58 | 38 | /** |
| 59 | 39 | * Adiciona um novo andamento à um procedimento que esta sendo expedido para outra unidade |
| 60 | 40 | * |
| 61 | - * @param string $strMensagem | |
| 62 | - * @param string $strSituacao Tipo ENUM(S,N) | |
| 63 | - * @return null | |
| 41 | + * @param ProcedimentoAndamentoDTO $parProcedimentoAndamentoDTO | |
| 64 | 42 | */ |
| 65 | - public function cadastrar($strMensagem = 'Não informado', $strSituacao = 'N'){ | |
| 43 | + protected function cadastrarControlado($parProcedimentoAndamentoDTO){ | |
| 66 | 44 | |
| 67 | 45 | if($this->isSetOpts === false) { |
| 68 | 46 | throw new InfraException('Log do cadastro de procedimento não foi configurado'); |
| 69 | 47 | } |
| 70 | 48 | |
| 71 | - $objInfraIBanco = $this->inicializarObjInfraIBanco(); | |
| 72 | - $objInfraIBanco->abrirTransacao(); | |
| 73 | - | |
| 74 | - try{ | |
| 75 | - $hash = md5($this->dblIdProcedimento.$strMensagem); | |
| 76 | - | |
| 77 | - $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); | |
| 78 | - $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 79 | - $objProcedimentoAndamentoDTO->setDthData(date('d/m/Y H:i:s')); | |
| 80 | - $objProcedimentoAndamentoDTO->setDblIdProcedimento($this->dblIdProcedimento); | |
| 81 | - $objProcedimentoAndamentoDTO->setDblIdTramite($this->dblIdTramit); | |
| 82 | - $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 83 | - $objProcedimentoAndamentoDTO->setStrMensagem($strMensagem); | |
| 84 | - $objProcedimentoAndamentoDTO->setStrHash($hash); | |
| 85 | - $objProcedimentoAndamentoDTO->setNumTarefa($this->numTarefa); | |
| 86 | - | |
| 87 | - $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($objInfraIBanco); | |
| 88 | - $objProcedimentoAndamentoBD->cadastrar($objProcedimentoAndamentoDTO); | |
| 89 | - | |
| 90 | - $objInfraIBanco->confirmarTransacao(); | |
| 91 | - | |
| 92 | - } catch (Exception $e) { | |
| 93 | - $objInfraIBanco->cancelarTransacao(); | |
| 94 | - throw $e; | |
| 95 | - } | |
| 49 | + $strMensagem = ($parProcedimentoAndamentoDTO->isSetStrMensagem()) ? $parProcedimentoAndamentoDTO->getStrMensagem() : 'Não informado'; | |
| 50 | + $strSituacao = ($parProcedimentoAndamentoDTO->isSetStrSituacao()) ? $parProcedimentoAndamentoDTO->getStrSituacao() : 'N'; | |
| 51 | + | |
| 52 | + $hash = md5($this->dblIdProcedimento . $strMensagem); | |
| 53 | + $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); | |
| 54 | + $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 55 | + $objProcedimentoAndamentoDTO->setDthData(date('d/m/Y H:i:s')); | |
| 56 | + $objProcedimentoAndamentoDTO->setDblIdProcedimento($this->dblIdProcedimento); | |
| 57 | + $objProcedimentoAndamentoDTO->setDblIdTramite($this->dblIdTramit); | |
| 58 | + $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 59 | + $objProcedimentoAndamentoDTO->setStrMensagem($strMensagem); | |
| 60 | + $objProcedimentoAndamentoDTO->setStrHash($hash); | |
| 61 | + $objProcedimentoAndamentoDTO->setNumTarefa($this->numTarefa); | |
| 62 | + | |
| 63 | + $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($this->getObjInfraIBanco()); | |
| 64 | + $objProcedimentoAndamentoBD->cadastrar($objProcedimentoAndamentoDTO); | |
| 96 | 65 | } |
| 97 | 66 | } | ... | ... |
rn/ReceberProcedimentoRN.php
| ... | ... | @@ -188,7 +188,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 188 | 188 | |
| 189 | 189 | // @join_tec US008.08 (#23092) |
| 190 | 190 | $this->objProcedimentoAndamentoRN->setOpts($objProcedimentoDTO->getDblIdProcedimento(), $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); |
| 191 | - $this->objProcedimentoAndamentoRN->cadastrar('Obtendo metadados do processo', 'S'); | |
| 191 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Obtendo metadados do processo', 'S')); | |
| 192 | 192 | |
| 193 | 193 | |
| 194 | 194 | $this->gravarLogDebug("Registrando trâmite externo do processo", 4); |
| ... | ... | @@ -246,15 +246,15 @@ class ReceberProcedimentoRN extends InfraRN |
| 246 | 246 | |
| 247 | 247 | // @join_tec US008.09 (#23092) |
| 248 | 248 | $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); |
| 249 | - $this->objProcedimentoAndamentoRN->cadastrar($strMensagemRecebimento, 'S'); | |
| 249 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); | |
| 250 | 250 | $this->gravarLogDebug($strMensagemRecebimento, 6); |
| 251 | 251 | } |
| 252 | 252 | } |
| 253 | 253 | // @join_tec US008.10 (#23092) |
| 254 | - $this->objProcedimentoAndamentoRN->cadastrar('Todos os componentes digitais foram recebidos', 'S'); | |
| 254 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); | |
| 255 | 255 | |
| 256 | 256 | }else{ |
| 257 | - $this->objProcedimentoAndamentoRN->cadastrar('Nenhum componente digital para receber', 'S'); | |
| 257 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); | |
| 258 | 258 | } |
| 259 | 259 | } |
| 260 | 260 | } | ... | ... |
rn/ReceberReciboTramiteRN.php
| ... | ... | @@ -202,7 +202,7 @@ class ReceberReciboTramiteRN extends InfraRN |
| 202 | 202 | $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); |
| 203 | 203 | |
| 204 | 204 | $this->objProcedimentoAndamentoRN->setOpts($objProcessoEletronicoDTO->getDblIdProcedimento(), $parNumIdTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); |
| 205 | - $this->objProcedimentoAndamentoRN->cadastrar(sprintf('Trâmite do processo %s foi concluído', $objProtocoloDTO->getStrProtocoloFormatado()), 'S'); | |
| 205 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Trâmite do processo %s foi concluído', $objProtocoloDTO->getStrProtocoloFormatado()), 'S')); | |
| 206 | 206 | //Registra o recbimento do recibo no histórico e realiza a conclusão do processo |
| 207 | 207 | $this->registrarRecebimentoRecibo($objProtocoloDTO->getDblIdProtocolo(), $objProtocoloDTO->getStrProtocoloFormatado(), $parNumIdTramite); |
| 208 | 208 | $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_RECIBO); | ... | ... |