Commit f1cd004f37de163bc3f7500189f87586530e7c56
1 parent
7d9fa19d
Exists in
master
and in
10 other branches
Ajuste parcial para adaptação do recebimento de processos no SEI 3.1
Showing
4 changed files
with
159 additions
and
118 deletions
Show diff stats
rn/ProcessarPendenciasRN.php
... | ... | @@ -114,7 +114,8 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa |
114 | 114 | LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); |
115 | 115 | |
116 | 116 | //Não recusa trâmite caso o processo atual não possa ser desbloqueado, evitando que o processo fique aberto em dois sistemas ao mesmo tempo |
117 | - if($e instanceof InfraException && $e->getObjException() != null && !($e->getObjException() instanceof ProcessoNaoPodeSerDesbloqueadoException)) { | |
117 | + $bolDeveRecusarTramite = !($e instanceof InfraException && $e->getObjException() != null && $e->getObjException() instanceof ProcessoNaoPodeSerDesbloqueadoException); | |
118 | + if($bolDeveRecusarTramite) { | |
118 | 119 | $objProcessoEletronicoRN = new ProcessoEletronicoRN(); |
119 | 120 | $strMensagem = ($e instanceof InfraException) ? $e->__toString() : $e->getMessage(); |
120 | 121 | $objProcessoEletronicoRN->recusarTramite($numIdentificacaoTramite, $strMensagem, ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); | ... | ... |
rn/ProcessoEletronicoRN.php
... | ... | @@ -1435,6 +1435,33 @@ class ProcessoEletronicoRN extends InfraRN { |
1435 | 1435 | throw new ProcessoNaoPodeSerDesbloqueadoException("Erro ao desbloquear processo", 1, $e); |
1436 | 1436 | } |
1437 | 1437 | } |
1438 | + | |
1439 | + /** | |
1440 | + * Busca a unidade ao qual o processo foi anteriormente expedido. | |
1441 | + * Caso seja o primeiro trâmite, considera a unidade atual | |
1442 | + * | |
1443 | + * @return integer Id da unidade | |
1444 | + */ | |
1445 | + public static function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) | |
1446 | + { | |
1447 | + $objAtividadeDTO = new AtividadeDTO(); | |
1448 | + $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); | |
1449 | + $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); | |
1450 | + $objAtividadeDTO->setOrd('Conclusao', InfraDTO::$TIPO_ORDENACAO_DESC); | |
1451 | + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | |
1452 | + $objAtividadeDTO->retNumIdUnidade(); | |
1453 | + | |
1454 | + $objAtividadeRN = new AtividadeRN(); | |
1455 | + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | |
1456 | + $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); | |
1457 | + | |
1458 | + //if(!empty($arrObjAtividadeDTO)){ | |
1459 | + // $objAtividadeDTO = $arrObjAtividadeDTO[0]; | |
1460 | + // $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); | |
1461 | + //} | |
1462 | + | |
1463 | + return $numIdUnidade; | |
1464 | + } | |
1438 | 1465 | } |
1439 | 1466 | |
1440 | 1467 | ... | ... |
rn/ReceberComponenteDigitalRN.php
... | ... | @@ -142,15 +142,8 @@ class ReceberComponenteDigitalRN extends InfraRN |
142 | 142 | |
143 | 143 | $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); |
144 | 144 | $objProtocoloDTO->setArrObjAnexoDTO(array($parObjAnexoDTO)); |
145 | - $objDocumentoDTO = $objDocumentoRN->alterarRN0004($objDocumentoDTO); | |
146 | - | |
147 | - // @join_tec US029 (#3790) | |
148 | - /*$objObservacaoDTO = new ObservacaoDTO(); | |
149 | - $objObservacaoDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); | |
150 | - $objObservacaoDTO->setStrDescricao(sprintf('Número SEI do Documento na Origem: %s', $strProtocoloFormatado)); | |
151 | - $objObservacaoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | |
152 | 145 | |
153 | - $objObservacaoBD = new ObservacaoRN(); | |
154 | - $objObservacaoBD->cadastrarRN0222($objObservacaoDTO);*/ | |
146 | + $objDocumentoDTO->setStrSinBloqueado('S'); | |
147 | + $objDocumentoDTO = $objDocumentoRN->alterarRN0004($objDocumentoDTO); | |
155 | 148 | } |
156 | 149 | } | ... | ... |
rn/ReceberProcedimentoRN.php
... | ... | @@ -17,6 +17,7 @@ class ReceberProcedimentoRN extends InfraRN |
17 | 17 | $this->objInfraParametro = new InfraParametro(BancoSEI::getInstance()); |
18 | 18 | $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); |
19 | 19 | $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); |
20 | + $this->objReceberComponenteDigitalRN = new ReceberComponenteDigitalRN(); | |
20 | 21 | } |
21 | 22 | |
22 | 23 | protected function inicializarObjInfraIBanco() |
... | ... | @@ -91,8 +92,6 @@ class ReceberProcedimentoRN extends InfraRN |
91 | 92 | $this->verificarPermissoesDiretorios($parNumIdentificacaoTramite); |
92 | 93 | |
93 | 94 | $this->gravarLogDebug("Obtendo metadados dos componentes digitais do processo", 4); |
94 | - $arrStrNomeDocumento = $this->listarMetaDadosComponentesDigitais($objProcesso); | |
95 | - $receberComponenteDigitalRN = new ReceberComponenteDigitalRN(); | |
96 | 95 | $arrAnexosComponentes = array(); |
97 | 96 | $arrayHash = array(); |
98 | 97 | $arrayHashPendentes = array(); |
... | ... | @@ -127,12 +126,12 @@ class ReceberProcedimentoRN extends InfraRN |
127 | 126 | //Obter os dados do componente digital |
128 | 127 | $this->gravarLogDebug("Baixando componente digital $numOrdemComponente", 6); |
129 | 128 | $objComponenteDigital = $this->objProcessoEletronicoRN->receberComponenteDigital($parNumIdentificacaoTramite, $componentePendente, $objTramite->protocolo); |
130 | - $arrAnexosComponentes[$key][$componentePendente] = $receberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital); | |
129 | + $arrAnexosComponentes[$key][$componentePendente] = $this->objReceberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital); | |
131 | 130 | $arrAnexosComponentes[$key]['recebido'] = false; |
132 | 131 | |
133 | 132 | //Valida a integridade do hash |
134 | 133 | $this->gravarLogDebug("Validando integridade de componente digital $numOrdemComponente", 6); |
135 | - $receberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente], $componentePendente, $parNumIdentificacaoTramite); | |
134 | + $this->objReceberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente], $componentePendente, $parNumIdentificacaoTramite); | |
136 | 135 | } else { |
137 | 136 | $this->gravarLogDebug("Componente digital $numOrdemComponente desconsiderado por já fazer parte do processo", 6); |
138 | 137 | } |
... | ... | @@ -140,7 +139,7 @@ class ReceberProcedimentoRN extends InfraRN |
140 | 139 | } |
141 | 140 | |
142 | 141 | if(count($arrAnexosComponentes) > 0){ |
143 | - $receberComponenteDigitalRN->setArrAnexos($arrAnexosComponentes); | |
142 | + $this->objReceberComponenteDigitalRN->setArrAnexos($arrAnexosComponentes); | |
144 | 143 | } |
145 | 144 | |
146 | 145 | #############################TERMINA O RECEBIMENTO DOS COMPONENTES DIGITAIS US010################################################ |
... | ... | @@ -155,7 +154,13 @@ class ReceberProcedimentoRN extends InfraRN |
155 | 154 | } |
156 | 155 | |
157 | 156 | $this->gravarLogDebug("Persistindo/atualizando dados do processo com NRE " . $strNumeroRegistro, 4); |
158 | - $objProcedimentoDTO = $this->registrarProcesso($strNumeroRegistro, $parNumIdentificacaoTramite, $objProcesso, $objMetadadosProcedimento); | |
157 | + $objProcedimentoDTO = $this->registrarProcesso( | |
158 | + $strNumeroRegistro, | |
159 | + $parNumIdentificacaoTramite, | |
160 | + $objProcesso, | |
161 | + $objMetadadosProcedimento, | |
162 | + $arrayHash, | |
163 | + $arrayHashPendentes); | |
159 | 164 | |
160 | 165 | // @join_tec US008.08 (#23092) |
161 | 166 | $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), $objProcedimentoDTO->getDblIdProcedimento()); |
... | ... | @@ -185,70 +190,20 @@ class ReceberProcedimentoRN extends InfraRN |
185 | 190 | throw new InfraException("Desconsiderando recebimento do processo devido a situação de trâmite inconsistente: " . $objTramite->situacaoAtual); |
186 | 191 | } |
187 | 192 | |
188 | -//return ; | |
189 | - | |
190 | - if(count($arrayHashPendentes) > 0){ | |
191 | - //Obter dados dos componetes digitais | |
192 | - $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); | |
193 | - $objComponenteDigitalDTO = new ComponenteDigitalDTO(); | |
194 | - $objComponenteDigitalDTO->setStrNumeroRegistro($strNumeroRegistro); | |
195 | - $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); | |
196 | - $objComponenteDigitalDTO->setStrHashConteudo($arrayHash, InfraDTO::$OPER_IN); | |
197 | - $objComponenteDigitalDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_ASC); | |
198 | - $objComponenteDigitalDTO->retDblIdDocumento(); | |
199 | - $objComponenteDigitalDTO->retNumTicketEnvioComponentes(); | |
200 | - $objComponenteDigitalDTO->retStrProtocoloDocumentoFormatado(); | |
201 | - $objComponenteDigitalDTO->retStrHashConteudo(); | |
202 | - $objComponenteDigitalDTO->retStrProtocolo(); | |
203 | - $objComponenteDigitalDTO->retStrNumeroRegistro(); | |
204 | - $objComponenteDigitalDTO->retNumIdTramite(); | |
205 | - $objComponenteDigitalDTO->retStrNome(); | |
206 | - $objComponenteDigitalDTO->retStrStaEstadoProtocolo(); | |
207 | - | |
208 | - $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); | |
209 | - $arrObjComponentesDigitaisDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); | |
210 | - | |
211 | - if ($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0) { | |
212 | - $objReceberComponenteDigitalRN = $receberComponenteDigitalRN; | |
213 | - | |
214 | - //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
215 | - $numIdUnidade = $this->obterUnidadeParaRegistroDocumento($objProcedimentoDTO->getDblIdProcedimento()); | |
216 | - SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
217 | - | |
218 | - try{ | |
219 | - foreach($arrObjComponentesDigitaisDTO as $objComponenteDigitalDTOEnviado) { | |
220 | - if($objComponenteDigitalDTOEnviado->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ | |
221 | - $strHash = $objComponenteDigitalDTOEnviado->getStrHashConteudo(); | |
222 | - $strNomeDocumento = (array_key_exists($strHash, $arrStrNomeDocumento)) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; | |
223 | - $objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); | |
224 | - | |
225 | - $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); | |
226 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); | |
227 | - $this->gravarLogDebug($strMensagemRecebimento, 6); | |
228 | - } | |
229 | - } | |
230 | - } finally { | |
231 | - $objPenParametroRN = new PenParametroRN(); | |
232 | - $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
233 | - SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
234 | - } | |
235 | - | |
236 | - // @join_tec US008.10 (#23092) | |
237 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); | |
238 | - }else{ | |
239 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); | |
240 | - } | |
241 | - } | |
242 | - } | |
193 | + //Atribui componentes digitais baixados anteriormente aos documentos do processo | |
194 | + $this->atribuirComponentesDigitaisAosDocumentos($objProcedimentoDTO, $strNumeroRegistro, $parNumIdentificacaoTramite, $arrayHash, $arrayHashPendentes); | |
243 | 195 | |
244 | - $this->gravarLogDebug("Enviando recibo de conclusão do trâmite $parNumIdentificacaoTramite", 6); | |
245 | - $objEnviarReciboTramiteRN = new EnviarReciboTramiteRN(); | |
246 | - $objEnviarReciboTramiteRN->enviarReciboTramiteProcesso($parNumIdentificacaoTramite, $arrayHash); | |
196 | + //Finalizar o envio do documento para a respectiva unidade | |
197 | + $this->enviarProcedimentoUnidade($objProcedimentoDTO); | |
247 | 198 | |
248 | - $this->gravarLogDebug("Registrando a conclusão do recebimento do trâmite $parNumIdentificacaoTramite", 6); | |
249 | - $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO); | |
250 | - $objPenTramiteProcessadoRN->setRecebido($parNumIdentificacaoTramite); | |
199 | + $this->gravarLogDebug("Enviando recibo de conclusão do trâmite $parNumIdentificacaoTramite", 6); | |
200 | + $objEnviarReciboTramiteRN = new EnviarReciboTramiteRN(); | |
201 | + $objEnviarReciboTramiteRN->enviarReciboTramiteProcesso($parNumIdentificacaoTramite, $arrayHash); | |
251 | 202 | |
203 | + $this->gravarLogDebug("Registrando a conclusão do recebimento do trâmite $parNumIdentificacaoTramite", 6); | |
204 | + $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO); | |
205 | + $objPenTramiteProcessadoRN->setRecebido($parNumIdentificacaoTramite); | |
206 | + } | |
252 | 207 | } catch (Exception $e) { |
253 | 208 | $mensagemErro = InfraException::inspecionar($e); |
254 | 209 | $this->gravarLogDebug($mensagemErro); |
... | ... | @@ -258,6 +213,71 @@ class ReceberProcedimentoRN extends InfraRN |
258 | 213 | } |
259 | 214 | |
260 | 215 | /** |
216 | + * Método responsável por atribuir a lista de componentes digitais baixados do PEN aos seus respectivos documentos no SEI | |
217 | + * | |
218 | + * @param ProcedimentoDTO $parObjProcedimentoDTO Protocolo que está sendo recebido pelo SEI | |
219 | + * @param Array $parArrHashComponentesPendentes Lista de componentes pendentes para vinculação aos documentos | |
220 | + * @return [type] [description] | |
221 | + */ | |
222 | + private function atribuirComponentesDigitaisAosDocumentos(ProcedimentoDTO $parObjProcedimentoDTO, $parStrNumeroRegistro, $parNumIdentificacaoTramite, | |
223 | + $parArrHashComponentes, $parArrHashComponentesPendentes) | |
224 | + { | |
225 | + if(count($parArrHashComponentesPendentes) > 0){ | |
226 | + //Obter dados dos componetes digitais | |
227 | + $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); | |
228 | + $objComponenteDigitalDTO = new ComponenteDigitalDTO(); | |
229 | + $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); | |
230 | + $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); | |
231 | + $objComponenteDigitalDTO->setStrHashConteudo($parArrHashComponentes, InfraDTO::$OPER_IN); | |
232 | + $objComponenteDigitalDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_ASC); | |
233 | + $objComponenteDigitalDTO->retDblIdDocumento(); | |
234 | + $objComponenteDigitalDTO->retNumTicketEnvioComponentes(); | |
235 | + $objComponenteDigitalDTO->retStrProtocoloDocumentoFormatado(); | |
236 | + $objComponenteDigitalDTO->retStrHashConteudo(); | |
237 | + $objComponenteDigitalDTO->retStrProtocolo(); | |
238 | + $objComponenteDigitalDTO->retStrNumeroRegistro(); | |
239 | + $objComponenteDigitalDTO->retNumIdTramite(); | |
240 | + $objComponenteDigitalDTO->retStrNome(); | |
241 | + $objComponenteDigitalDTO->retStrStaEstadoProtocolo(); | |
242 | + | |
243 | + $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); | |
244 | + $arrObjComponentesDigitaisDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); | |
245 | + | |
246 | + if ($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0) { | |
247 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
248 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parObjProcedimentoDTO->getDblIdProcedimento()); | |
249 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
250 | + | |
251 | + try{ | |
252 | + $arrStrNomeDocumento = $this->listarMetaDadosComponentesDigitais($objProcesso); | |
253 | + foreach($arrObjComponentesDigitaisDTO as $objComponenteDigitalDTOEnviado) { | |
254 | + if($objComponenteDigitalDTOEnviado->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ | |
255 | + $strHash = $objComponenteDigitalDTOEnviado->getStrHashConteudo(); | |
256 | + $strNomeDocumento = array_key_exists($strHash, $arrStrNomeDocumento) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; | |
257 | + | |
258 | + //Todo: Parei aqui: Verificar se documento já foi recebido anteriormente para poder registrar | |
259 | + //Alterar somente de documentos não bloqueados | |
260 | + $this->objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); | |
261 | + $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); | |
262 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); | |
263 | + $this->gravarLogDebug($strMensagemRecebimento, 6); | |
264 | + } | |
265 | + } | |
266 | + } finally { | |
267 | + $objPenParametroRN = new PenParametroRN(); | |
268 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
269 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
270 | + } | |
271 | + | |
272 | + // @join_tec US008.10 (#23092) | |
273 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); | |
274 | + }else{ | |
275 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); | |
276 | + } | |
277 | + } | |
278 | + } | |
279 | + | |
280 | + /** | |
261 | 281 | * Método para recuperar a lista de todos os hashs dos componentes digitais presentes no protocolo recebido |
262 | 282 | * |
263 | 283 | * @return Array Lista de hashs dos componentes digitais |
... | ... | @@ -418,7 +438,8 @@ class ReceberProcedimentoRN extends InfraRN |
418 | 438 | } |
419 | 439 | |
420 | 440 | |
421 | - private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjMetadadosProcedimento) | |
441 | + private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjMetadadosProcedimento, | |
442 | + $parArrHashComponentes, $parArrHashComponentesPendentes) | |
422 | 443 | { |
423 | 444 | // Validação dos dados do processo recebido |
424 | 445 | $objInfraException = new InfraException(); |
... | ... | @@ -434,10 +455,10 @@ class ReceberProcedimentoRN extends InfraRN |
434 | 455 | $dblIdProcedimento = $this->consultarProcedimentoExistente($parStrNumeroRegistro, $parObjProcesso->protocolo); |
435 | 456 | |
436 | 457 | if(isset($dblIdProcedimento)){ |
437 | - $objProcedimentoDTO = $this->atualizarProcedimento($dblIdProcedimento, $parObjMetadadosProcedimento, $parObjProcesso); | |
458 | + $objProcedimentoDTO = $this->atualizarProcedimento($dblIdProcedimento, $parObjMetadadosProcedimento, $parObjProcesso, $parNumIdentificacaoTramite, $parArrHashComponentes, $parArrHashComponentesPendentes); | |
438 | 459 | } |
439 | 460 | else { |
440 | - $objProcedimentoDTO = $this->gerarProcedimento($parObjMetadadosProcedimento, $parObjProcesso); | |
461 | + $objProcedimentoDTO = $this->gerarProcedimento($parObjMetadadosProcedimento, $parObjProcesso, $parNumIdentificacaoTramite, $parArrHashComponentes, $parArrHashComponentesPendentes); | |
441 | 462 | } |
442 | 463 | |
443 | 464 | //TODO: Fazer o envio de cada um dos procedimentos apensados (Processo principal e seus apensados, caso exista) |
... | ... | @@ -499,7 +520,7 @@ class ReceberProcedimentoRN extends InfraRN |
499 | 520 | return $dblIdProcedimento; |
500 | 521 | } |
501 | 522 | |
502 | - private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProcedimento, $objProcesso) | |
523 | + private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProcedimento, $objProcesso, $parNumIdTramite, $parArrHashComponentes, $parArrHashComponentesPendentes) | |
503 | 524 | { |
504 | 525 | if(!isset($parDblIdProcedimento)){ |
505 | 526 | throw new InfraException('Parâmetro $parDblIdProcedimento não informado.'); |
... | ... | @@ -518,7 +539,7 @@ class ReceberProcedimentoRN extends InfraRN |
518 | 539 | |
519 | 540 | //Busca a unidade em ao qual o processo foi anteriormente expedido |
520 | 541 | //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura |
521 | - $numIdUnidade = $this->obterUnidadeParaRegistroDocumento($parDblIdProcedimento); | |
542 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parDblIdProcedimento); | |
522 | 543 | SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); |
523 | 544 | |
524 | 545 | try { |
... | ... | @@ -565,6 +586,7 @@ class ReceberProcedimentoRN extends InfraRN |
565 | 586 | $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); |
566 | 587 | |
567 | 588 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); |
589 | + | |
568 | 590 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTO); |
569 | 591 | |
570 | 592 | //TODO: Avaliar necessidade de restringir referência circular entre processos |
... | ... | @@ -576,7 +598,7 @@ class ReceberProcedimentoRN extends InfraRN |
576 | 598 | $this->alterarMetadadosProcedimento($objProcedimentoDTO->getDblIdProcedimento(), $objProcesso); |
577 | 599 | |
578 | 600 | //Finaliza o envio do documento para a respectiva unidade |
579 | - $this->enviarProcedimentoUnidade($objProcedimentoDTO, true); | |
601 | + //$this->enviarProcedimentoUnidade($objProcedimentoDTO, true); | |
580 | 602 | |
581 | 603 | return $objProcedimentoDTO; |
582 | 604 | |
... | ... | @@ -588,32 +610,7 @@ class ReceberProcedimentoRN extends InfraRN |
588 | 610 | } |
589 | 611 | |
590 | 612 | |
591 | - /** | |
592 | - * Busca a unidade ao qual o processo foi anteriormente expedido. | |
593 | - * Caso seja o primeiro trâmite, considera a unidade atual | |
594 | - * | |
595 | - * @return integer Id da unidade | |
596 | - */ | |
597 | - private function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) | |
598 | - { | |
599 | - $objAtividadeDTO = new AtividadeDTO(); | |
600 | - $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); | |
601 | - $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); | |
602 | - $objAtividadeDTO->setOrd('Conclusao', InfraDTO::$TIPO_ORDENACAO_DESC); | |
603 | - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | |
604 | - $objAtividadeDTO->retNumIdUnidade(); | |
605 | - | |
606 | - $objAtividadeRN = new AtividadeRN(); | |
607 | - $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | |
608 | - $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); | |
609 | 613 | |
610 | - if(!empty($arrObjAtividadeDTO)){ | |
611 | - $objAtividadeDTO = $arrObjAtividadeDTO[0]; | |
612 | - $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); | |
613 | - } | |
614 | - | |
615 | - return $numIdUnidade; | |
616 | - } | |
617 | 614 | |
618 | 615 | private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) |
619 | 616 | { |
... | ... | @@ -646,7 +643,7 @@ class ReceberProcedimentoRN extends InfraRN |
646 | 643 | $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); |
647 | 644 | } |
648 | 645 | |
649 | - private function gerarProcedimento($objMetadadosProcedimento, $objProcesso) | |
646 | + private function gerarProcedimento($objMetadadosProcedimento, $objProcesso, $parNumIdTramite, $parArrHashComponentes, $parArrHashComponentesPendentes) | |
650 | 647 | { |
651 | 648 | if(!isset($objMetadadosProcedimento)){ |
652 | 649 | throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); |
... | ... | @@ -769,14 +766,15 @@ class ReceberProcedimentoRN extends InfraRN |
769 | 766 | |
770 | 767 | $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); |
771 | 768 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); |
769 | + | |
772 | 770 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOGerado); |
773 | 771 | |
774 | 772 | //TODO: Avaliar necessidade de restringir referência circular entre processos |
775 | 773 | //TODO: Registrar que o processo foi recebido com outros apensados. Necessário para posterior reenvio |
776 | 774 | $this->atribuirProcessosApensados($objProcedimentoDTO, $objProcesso->processoApensado); |
777 | 775 | |
778 | - //TODO: Finalizar o envio do documento para a respectiva unidade | |
779 | - $this->enviarProcedimentoUnidade($objProcedimentoDTO); | |
776 | + //Finalizar o envio do documento para a respectiva unidade | |
777 | + //$this->enviarProcedimentoUnidade($objProcedimentoDTO); | |
780 | 778 | |
781 | 779 | //$this->removerAndamentosProcedimento($objProcedimentoDTO); |
782 | 780 | return $objProcedimentoDTO; |
... | ... | @@ -793,11 +791,22 @@ class ReceberProcedimentoRN extends InfraRN |
793 | 791 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoProcedimento->hipoteseLegal->identificacao)); |
794 | 792 | } |
795 | 793 | |
796 | - $objProtocoloRN = new ProtocoloRN(); | |
797 | - $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
794 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
795 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parNumIdProcedimento); | |
796 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
797 | + | |
798 | + try{ | |
799 | + $objProtocoloRN = new ProtocoloRN(); | |
800 | + $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
801 | + } finally { | |
802 | + $objPenParametroRN = new PenParametroRN(); | |
803 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
804 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
805 | + } | |
798 | 806 | } |
799 | 807 | |
800 | - private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento){ | |
808 | + private function alterarMetadadosDocumento($parNumIdProcedimento, $parNumIdDocumento, $parObjMetadadoDocumento) | |
809 | + { | |
801 | 810 | //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal) |
802 | 811 | $objProtocoloDTO = new ProtocoloDTO(); |
803 | 812 | $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento); |
... | ... | @@ -807,8 +816,18 @@ class ReceberProcedimentoRN extends InfraRN |
807 | 816 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoDocumento->hipoteseLegal->identificacao)); |
808 | 817 | } |
809 | 818 | |
810 | - $objProtocoloRN = new ProtocoloRN(); | |
811 | - $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
819 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
820 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parNumIdProcedimento); | |
821 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
822 | + | |
823 | + try{ | |
824 | + $objProtocoloRN = new ProtocoloRN(); | |
825 | + $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
826 | + } finally { | |
827 | + $objPenParametroRN = new PenParametroRN(); | |
828 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
829 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
830 | + } | |
812 | 831 | } |
813 | 832 | |
814 | 833 | |
... | ... | @@ -1051,6 +1070,7 @@ class ReceberProcedimentoRN extends InfraRN |
1051 | 1070 | //Obter dados dos documentos já registrados no sistema |
1052 | 1071 | $objComponenteDigitalDTO = new ComponenteDigitalDTO(); |
1053 | 1072 | $objComponenteDigitalDTO->retNumOrdem(); |
1073 | + $objComponenteDigitalDTO->retDblIdProcedimento(); | |
1054 | 1074 | $objComponenteDigitalDTO->retDblIdDocumento(); |
1055 | 1075 | $objComponenteDigitalDTO->retStrHashConteudo(); |
1056 | 1076 | $objComponenteDigitalDTO->setStrNumeroRegistro($strNumeroRegistro); |
... | ... | @@ -1094,7 +1114,7 @@ class ReceberProcedimentoRN extends InfraRN |
1094 | 1114 | |
1095 | 1115 | if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)){ |
1096 | 1116 | $objComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; |
1097 | - $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); | |
1117 | + $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdProcedimento(), $objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); | |
1098 | 1118 | $objDocumento->idDocumentoSEI = $objComponenteDigitalDTO->getDblIdDocumento(); |
1099 | 1119 | continue; |
1100 | 1120 | } |
... | ... | @@ -1242,7 +1262,7 @@ class ReceberProcedimentoRN extends InfraRN |
1242 | 1262 | $strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); |
1243 | 1263 | $objDocumentoDTO->setStrConteudo(null); |
1244 | 1264 | $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); |
1245 | - $objDocumentoDTO->setStrSinBloqueado('S'); | |
1265 | + $objDocumentoDTO->setStrSinBloqueado('N'); | |
1246 | 1266 | |
1247 | 1267 | //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto |
1248 | 1268 | $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); | ... | ... |