Commit 43fc67743d297adffcd36e5d3c8893b9695125f9

Authored by Guilherme Andrade Del Cantoni
1 parent 26dba05c

[Fixed #13] Correção de erro no tratamento de transação do andamento do trâmite

dto/ProcedimentoAndamentoDTO.php
@@ -32,4 +32,11 @@ class ProcedimentoAndamentoDTO extends InfraDTO { @@ -32,4 +32,11 @@ class ProcedimentoAndamentoDTO extends InfraDTO {
32 $this->configurarPK('IdAndamento', InfraDTO::$TIPO_PK_SEQUENCIAL); 32 $this->configurarPK('IdAndamento', InfraDTO::$TIPO_PK_SEQUENCIAL);
33 $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OPCIONAL); 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,8 +26,8 @@ class ExpedirProcedimentoRN extends InfraRN {
26 const TC_TIPO_CONTEUDO_VIDEO = 'vid'; 26 const TC_TIPO_CONTEUDO_VIDEO = 'vid';
27 const TC_TIPO_CONTEUDO_OUTROS = 'out'; 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 const TE_PROCEDIMENTO_BLOQUEADO = '4'; 31 const TE_PROCEDIMENTO_BLOQUEADO = '4';
32 const TE_PROCEDIMENTO_EM_PROCESSAMENTO = '5'; 32 const TE_PROCEDIMENTO_EM_PROCESSAMENTO = '5';
33 33
@@ -124,17 +124,14 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -124,17 +124,14 @@ class ExpedirProcedimentoRN extends InfraRN {
124 try { 124 try {
125 //Valida Permissão 125 //Valida Permissão
126 SessaoSEI::getInstance()->validarAuditarPermissao('pen_procedimento_expedir',__METHOD__, $objExpedirProcedimentoDTO); 126 SessaoSEI::getInstance()->validarAuditarPermissao('pen_procedimento_expedir',__METHOD__, $objExpedirProcedimentoDTO);
127 -  
128 $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento(); 127 $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento();
129 128
130 $this->barraProgresso->exibir(); 129 $this->barraProgresso->exibir();
131 -  
132 //Valida regras de negócio 130 //Valida regras de negócio
133 $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_VALIDACAO); 131 $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_VALIDACAO);
134 $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); 132 $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO);
135 133
136 $objInfraException = new InfraException(); 134 $objInfraException = new InfraException();
137 -  
138 //Carregamento dos dados de processo e documento para validação e envio externo 135 //Carregamento dos dados de processo e documento para validação e envio externo
139 $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento); 136 $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento);
140 $objProcedimentoDTO->setArrObjDocumentoDTO($this->listarDocumentos($dblIdProcedimento)); 137 $objProcedimentoDTO->setArrObjDocumentoDTO($this->listarDocumentos($dblIdProcedimento));
@@ -142,7 +139,6 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -142,7 +139,6 @@ class ExpedirProcedimentoRN extends InfraRN {
142 139
143 $this->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO); 140 $this->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO);
144 $this->validarParametrosExpedicao($objInfraException, $objExpedirProcedimentoDTO); 141 $this->validarParametrosExpedicao($objInfraException, $objExpedirProcedimentoDTO);
145 -  
146 //Apresentao da mensagens de validao na janela da barra de progresso 142 //Apresentao da mensagens de validao na janela da barra de progresso
147 if($objInfraException->contemValidacoes()){ 143 if($objInfraException->contemValidacoes()){
148 $this->barraProgresso->mover(0); 144 $this->barraProgresso->mover(0);
@@ -155,10 +151,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -155,10 +151,8 @@ class ExpedirProcedimentoRN extends InfraRN {
155 151
156 //Construo dos cabecalho para envio do processo 152 //Construo dos cabecalho para envio do processo
157 $objCabecalho = $this->construirCabecalho($objExpedirProcedimentoDTO); 153 $objCabecalho = $this->construirCabecalho($objExpedirProcedimentoDTO);
158 -  
159 //Construo do processo para envio 154 //Construo do processo para envio
160 $objProcesso = $this->construirProcesso($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado()); 155 $objProcesso = $this->construirProcesso($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado());
161 -  
162 try { 156 try {
163 $param = new stdClass(); 157 $param = new stdClass();
164 $param->novoTramiteDeProcesso = new stdClass(); 158 $param->novoTramiteDeProcesso = new stdClass();
@@ -170,14 +164,13 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -170,14 +164,13 @@ class ExpedirProcedimentoRN extends InfraRN {
170 } catch (\Exception $e) { 164 } catch (\Exception $e) {
171 throw new InfraException("Error Processing Request", $e); 165 throw new InfraException("Error Processing Request", $e);
172 } 166 }
173 -  
174 $this->atualizarPenProtocolo($dblIdProcedimento); 167 $this->atualizarPenProtocolo($dblIdProcedimento);
175 -  
176 if (isset($novoTramite->dadosTramiteDeProcessoCriado)) { 168 if (isset($novoTramite->dadosTramiteDeProcessoCriado)) {
177 $objTramite = $novoTramite->dadosTramiteDeProcessoCriado; 169 $objTramite = $novoTramite->dadosTramiteDeProcessoCriado;
178 $this->objProcedimentoAndamentoRN->setOpts($dblIdProcedimento, $objTramite->IDT, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); 170 $this->objProcedimentoAndamentoRN->setOpts($dblIdProcedimento, $objTramite->IDT, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO));
179 try { 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 $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI); 174 $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI);
182 175
183 $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( 176 $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso(
@@ -230,8 +223,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -230,8 +223,7 @@ class ExpedirProcedimentoRN extends InfraRN {
230 $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_CONCLUSAO); 223 $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_CONCLUSAO);
231 224
232 // @join_tec US008.06 (#23092) 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 $this->receberReciboDeEnvio($objTramite->IDT); 228 $this->receberReciboDeEnvio($objTramite->IDT);
237 } 229 }
@@ -253,7 +245,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -253,7 +245,7 @@ class ExpedirProcedimentoRN extends InfraRN {
253 $this->registrarAndamentoExpedicaoAbortada($objProcesso->idProcedimentoSEI); 245 $this->registrarAndamentoExpedicaoAbortada($objProcesso->idProcedimentoSEI);
254 246
255 // @join_tec US008.06 (#23092) 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 throw $e; 249 throw $e;
258 } 250 }
259 } 251 }
@@ -1566,10 +1558,10 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1566,10 +1558,10 @@ class ExpedirProcedimentoRN extends InfraRN {
1566 //Bloquea documento para atualizao, j que ele foi visualizado 1558 //Bloquea documento para atualizao, j que ele foi visualizado
1567 $this->objDocumentoRN->bloquearConteudo($objDocumentoDTO); 1559 $this->objDocumentoRN->bloquearConteudo($objDocumentoDTO);
1568 // @join_tec US008.05 (#23092) 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 } catch (Exception $e) { 1562 } catch (Exception $e) {
1571 // @join_tec US008.05 (#23092) 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 throw new InfraException("Error Processing Request", $e); 1565 throw new InfraException("Error Processing Request", $e);
1574 } 1566 }
1575 } 1567 }
rn/ProcedimentoAndamentoRN.php
@@ -14,20 +14,7 @@ class ProcedimentoAndamentoRN extends InfraRN { @@ -14,20 +14,7 @@ class ProcedimentoAndamentoRN extends InfraRN {
14 protected $dblIdTramit; 14 protected $dblIdTramit;
15 protected $numTarefa; 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 * Invés de aproveitar o singleton do BancoSEI criamos uma nova instância para 20 * Invés de aproveitar o singleton do BancoSEI criamos uma nova instância para
@@ -35,15 +22,8 @@ class ProcedimentoAndamentoRN extends InfraRN { @@ -35,15 +22,8 @@ class ProcedimentoAndamentoRN extends InfraRN {
35 * 22 *
36 * @return Infra[Driver] 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,40 +38,29 @@ class ProcedimentoAndamentoRN extends InfraRN {
58 /** 38 /**
59 * Adiciona um novo andamento à um procedimento que esta sendo expedido para outra unidade 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 if($this->isSetOpts === false) { 45 if($this->isSetOpts === false) {
68 throw new InfraException('Log do cadastro de procedimento não foi configurado'); 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,7 +188,7 @@ class ReceberProcedimentoRN extends InfraRN
188 188
189 // @join_tec US008.08 (#23092) 189 // @join_tec US008.08 (#23092)
190 $this->objProcedimentoAndamentoRN->setOpts($objProcedimentoDTO->getDblIdProcedimento(), $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); 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 $this->gravarLogDebug("Registrando trâmite externo do processo", 4); 194 $this->gravarLogDebug("Registrando trâmite externo do processo", 4);
@@ -246,15 +246,15 @@ class ReceberProcedimentoRN extends InfraRN @@ -246,15 +246,15 @@ class ReceberProcedimentoRN extends InfraRN
246 246
247 // @join_tec US008.09 (#23092) 247 // @join_tec US008.09 (#23092)
248 $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); 248 $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado());
249 - $this->objProcedimentoAndamentoRN->cadastrar($strMensagemRecebimento, 'S'); 249 + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S'));
250 $this->gravarLogDebug($strMensagemRecebimento, 6); 250 $this->gravarLogDebug($strMensagemRecebimento, 6);
251 } 251 }
252 } 252 }
253 // @join_tec US008.10 (#23092) 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 }else{ 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,7 +202,7 @@ class ReceberReciboTramiteRN extends InfraRN
202 $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); 202 $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO);
203 203
204 $this->objProcedimentoAndamentoRN->setOpts($objProcessoEletronicoDTO->getDblIdProcedimento(), $parNumIdTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); 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 //Registra o recbimento do recibo no histórico e realiza a conclusão do processo 206 //Registra o recbimento do recibo no histórico e realiza a conclusão do processo
207 $this->registrarRecebimentoRecibo($objProtocoloDTO->getDblIdProtocolo(), $objProtocoloDTO->getStrProtocoloFormatado(), $parNumIdTramite); 207 $this->registrarRecebimentoRecibo($objProtocoloDTO->getDblIdProtocolo(), $objProtocoloDTO->getStrProtocoloFormatado(), $parNumIdTramite);
208 $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_RECIBO); 208 $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_RECIBO);