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); | ... | ... |