Commit bb237619392e6c8a6f80f54735882d77ff8a1226
Exists in
master
and in
8 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,7 +74,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 74 | $objMetadadosProcedimento->metadados->destinatario->identificacaoDoRepositorioDeEstruturas = $unidadeReceptora->identificacaoDoRepositorioDeEstruturas; | 74 | $objMetadadosProcedimento->metadados->destinatario->identificacaoDoRepositorioDeEstruturas = $unidadeReceptora->identificacaoDoRepositorioDeEstruturas; |
| 75 | $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura = $unidadeReceptora->numeroDeIdentificacaoDaEstrutura; | 75 | $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura = $unidadeReceptora->numeroDeIdentificacaoDaEstrutura; |
| 76 | $numUnidadeReceptora = $unidadeReceptora->numeroDeIdentificacaoDaEstrutura; | 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 | // Validação dos dados do processo recebido | 80 | // Validação dos dados do processo recebido |
| @@ -260,13 +260,17 @@ class ReceberProcedimentoRN extends InfraRN | @@ -260,13 +260,17 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 260 | $arrHashsComponentesDigitais = array(); | 260 | $arrHashsComponentesDigitais = array(); |
| 261 | $arrObjDocumento = is_array($parObjProtocolo->documento) ? $parObjProtocolo->documento : array($parObjProtocolo->documento); | 261 | $arrObjDocumento = is_array($parObjProtocolo->documento) ? $parObjProtocolo->documento : array($parObjProtocolo->documento); |
| 262 | foreach($arrObjDocumento as $objDocumento){ | 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,23 +506,8 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 502 | $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; | 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 | $objAtividadeDTO = new AtividadeDTO(); | 511 | $objAtividadeDTO = new AtividadeDTO(); |
| 523 | $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); | 512 | $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); |
| 524 | $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); | 513 | $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); |
| @@ -535,68 +524,74 @@ class ReceberProcedimentoRN extends InfraRN | @@ -535,68 +524,74 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 535 | $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); | 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 | private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) { | 597 | private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) { |
| @@ -1625,15 +1620,13 @@ $objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtua | @@ -1625,15 +1620,13 @@ $objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtua | ||
| 1625 | $objAtividadeDTO2->setDthConclusao(null); | 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 | $objReabrirProcessoDTO = new ReabrirProcessoDTO(); | 1625 | $objReabrirProcessoDTO = new ReabrirProcessoDTO(); |
| 1632 | - $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); | ||
| 1633 | - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | 1626 | + $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); |
| 1634 | $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | 1627 | $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); |
| 1628 | + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1635 | $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); | 1629 | $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); |
| 1636 | - | ||
| 1637 | } | 1630 | } |
| 1638 | 1631 | ||
| 1639 | //$objPenAtividadeRN = new PenAtividadeRN(); | 1632 | //$objPenAtividadeRN = new PenAtividadeRN(); |