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