Commit bb237619392e6c8a6f80f54735882d77ff8a1226
Exists in
master
and in
7 other branches
Merge remote-tracking branch 'origin/fix-95' into desenv
Showing
1 changed file
with
69 additions
and
76 deletions
Show diff stats
rn/ReceberProcedimentoRN.php
... | ... | @@ -74,7 +74,7 @@ class ReceberProcedimentoRN extends InfraRN |
74 | 74 | $objMetadadosProcedimento->metadados->destinatario->identificacaoDoRepositorioDeEstruturas = $unidadeReceptora->identificacaoDoRepositorioDeEstruturas; |
75 | 75 | $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura = $unidadeReceptora->numeroDeIdentificacaoDaEstrutura; |
76 | 76 | $numUnidadeReceptora = $unidadeReceptora->numeroDeIdentificacaoDaEstrutura; |
77 | - $this->gravarLogDebug("Atribuindo unidade receptora $numUnidadeReceptora para o trâmite $parNumIdentificacaoTramite", 4); | |
77 | + $this->gravarLogDebug("Atribuindo unidade centralizadora $numUnidadeReceptora para o trâmite $parNumIdentificacaoTramite", 4); | |
78 | 78 | } |
79 | 79 | |
80 | 80 | // Validação dos dados do processo recebido |
... | ... | @@ -260,13 +260,17 @@ class ReceberProcedimentoRN extends InfraRN |
260 | 260 | $arrHashsComponentesDigitais = array(); |
261 | 261 | $arrObjDocumento = is_array($parObjProtocolo->documento) ? $parObjProtocolo->documento : array($parObjProtocolo->documento); |
262 | 262 | foreach($arrObjDocumento as $objDocumento){ |
263 | - if(!isset($objDocumento->componenteDigital)){ | |
264 | - throw new InfraException("Metadados do componente digital do documento de ordem {$objDocumento->ordem} não informado."); | |
265 | - } | |
266 | 263 | |
267 | - $arrObjComponentesDigitais = is_array($objDocumento->componenteDigital) ? $objDocumento->componenteDigital : array($objDocumento->componenteDigital); | |
268 | - foreach ($arrObjComponentesDigitais as $objComponenteDigital) { | |
269 | - $arrHashsComponentesDigitais[] = ProcessoEletronicoRN::getHashFromMetaDados($objComponenteDigital->hash); | |
264 | + //Desconsidera os componendes digitais de documentos cancelados | |
265 | + if(!isset($objDocumento->retirado) || $objDocumento->retirado == false) { | |
266 | + if(!isset($objDocumento->componenteDigital)){ | |
267 | + throw new InfraException("Metadados do componente digital do documento de ordem {$objDocumento->ordem} não informado."); | |
268 | + } | |
269 | + | |
270 | + $arrObjComponentesDigitais = is_array($objDocumento->componenteDigital) ? $objDocumento->componenteDigital : array($objDocumento->componenteDigital); | |
271 | + foreach ($arrObjComponentesDigitais as $objComponenteDigital) { | |
272 | + $arrHashsComponentesDigitais[] = ProcessoEletronicoRN::getHashFromMetaDados($objComponenteDigital->hash); | |
273 | + } | |
270 | 274 | } |
271 | 275 | } |
272 | 276 | |
... | ... | @@ -502,23 +506,8 @@ class ReceberProcedimentoRN extends InfraRN |
502 | 506 | $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; |
503 | 507 | } |
504 | 508 | |
505 | - //TODO: Refatorar código para criar método de pesquisa do procedimento e reutilizá-la | |
506 | - | |
507 | - //$objProcedimentoDTO = new ProcedimentoDTO(); | |
508 | - //$objProcedimentoDTO->setDblIdProcedimento($parDblIdProcedimento); | |
509 | - //$objProcedimentoDTO->retTodos(); | |
510 | - //$objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); | |
511 | - //$objProcedimentoDTO->setStrSinDocTodos('S'); | |
512 | - | |
513 | - //$objProcedimentoRN = new ProcedimentoRN(); | |
514 | - //$arrObjProcedimentoDTO = $objProcedimentoRN->listarCompleto($objProcedimentoDTO); | |
515 | - | |
516 | - //if(count($arrObjProcedimentoDTO) == 0){ | |
517 | - // throw new InfraException('Processo não pode ser localizado. ('.$parDblIdProcedimento.')'); | |
518 | - //} | |
519 | - | |
520 | - //$objProcedimentoDTO = $arrObjProcedimentoDTO[0]; | |
521 | - | |
509 | + //Busca a unidade em ao qual o processo foi anteriormente expedido | |
510 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
522 | 511 | $objAtividadeDTO = new AtividadeDTO(); |
523 | 512 | $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); |
524 | 513 | $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); |
... | ... | @@ -535,68 +524,74 @@ class ReceberProcedimentoRN extends InfraRN |
535 | 524 | $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); |
536 | 525 | } |
537 | 526 | |
538 | - $objSeiRN = new SeiRN(); | |
527 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
528 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
539 | 529 | |
540 | - $objAtividadeDTO = new AtividadeDTO(); | |
541 | - $objAtividadeDTO->retDthConclusao(); | |
542 | - $objAtividadeDTO->setDblIdProtocolo($parDblIdProcedimento); | |
543 | - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | |
530 | + try { | |
531 | + $objSeiRN = new SeiRN(); | |
532 | + $objAtividadeDTO = new AtividadeDTO(); | |
533 | + $objAtividadeDTO->retDthConclusao(); | |
534 | + $objAtividadeDTO->setDblIdProtocolo($parDblIdProcedimento); | |
535 | + $objAtividadeDTO->setNumIdUnidade($numIdUnidade); | |
544 | 536 | |
545 | - $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | |
546 | - $flgReabrir = true; | |
537 | + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | |
538 | + $flgReabrir = true; | |
547 | 539 | |
548 | - foreach ($arrObjAtividadeDTO as $objAtividadeDTO) { | |
549 | - if ($objAtividadeDTO->getDthConclusao() == null) { | |
550 | - $flgReabrir = false; | |
540 | + foreach ($arrObjAtividadeDTO as $objAtividadeDTO) { | |
541 | + if ($objAtividadeDTO->getDthConclusao() == null) { | |
542 | + $flgReabrir = false; | |
543 | + } | |
551 | 544 | } |
552 | - } | |
553 | 545 | |
554 | - $objProcedimentoDTO = new ProcedimentoDTO(); | |
555 | - $objProcedimentoDTO->setDblIdProcedimento($parDblIdProcedimento); | |
556 | - $objProcedimentoDTO->retTodos(); | |
557 | - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); | |
558 | - | |
559 | - $objProcedimentoRN = new ProcedimentoRN(); | |
560 | - $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); | |
561 | - | |
562 | - $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); | |
546 | + $objProcedimentoDTO = new ProcedimentoDTO(); | |
547 | + $objProcedimentoDTO->setDblIdProcedimento($parDblIdProcedimento); | |
548 | + $objProcedimentoDTO->retTodos(); | |
549 | + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); | |
563 | 550 | |
551 | + $objProcedimentoRN = new ProcedimentoRN(); | |
552 | + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); | |
564 | 553 | |
565 | - if($flgReabrir){ | |
566 | - $objEntradaReabrirProcessoAPI = new EntradaReabrirProcessoAPI(); | |
567 | - $objEntradaReabrirProcessoAPI->setIdProcedimento($parDblIdProcedimento); | |
568 | - $objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI); | |
569 | - } | |
554 | + $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); | |
570 | 555 | |
571 | - //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!) | |
572 | - if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) { | |
573 | - $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento); | |
574 | - } | |
556 | + if($flgReabrir){ | |
557 | + $objEntradaReabrirProcessoAPI = new EntradaReabrirProcessoAPI(); | |
558 | + $objEntradaReabrirProcessoAPI->setIdProcedimento($parDblIdProcedimento); | |
559 | + $objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI); | |
560 | + } | |
575 | 561 | |
576 | - $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); | |
577 | - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($parDblIdProcedimento); | |
578 | - $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); | |
562 | + //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!) | |
563 | + if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) { | |
564 | + $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento); | |
565 | + } | |
579 | 566 | |
580 | - //TODO: Obter código da unidade através de mapeamento entre SEI e Barramento | |
581 | - $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); | |
567 | + $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); | |
568 | + $objEntradaDesbloquearProcessoAPI->setIdProcedimento($parDblIdProcedimento); | |
569 | + $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); | |
582 | 570 | |
583 | - $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); | |
584 | - $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTO); | |
571 | + //TODO: Obter código da unidade através de mapeamento entre SEI e Barramento | |
572 | + $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); | |
585 | 573 | |
586 | - //TODO: Avaliar necessidade de restringir referência circular entre processos | |
587 | - //TODO: Registrar que o processo foi recebido com outros apensados. Necessário para posterior reenvio | |
588 | - $this->atribuirProcessosApensados($objProcedimentoDTO, $objProcesso->processoApensado); | |
574 | + $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); | |
575 | + $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTO); | |
589 | 576 | |
590 | - //Realiza a alteração dos metadados do processo | |
591 | - //TODO: Implementar alteração de todos os metadados | |
592 | - $this->alterarMetadadosProcedimento($objProcedimentoDTO->getDblIdProcedimento(), $objProcesso); | |
577 | + //TODO: Avaliar necessidade de restringir referência circular entre processos | |
578 | + //TODO: Registrar que o processo foi recebido com outros apensados. Necessário para posterior reenvio | |
579 | + $this->atribuirProcessosApensados($objProcedimentoDTO, $objProcesso->processoApensado); | |
593 | 580 | |
594 | - //TODO: Finalizar o envio do documento para a respectiva unidade | |
595 | - $this->enviarProcedimentoUnidade($objProcedimentoDTO, true); | |
581 | + //Realiza a alteração dos metadados do processo | |
582 | + //TODO: Implementar alteração de todos os metadados | |
583 | + $this->alterarMetadadosProcedimento($objProcedimentoDTO->getDblIdProcedimento(), $objProcesso); | |
596 | 584 | |
597 | - //$this->removerAndamentosProcedimento($objProcedimentoDTO); | |
598 | - return $objProcedimentoDTO; | |
585 | + //Finaliza o envio do documento para a respectiva unidade | |
586 | + $this->enviarProcedimentoUnidade($objProcedimentoDTO, true); | |
599 | 587 | |
588 | + return $objProcedimentoDTO; | |
589 | + | |
590 | + } finally { | |
591 | + $objPenParametroRN = new PenParametroRN(); | |
592 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
593 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
594 | + } | |
600 | 595 | } |
601 | 596 | |
602 | 597 | private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) { |
... | ... | @@ -1625,15 +1620,13 @@ $objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtua |
1625 | 1620 | $objAtividadeDTO2->setDthConclusao(null); |
1626 | 1621 | |
1627 | 1622 | |
1628 | -if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) { | |
1629 | - | |
1630 | - //reabertura automática | |
1623 | +if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) { | |
1624 | + //reabertura automática | |
1631 | 1625 | $objReabrirProcessoDTO = new ReabrirProcessoDTO(); |
1632 | - $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); | |
1633 | - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | |
1626 | + $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); | |
1634 | 1627 | $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); |
1628 | + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | |
1635 | 1629 | $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); |
1636 | - | |
1637 | 1630 | } |
1638 | 1631 | |
1639 | 1632 | //$objPenAtividadeRN = new PenAtividadeRN(); | ... | ... |