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