Commit bb237619392e6c8a6f80f54735882d77ff8a1226

Authored by Guilherme Andrade Del Cantoni
2 parents 49a3f4f6 4f37bd46

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