Commit 435c787797685405d03b83a5e9d84e465c56fbd1

Authored by Josinaldo Júnior
1 parent e75c2fa0
Exists in feature-50

Finalizada identação do código e correção de erros que estavam impedindo o recebimento de processos

Showing 1 changed file with 407 additions and 428 deletions   Show diff stats
rn/ReceberProcedimentoRN.php
@@ -3,7 +3,6 @@ require_once dirname(__FILE__) . '/../../../SEI.php'; @@ -3,7 +3,6 @@ require_once dirname(__FILE__) . '/../../../SEI.php';
3 3
4 //TODO: Implementar validação sobre tamanho do documento a ser recebido (Parâmetros SEI) 4 //TODO: Implementar validação sobre tamanho do documento a ser recebido (Parâmetros SEI)
5 5
6 -  
7 class ReceberProcedimentoRN extends InfraRN 6 class ReceberProcedimentoRN extends InfraRN
8 { 7 {
9 const STR_APENSACAO_PROCEDIMENTOS = 'Relacionamento representando a apensação de processos recebidos externamente'; 8 const STR_APENSACAO_PROCEDIMENTOS = 'Relacionamento representando a apensação de processos recebidos externamente';
@@ -34,7 +33,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -34,7 +33,6 @@ class ReceberProcedimentoRN extends InfraRN
34 return $arrObjPendencias; 33 return $arrObjPendencias;
35 } 34 }
36 35
37 -  
38 protected function receberProcedimentoControlado($parNumIdentificacaoTramite) 36 protected function receberProcedimentoControlado($parNumIdentificacaoTramite)
39 { 37 {
40 try { 38 try {
@@ -111,7 +109,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -111,7 +109,6 @@ class ReceberProcedimentoRN extends InfraRN
111 109
112 //Percorre os componentes que precisam ser recebidos 110 //Percorre os componentes que precisam ser recebidos
113 foreach($objTramite->componenteDigitalPendenteDeRecebimento as $key => $componentePendente){ 111 foreach($objTramite->componenteDigitalPendenteDeRecebimento as $key => $componentePendente){
114 -  
115 if(!is_null($componentePendente)){ 112 if(!is_null($componentePendente)){
116 if(!$this->documentoJaRegistrado($strNumeroRegistro, $parNumIdentificacaoTramite, $componentePendente)){ 113 if(!$this->documentoJaRegistrado($strNumeroRegistro, $parNumIdentificacaoTramite, $componentePendente)){
117 $arrComponentesPendentesRecebimento[] = $componentePendente; 114 $arrComponentesPendentesRecebimento[] = $componentePendente;
@@ -208,13 +205,13 @@ class ReceberProcedimentoRN extends InfraRN @@ -208,13 +205,13 @@ class ReceberProcedimentoRN extends InfraRN
208 $strNomeDocumento = (array_key_exists($strHash, $arrStrNomeDocumento)) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; 205 $strNomeDocumento = (array_key_exists($strHash, $arrStrNomeDocumento)) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]';
209 $objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); 206 $objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado);
210 207
211 - // @join_tec US008.09 (#23092) 208 + // @join_tec US008.09 (#23092)
212 $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); 209 $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado());
213 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); 210 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S'));
214 $this->gravarLogDebug($strMensagemRecebimento, 6); 211 $this->gravarLogDebug($strMensagemRecebimento, 6);
215 } 212 }
216 } 213 }
217 - // @join_tec US008.10 (#23092) 214 + // @join_tec US008.10 (#23092)
218 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); 215 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S'));
219 }else{ 216 }else{
220 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); 217 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S'));
@@ -238,7 +235,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -238,7 +235,6 @@ class ReceberProcedimentoRN extends InfraRN
238 } 235 }
239 } 236 }
240 237
241 -  
242 private function substituirDestinoParaUnidadeReceptora($parObjMetadadosTramite) 238 private function substituirDestinoParaUnidadeReceptora($parObjMetadadosTramite)
243 { 239 {
244 if (isset($parObjMetadadosTramite->metadados->unidadeReceptora)) { 240 if (isset($parObjMetadadosTramite->metadados->unidadeReceptora)) {
@@ -251,9 +247,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -251,9 +247,8 @@ class ReceberProcedimentoRN extends InfraRN
251 } 247 }
252 } 248 }
253 249
254 -  
255 - public function fecharProcedimentoEmOutraUnidades(ProcedimentoDTO $objProcedimentoDTO, $parObjMetadadosProcedimento){  
256 - 250 + public function fecharProcedimentoEmOutraUnidades(ProcedimentoDTO $objProcedimentoDTO, $parObjMetadadosProcedimento)
  251 + {
257 $objPenUnidadeDTO = new PenUnidadeDTO(); 252 $objPenUnidadeDTO = new PenUnidadeDTO();
258 $objPenUnidadeDTO->setNumIdUnidadeRH($parObjMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura); 253 $objPenUnidadeDTO->setNumIdUnidadeRH($parObjMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura);
259 $objPenUnidadeDTO->retNumIdUnidade(); 254 $objPenUnidadeDTO->retNumIdUnidade();
@@ -302,8 +297,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -302,8 +297,8 @@ class ReceberProcedimentoRN extends InfraRN
302 * 297 *
303 * @return array[String] 298 * @return array[String]
304 */ 299 */
305 - private function listarMetaDadosComponentesDigitais($objProtocolo){  
306 - 300 + private function listarMetaDadosComponentesDigitais($objProtocolo)
  301 + {
307 $arrMetadadoDocumento = array(); 302 $arrMetadadoDocumento = array();
308 $objMapBD = new GenericoBD($this->getObjInfraIBanco()); 303 $objMapBD = new GenericoBD($this->getObjInfraIBanco());
309 304
@@ -373,11 +368,9 @@ class ReceberProcedimentoRN extends InfraRN @@ -373,11 +368,9 @@ class ReceberProcedimentoRN extends InfraRN
373 $numTamanhoMb = $objDocument->componenteDigital->tamanhoEmBytes / ( 1024 * 1024); 368 $numTamanhoMb = $objDocument->componenteDigital->tamanhoEmBytes / ( 1024 * 1024);
374 $this->objProcessoEletronicoRN->recusarTramite($parNumIdentificacaoTramite, 'Componente digital não pode ultrapassar '.round($numTamDocExterno, 2).'MBs, o tamanho do anexo é '.round($numTamanhoMb, 2).'MBs .', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); 369 $this->objProcessoEletronicoRN->recusarTramite($parNumIdentificacaoTramite, 'Componente digital não pode ultrapassar '.round($numTamDocExterno, 2).'MBs, o tamanho do anexo é '.round($numTamanhoMb, 2).'MBs .', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU);
375 throw new InfraException('Componente digital não pode ultrapassar '.round($numTamDocExterno, 2).'MBs, o tamanho do anexo é '.round($numTamanhoMb).'MBs'); 370 throw new InfraException('Componente digital não pode ultrapassar '.round($numTamDocExterno, 2).'MBs, o tamanho do anexo é '.round($numTamanhoMb).'MBs');
376 -  
377 } 371 }
378 } 372 }
379 } 373 }
380 -  
381 } 374 }
382 375
383 private function obterDocumentosProtocolo($parObjProtocolo) 376 private function obterDocumentosProtocolo($parObjProtocolo)
@@ -441,7 +434,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -441,7 +434,6 @@ class ReceberProcedimentoRN extends InfraRN
441 return $objTramiteBD->contar($objTramiteDTO) > 0; 434 return $objTramiteBD->contar($objTramiteDTO) > 0;
442 } 435 }
443 436
444 -  
445 private function documentoJaRegistrado($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrHashComponenteDigital) 437 private function documentoJaRegistrado($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrHashComponenteDigital)
446 { 438 {
447 //Verifica se componente digital já está registrado para o documento 439 //Verifica se componente digital já está registrado para o documento
@@ -463,7 +455,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -463,7 +455,6 @@ class ReceberProcedimentoRN extends InfraRN
463 return $objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0; 455 return $objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0;
464 } 456 }
465 457
466 -  
467 private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrProtocolo = null) 458 private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrProtocolo = null)
468 { 459 {
469 $dblIdProcedimento = null; 460 $dblIdProcedimento = null;
@@ -558,14 +549,13 @@ class ReceberProcedimentoRN extends InfraRN @@ -558,14 +549,13 @@ class ReceberProcedimentoRN extends InfraRN
558 549
559 $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); 550 $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento);
560 551
561 -  
562 if($flgReabrir){ 552 if($flgReabrir){
563 $objEntradaReabrirProcessoAPI = new EntradaReabrirProcessoAPI(); 553 $objEntradaReabrirProcessoAPI = new EntradaReabrirProcessoAPI();
564 $objEntradaReabrirProcessoAPI->setIdProcedimento($parDblIdProcedimento); 554 $objEntradaReabrirProcessoAPI->setIdProcedimento($parDblIdProcedimento);
565 $objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI); 555 $objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI);
566 } 556 }
567 557
568 - //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!) 558 + //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!)
569 if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) { 559 if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) {
570 $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento); 560 $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento);
571 } 561 }
@@ -593,11 +583,10 @@ class ReceberProcedimentoRN extends InfraRN @@ -593,11 +583,10 @@ class ReceberProcedimentoRN extends InfraRN
593 583
594 //$this->removerAndamentosProcedimento($objProcedimentoDTO); 584 //$this->removerAndamentosProcedimento($objProcedimentoDTO);
595 return $objProcedimentoDTO; 585 return $objProcedimentoDTO;
596 -  
597 } 586 }
598 587
599 - private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) {  
600 - 588 + private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento)
  589 + {
601 $objUnidadeDTO = new PenUnidadeDTO(); 590 $objUnidadeDTO = new PenUnidadeDTO();
602 $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); 591 $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura);
603 $objUnidadeDTO->setStrSinAtivo('S'); 592 $objUnidadeDTO->setStrSinAtivo('S');
@@ -627,8 +616,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -627,8 +616,8 @@ class ReceberProcedimentoRN extends InfraRN
627 $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); 616 $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
628 } 617 }
629 618
630 - private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo){  
631 - 619 + private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo)
  620 + {
632 if(!isset($objMetadadosProcedimento)){ 621 if(!isset($objMetadadosProcedimento)){
633 throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); 622 throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.');
634 } 623 }
@@ -670,6 +659,7 @@ class ReceberProcedimentoRN extends InfraRN @@ -670,6 +659,7 @@ class ReceberProcedimentoRN extends InfraRN
670 659
671 $objProtocoloDTO->setStrProtocoloFormatado(utf8_decode($parObjProtocolo->protocolo)); 660 $objProtocoloDTO->setStrProtocoloFormatado(utf8_decode($parObjProtocolo->protocolo));
672 $objProtocoloDTO->setDtaGeracao($this->parObjProtocoloEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); 661 $objProtocoloDTO->setDtaGeracao($this->parObjProtocoloEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
  662 +// $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
673 $objProtocoloDTO->setArrObjAnexoDTO(array()); 663 $objProtocoloDTO->setArrObjAnexoDTO(array());
674 $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array()); 664 $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array());
675 $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array()); 665 $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array());
@@ -705,7 +695,7 @@ class ReceberProcedimentoRN extends InfraRN @@ -705,7 +695,7 @@ class ReceberProcedimentoRN extends InfraRN
705 $objProcedimentoDTO = new ProcedimentoDTO(); 695 $objProcedimentoDTO = new ProcedimentoDTO();
706 $objProcedimentoDTO->setDblIdProcedimento(null); 696 $objProcedimentoDTO->setDblIdProcedimento(null);
707 $objProcedimentoDTO->setObjProtocoloDTO($objProtocoloDTO); 697 $objProcedimentoDTO->setObjProtocoloDTO($objProtocoloDTO);
708 - $objProcedimentoDTO->setDtaGeracaoProtocolo($this->parObjProtocoloEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); 698 + $objProcedimentoDTO->setDtaGeracaoProtocolo($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
709 $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado(utf8_decode($parObjProtocolo->protocolo)); 699 $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado(utf8_decode($parObjProtocolo->protocolo));
710 $objProcedimentoDTO->setStrSinGerarPendencia('S'); 700 $objProcedimentoDTO->setStrSinGerarPendencia('S');
711 $objProcedimentoDTO->setArrObjDocumentoDTO(array()); 701 $objProcedimentoDTO->setArrObjDocumentoDTO(array());
@@ -726,7 +716,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -726,7 +716,6 @@ class ReceberProcedimentoRN extends InfraRN
726 // $objProcedimentoDTO->getNumIdUsuarioGeradorProtocolo(), 716 // $objProcedimentoDTO->getNumIdUsuarioGeradorProtocolo(),
727 // $objProcedimentoDTO->getNumIdUnidadeGeradoraProtocolo()); 717 // $objProcedimentoDTO->getNumIdUnidadeGeradoraProtocolo());
728 718
729 -  
730 //TODO:Adicionar demais informações do processo 719 //TODO:Adicionar demais informações do processo
731 //<protocoloAnterior> 720 //<protocoloAnterior>
732 //<historico> 721 //<historico>
@@ -775,7 +764,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -775,7 +764,8 @@ class ReceberProcedimentoRN extends InfraRN
775 $objProtocoloRN->alterarRN0203($objProtocoloDTO); 764 $objProtocoloRN->alterarRN0203($objProtocoloDTO);
776 } 765 }
777 766
778 - private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento){ 767 + private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento)
  768 + {
779 //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal) 769 //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal)
780 $objProtocoloDTO = new ProtocoloDTO(); 770 $objProtocoloDTO = new ProtocoloDTO();
781 $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento); 771 $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento);
@@ -789,7 +779,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -789,7 +779,6 @@ class ReceberProcedimentoRN extends InfraRN
789 $objProtocoloRN->alterarRN0203($objProtocoloDTO); 779 $objProtocoloRN->alterarRN0203($objProtocoloDTO);
790 } 780 }
791 781
792 -  
793 private function removerAndamentosProcedimento($parObjProtocoloDTO) 782 private function removerAndamentosProcedimento($parObjProtocoloDTO)
794 { 783 {
795 //TODO: Remover apenas as atividades geradas pelo recebimento do processo, não as atividades geradas anteriormente 784 //TODO: Remover apenas as atividades geradas pelo recebimento do processo, não as atividades geradas anteriormente
@@ -836,7 +825,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -836,7 +825,6 @@ class ReceberProcedimentoRN extends InfraRN
836 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; 825 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
837 826
838 if(isset($objEstrutura->hierarquia)) { 827 if(isset($objEstrutura->hierarquia)) {
839 -  
840 $arrObjNivel = $objEstrutura->hierarquia->nivel; 828 $arrObjNivel = $objEstrutura->hierarquia->nivel;
841 829
842 $nome = ""; 830 $nome = "";
@@ -870,7 +858,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -870,7 +858,6 @@ class ReceberProcedimentoRN extends InfraRN
870 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; 858 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
871 } 859 }
872 860
873 -  
874 $objAtividadeDTO = new AtividadeDTO(); 861 $objAtividadeDTO = new AtividadeDTO();
875 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); 862 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
876 $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); 863 $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
@@ -883,10 +870,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -883,10 +870,8 @@ class ReceberProcedimentoRN extends InfraRN
883 870
884 $objAtividadeRN = new AtividadeRN(); 871 $objAtividadeRN = new AtividadeRN();
885 $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); 872 $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
886 -  
887 } 873 }
888 874
889 -  
890 //TODO: Avaliar a necessidade de registrar os dados do remetente como participante do processo 875 //TODO: Avaliar a necessidade de registrar os dados do remetente como participante do processo
891 private function atribuirRemetente(ProtocoloDTO $objProtocoloDTO, $objRemetente) 876 private function atribuirRemetente(ProtocoloDTO $objProtocoloDTO, $objRemetente)
892 { 877 {
@@ -999,7 +984,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -999,7 +984,6 @@ class ReceberProcedimentoRN extends InfraRN
999 return $objUnidadeDTOEnvio; 984 return $objUnidadeDTOEnvio;
1000 } 985 }
1001 986
1002 -  
1003 //TODO: Grande parte da regra de negócio se baseou em SEIRN:199 - incluirDocumento. 987 //TODO: Grande parte da regra de negócio se baseou em SEIRN:199 - incluirDocumento.
1004 //Avaliar a refatoração para impedir a duplicação de código 988 //Avaliar a refatoração para impedir a duplicação de código
1005 private function atribuirDocumentos($objProcedimentoDTO, $parObjProtocolo, $objUnidadeDTO, $parObjMetadadosProcedimento) 989 private function atribuirDocumentos($objProcedimentoDTO, $parObjProtocolo, $objUnidadeDTO, $parObjMetadadosProcedimento)
@@ -1012,15 +996,16 @@ class ReceberProcedimentoRN extends InfraRN @@ -1012,15 +996,16 @@ class ReceberProcedimentoRN extends InfraRN
1012 throw new InfraException('Unidade responsável pelo documento não informada.'); 996 throw new InfraException('Unidade responsável pelo documento não informada.');
1013 } 997 }
1014 998
1015 - $arrObjDocumento = $this->obterDocumentosProtocolo($objProtocolo); 999 + $arrObjDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo);
1016 1000
1017 - if(!isset($arrObjDocumento) || count($arrObjDocumento) == 0) { 1001 + if(!isset($arrObjDocumentos) || count($arrObjDocumentos) == 0) {
1018 throw new InfraException('Lista de documentos não informada.'); 1002 throw new InfraException('Lista de documentos não informada.');
1019 } 1003 }
1020 1004
1021 $strNumeroRegistro = $parObjMetadadosProcedimento->metadados->NRE; 1005 $strNumeroRegistro = $parObjMetadadosProcedimento->metadados->NRE;
1022 //$numTramite = $parObjMetadadosProcedimento->metadados->IDT; 1006 //$numTramite = $parObjMetadadosProcedimento->metadados->IDT;
1023 //Ordenação dos documentos conforme informado pelo remetente. Campo documento->ordem 1007 //Ordenação dos documentos conforme informado pelo remetente. Campo documento->ordem
  1008 +
1024 usort($arrObjDocumentos, array("ReceberProcedimentoRN", "comparacaoOrdemDocumentos")); 1009 usort($arrObjDocumentos, array("ReceberProcedimentoRN", "comparacaoOrdemDocumentos"));
1025 1010
1026 //Obter dados dos documentos já registrados no sistema 1011 //Obter dados dos documentos já registrados no sistema
@@ -1041,7 +1026,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -1041,7 +1026,6 @@ class ReceberProcedimentoRN extends InfraRN
1041 $arrObjDocumentoDTO = array(); 1026 $arrObjDocumentoDTO = array();
1042 1027
1043 foreach($arrObjDocumentos as $objDocumento){ 1028 foreach($arrObjDocumentos as $objDocumento){
1044 -  
1045 // @join_tec US027 (#3498) 1029 // @join_tec US027 (#3498)
1046 if(isset($objDocumento->retirado) && $objDocumento->retirado === true) { 1030 if(isset($objDocumento->retirado) && $objDocumento->retirado === true) {
1047 //$strHashConteudo = ProcessoEletronicoRN::getHashFromMetaDados($objDocumento->componenteDigital->hash); 1031 //$strHashConteudo = ProcessoEletronicoRN::getHashFromMetaDados($objDocumento->componenteDigital->hash);
@@ -1236,12 +1220,12 @@ class ReceberProcedimentoRN extends InfraRN @@ -1236,12 +1220,12 @@ class ReceberProcedimentoRN extends InfraRN
1236 1220
1237 $strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); 1221 $strConteudoCodificado = $objDocumentoDTO->getStrConteudo();
1238 $objDocumentoDTO->setStrConteudo(null); 1222 $objDocumentoDTO->setStrConteudo(null);
1239 - //$objDocumentoDTO->setStrSinFormulario('N'); 1223 + //$objDocumentoDTO->setStrSinFormulario('N');
1240 1224
1241 $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); 1225 $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
1242 $objDocumentoDTO->setStrSinBloqueado('S'); 1226 $objDocumentoDTO->setStrSinBloqueado('S');
1243 1227
1244 - //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto 1228 + //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto
1245 $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); 1229 $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital);
1246 $objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO); 1230 $objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO);
1247 1231
@@ -1277,8 +1261,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -1277,8 +1261,8 @@ class ReceberProcedimentoRN extends InfraRN
1277 1261
1278 $objProcedimentoDTO->setArrObjDocumentoDTO($arrObjDocumentoDTO); 1262 $objProcedimentoDTO->setArrObjDocumentoDTO($arrObjDocumentoDTO);
1279 1263
1280 - /* if($numIdUnidadeAtual != $numIdUnidadeGeradora){  
1281 - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $numIdUnidadeAtual); 1264 + /* if($numIdUnidadeAtual != $numIdUnidadeGeradora){
  1265 + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $numIdUnidadeAtual);
1282 } */ 1266 } */
1283 } 1267 }
1284 1268
@@ -1286,146 +1270,148 @@ class ReceberProcedimentoRN extends InfraRN @@ -1286,146 +1270,148 @@ class ReceberProcedimentoRN extends InfraRN
1286 private function atribuirComponentesDigitais(DocumentoDTO $parObjDocumentoDTO, $parArrObjComponentesDigitais) 1270 private function atribuirComponentesDigitais(DocumentoDTO $parObjDocumentoDTO, $parArrObjComponentesDigitais)
1287 { 1271 {
1288 if(!isset($parArrObjComponentesDigitais)) { 1272 if(!isset($parArrObjComponentesDigitais)) {
1289 - throw new InfraException('Componentes digitais do documento não informado.');  
1290 - } 1273 + throw new InfraException('Componentes digitais do documento não informado.');
  1274 + }
1291 1275
1292 //TODO: Aplicar mesmas validações realizadas no momento do upload de um documento InfraPagina::processarUpload 1276 //TODO: Aplicar mesmas validações realizadas no momento do upload de um documento InfraPagina::processarUpload
1293 //TODO: Avaliar a refatoração do código abaixo para impedir a duplicação de regras de negócios 1277 //TODO: Avaliar a refatoração do código abaixo para impedir a duplicação de regras de negócios
1294 1278
  1279 + $arrObjAnexoDTO = array();
  1280 + if($parObjDocumentoDTO->getObjProtocoloDTO()->isSetArrObjAnexoDTO()) {
  1281 + $arrObjAnexoDTO = $parObjDocumentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO();
  1282 + }
1295 1283
1296 - $arrObjAnexoDTO = array();  
1297 - if($parObjDocumentoDTO->getObjProtocoloDTO()->isSetArrObjAnexoDTO()) {  
1298 - $arrObjAnexoDTO = $parObjDocumentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO();  
1299 - }  
1300 -  
1301 - if (!is_array($parArrObjComponentesDigitais)) {  
1302 - $parArrObjComponentesDigitais = array($parArrObjComponentesDigitais);  
1303 - } 1284 + if (!is_array($parArrObjComponentesDigitais)) {
  1285 + $parArrObjComponentesDigitais = array($parArrObjComponentesDigitais);
  1286 + }
1304 1287
1305 //TODO: Tratar a ordem dos componentes digitais 1288 //TODO: Tratar a ordem dos componentes digitais
1306 //... 1289 //...
1307 1290
  1291 + $parObjDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO);
  1292 + }
1308 1293
1309 - $parObjDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO);  
1310 - }  
1311 -  
1312 - private function atribuirAssunto(ProtocoloDTO $objProtocoloDTO, $numIdAssunto)  
1313 - { 1294 + private function atribuirAssunto(ProtocoloDTO $objProtocoloDTO, $numIdAssunto)
  1295 + {
1314 //TODO: Removido. Serão utilizados os tipos de procedimento enviados atribuídos ao tipo de processo externo (PEN_TIPO_PROCESSO_EXTERNO) 1296 //TODO: Removido. Serão utilizados os tipos de procedimento enviados atribuídos ao tipo de processo externo (PEN_TIPO_PROCESSO_EXTERNO)
1315 - } 1297 + }
1316 1298
1317 - private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $objProcedimento)  
1318 - {  
1319 - if(isset($objProcedimento->processoApensado)) {  
1320 - if(!is_array($objProcedimento->processoApensado)){  
1321 - $objProcedimento->processoApensado = array($objProcedimento->processoApensado);  
1322 - } 1299 + private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $objProcedimento)
  1300 + {
  1301 + if(isset($objProcedimento->processoApensado)){
  1302 + if(!is_array($objProcedimento->processoApensado)){
  1303 + $objProcedimento->processoApensado = array($objProcedimento->processoApensado);
  1304 + }
1323 1305
1324 - $objProcedimentoDTOApensado = null;  
1325 - foreach ($objProcedimento->processoApensado as $processoApensado) {  
1326 - $objProcedimentoDTOApensado = $this->gerarProcedimento($objMetadadosProcedimento, $processoApensado);  
1327 - $this->relacionarProcedimentos($objProcedimentoDTOPrincipal, $objProcedimentoDTOApensado);  
1328 - $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado); 1306 + $objProcedimentoDTOApensado = null;
  1307 + foreach ($objProcedimento->processoApensado as $processoApensado){
  1308 + $objProcedimentoDTOApensado = $this->gerarProcedimento($objMetadadosProcedimento, $processoApensado);
  1309 + $this->relacionarProcedimentos($objProcedimentoDTOPrincipal, $objProcedimentoDTOApensado);
  1310 + $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado);
  1311 + }
1329 } 1312 }
1330 } 1313 }
1331 -}  
1332 1314
1333 1315
1334 -private function validarDadosDestinatario(InfraException $objInfraException, $objMetadadosProcedimento)  
1335 -{  
1336 - if(isset($objDestinatario)){  
1337 - throw new InfraException("Parâmetro $objDestinatario não informado.");  
1338 - } 1316 + private function validarDadosDestinatario(InfraException $objInfraException, $objMetadadosProcedimento)
  1317 + {
  1318 + $objDestinatario = $objMetadadosProcedimento->metadados->destinatario;
1339 1319
1340 - $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; 1320 + if(!isset($objDestinatario)){
  1321 + throw new InfraException('Parâmetro $objDestinatario não informado.');
  1322 + }
1341 1323
1342 - $objPenParametroRN = new PenParametroRN();  
1343 - $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM');  
1344 - $numIdRepositorioDestinoProcesso = $objDestinatario->identificacaoDoRepositorioDeEstruturas;  
1345 - $numeroDeIdentificacaoDaEstrutura = $objDestinatario->numeroDeIdentificacaoDaEstrutura; 1324 + $objPenParametroRN = new PenParametroRN();
  1325 + $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM');
  1326 + $numIdRepositorioDestinoProcesso = $objDestinatario->identificacaoDoRepositorioDeEstruturas;
  1327 + $numeroDeIdentificacaoDaEstrutura = $objDestinatario->numeroDeIdentificacaoDaEstrutura;
1346 1328
1347 //Validação do repositório de destino do processo 1329 //Validação do repositório de destino do processo
1348 - if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem){  
1349 - $objInfraException->adicionarValidacao("Identificação do repositório de origem do processo [$numIdRepositorioDestinoProcesso] não reconhecida.");  
1350 - } 1330 + if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem){
  1331 + $objInfraException->adicionarValidacao("Identificação do repositório de origem do processo [$numIdRepositorioDestinoProcesso] não reconhecida.");
  1332 + }
1351 1333
1352 //Validação do unidade de destino do processo 1334 //Validação do unidade de destino do processo
1353 - $objUnidadeDTO = new PenUnidadeDTO();  
1354 - $objUnidadeDTO->setNumIdUnidadeRH($numeroDeIdentificacaoDaEstrutura);  
1355 - $objUnidadeDTO->setStrSinAtivo('S');  
1356 - $objUnidadeDTO->retNumIdUnidade();  
1357 -  
1358 - $objUnidadeRN = new UnidadeRN();  
1359 - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); 1335 + $objUnidadeDTO = new PenUnidadeDTO();
  1336 + $objUnidadeDTO->setNumIdUnidadeRH($numeroDeIdentificacaoDaEstrutura);
  1337 + $objUnidadeDTO->setStrSinAtivo('S');
  1338 + $objUnidadeDTO->retNumIdUnidade();
1360 1339
1361 - if(!isset($objUnidadeDTO)){  
1362 - $objInfraException->adicionarValidacao("Unidade [Estrutura: {$numeroDeIdentificacaoDaEstrutura}] não configurada para receber processos externos no sistema de destino.");  
1363 - }  
1364 -} 1340 + $objUnidadeRN = new UnidadeRN();
  1341 + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);
1365 1342
1366 -private function validarDadosRemetente(InfraException $objInfraException, $objMetadadosProcedimento){ 1343 + if(!isset($objUnidadeDTO)){
  1344 + $objInfraException->adicionarValidacao("Unidade [Estrutura: {$numeroDeIdentificacaoDaEstrutura}] não configurada para receber processos externos no sistema de destino.");
  1345 + }
  1346 + }
1367 1347
1368 -} 1348 + private function validarDadosRemetente(InfraException $objInfraException, $objMetadadosProcedimento)
  1349 + {
1369 1350
1370 -private function validarDadosProcesso(InfraException $objInfraException, $objMetadadosProcedimento){ 1351 + }
1371 1352
1372 -} 1353 + private function validarDadosProcesso(InfraException $objInfraException, $objMetadadosProcedimento)
  1354 + {
1373 1355
1374 -private function validarDadosDocumentos(InfraException $objInfraException, $objMetadadosProcedimento){ 1356 + }
1375 1357
1376 -} 1358 + private function validarDadosDocumentos(InfraException $objInfraException, $objMetadadosProcedimento)
  1359 + {
1377 1360
1378 -private function obterNivelSigiloSEI($strNivelSigiloPEN) {  
1379 - switch ($strNivelSigiloPEN) { 1361 + }
1380 1362
1381 - case ProcessoEletronicoRN::$STA_SIGILO_PUBLICO: return ProtocoloRN::$NA_PUBLICO;  
1382 - break;  
1383 - case ProcessoEletronicoRN::$STA_SIGILO_RESTRITO: return ProtocoloRN::$NA_RESTRITO;  
1384 - break;  
1385 - case ProcessoEletronicoRN::$STA_SIGILO_SIGILOSO: return ProtocoloRN::$NA_SIGILOSO;  
1386 - break;  
1387 - default:  
1388 - break;  
1389 - }  
1390 -} 1363 + private function obterNivelSigiloSEI($strNivelSigiloPEN)
  1364 + {
  1365 + switch ($strNivelSigiloPEN) {
  1366 + case ProcessoEletronicoRN::$STA_SIGILO_PUBLICO: return ProtocoloRN::$NA_PUBLICO;
  1367 + break;
  1368 + case ProcessoEletronicoRN::$STA_SIGILO_RESTRITO: return ProtocoloRN::$NA_RESTRITO;
  1369 + break;
  1370 + case ProcessoEletronicoRN::$STA_SIGILO_SIGILOSO: return ProtocoloRN::$NA_SIGILOSO;
  1371 + break;
  1372 + default:
  1373 + break;
  1374 + }
  1375 + }
1391 1376
1392 -private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN) { 1377 + private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN)
  1378 + {
1393 //Atribuí a hipótese legal 1379 //Atribuí a hipótese legal
1394 - $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN();  
1395 - $objPenParametroRN = new PenParametroRN();  
1396 - $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); 1380 + $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN();
  1381 + $objPenParametroRN = new PenParametroRN();
  1382 + $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO');
1397 1383
1398 - $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($parNumIdHipoteseLegalPEN); 1384 + $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($parNumIdHipoteseLegalPEN);
1399 1385
1400 - if (empty($numIdHipoteseLegal)) {  
1401 - return $numIdHipoteseLegalPadrao;  
1402 - } else {  
1403 - return $numIdHipoteseLegal; 1386 + if (empty($numIdHipoteseLegal)) {
  1387 + return $numIdHipoteseLegalPadrao;
  1388 + } else {
  1389 + return $numIdHipoteseLegal;
  1390 + }
1404 } 1391 }
1405 -}  
1406 1392
1407 //TODO: Implementar o mapeamento entre as unidade do SEI e Barramento de Serviços (Secretaria de Saúde: 218794) 1393 //TODO: Implementar o mapeamento entre as unidade do SEI e Barramento de Serviços (Secretaria de Saúde: 218794)
1408 -private function obterUnidadeMapeada($numIdentificacaoDaEstrutura)  
1409 -{  
1410 - $objUnidadeDTO = new PenUnidadeDTO();  
1411 - $objUnidadeDTO->setNumIdUnidadeRH($numIdentificacaoDaEstrutura);  
1412 - $objUnidadeDTO->setStrSinAtivo('S');  
1413 - $objUnidadeDTO->retNumIdUnidade();  
1414 - $objUnidadeDTO->retNumIdOrgao();  
1415 - $objUnidadeDTO->retStrSigla();  
1416 - $objUnidadeDTO->retStrDescricao();  
1417 -  
1418 - $objUnidadeRN = new UnidadeRN();  
1419 - return $objUnidadeRN->consultarRN0125($objUnidadeDTO);  
1420 -}  
1421 -  
1422 -  
1423 - /**  
1424 - *  
1425 - * @return SerieDTO  
1426 - */  
1427 - private function obterSerieMapeada($numCodigoEspecie)  
1428 - { 1394 + private function obterUnidadeMapeada($numIdentificacaoDaEstrutura)
  1395 + {
  1396 + $objUnidadeDTO = new PenUnidadeDTO();
  1397 + $objUnidadeDTO->setNumIdUnidadeRH($numIdentificacaoDaEstrutura);
  1398 + $objUnidadeDTO->setStrSinAtivo('S');
  1399 + $objUnidadeDTO->retNumIdUnidade();
  1400 + $objUnidadeDTO->retNumIdOrgao();
  1401 + $objUnidadeDTO->retStrSigla();
  1402 + $objUnidadeDTO->retStrDescricao();
  1403 +
  1404 + $objUnidadeRN = new UnidadeRN();
  1405 + return $objUnidadeRN->consultarRN0125($objUnidadeDTO);
  1406 + }
  1407 +
  1408 +
  1409 + /**
  1410 + *
  1411 + * @return SerieDTO
  1412 + */
  1413 + private function obterSerieMapeada($numCodigoEspecie)
  1414 + {
1429 $objSerieDTO = null; 1415 $objSerieDTO = null;
1430 1416
1431 $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); 1417 $objMapDTO = new PenRelTipoDocMapRecebidoDTO();
@@ -1436,363 +1422,358 @@ private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) @@ -1436,363 +1422,358 @@ private function obterUnidadeMapeada($numIdentificacaoDaEstrutura)
1436 $objMapDTO = $objGenericoBD->consultar($objMapDTO); 1422 $objMapDTO = $objGenericoBD->consultar($objMapDTO);
1437 1423
1438 if(empty($objMapDTO)) { 1424 if(empty($objMapDTO)) {
1439 - $objMapDTO = new PenRelTipoDocMapRecebidoDTO();  
1440 - $objMapDTO->retNumIdSerie();  
1441 - $objMapDTO->setStrPadrao('S');  
1442 - $objMapDTO->setNumMaxRegistrosRetorno(1);  
1443 - $objMapDTO = $objGenericoBD->consultar($objMapDTO);  
1444 - }  
1445 -  
1446 - if(!empty($objMapDTO)) {  
1447 - $objSerieDTO = new SerieDTO();  
1448 - $objSerieDTO->retStrNome();  
1449 - $objSerieDTO->retNumIdSerie();  
1450 - $objSerieDTO->setNumIdSerie($objMapDTO->getNumIdSerie());  
1451 -  
1452 - $objSerieRN = new SerieRN();  
1453 - $objSerieDTO = $objSerieRN->consultarRN0644($objSerieDTO);  
1454 - }  
1455 -  
1456 - return $objSerieDTO;  
1457 - }  
1458 -  
1459 - private function relacionarProcedimentos($objProcedimentoDTO1, $objProcedimentoDTO2)  
1460 - {  
1461 - if(!isset($objProcedimentoDTO1) || !isset($objProcedimentoDTO1)) {  
1462 - throw new InfraException('Parâmetro $objProcedimentoDTO não informado.');  
1463 - }  
1464 -  
1465 - $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();  
1466 - $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($objProcedimentoDTO2->getDblIdProcedimento());  
1467 - $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO1->getDblIdProcedimento());  
1468 - $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_RELACIONADO);  
1469 - $objRelProtocoloProtocoloDTO->setStrMotivo(self::STR_APENSACAO_PROCEDIMENTOS);  
1470 -  
1471 - $objProcedimentoRN = new ProcedimentoRN();  
1472 - $objProcedimentoRN->relacionarProcedimentoRN1020($objRelProtocoloProtocoloDTO);  
1473 -} 1425 + $objMapDTO = new PenRelTipoDocMapRecebidoDTO();
  1426 + $objMapDTO->retNumIdSerie();
  1427 + $objMapDTO->setStrPadrao('S');
  1428 + $objMapDTO->setNumMaxRegistrosRetorno(1);
  1429 + $objMapDTO = $objGenericoBD->consultar($objMapDTO);
  1430 + }
1474 1431
1475 - //TODO: Método identico ao localizado na classe SeiRN:2214  
1476 - //Refatorar código para evitar problemas de manutenção  
1477 -private function prepararParticipantes($arrObjParticipanteDTO)  
1478 -{  
1479 - $objContatoRN = new ContatoRN();  
1480 - $objUsuarioRN = new UsuarioRN(); 1432 + if(!empty($objMapDTO)) {
  1433 + $objSerieDTO = new SerieDTO();
  1434 + $objSerieDTO->retStrNome();
  1435 + $objSerieDTO->retNumIdSerie();
  1436 + $objSerieDTO->setNumIdSerie($objMapDTO->getNumIdSerie());
1481 1437
1482 - foreach($arrObjParticipanteDTO as $objParticipanteDTO) { 1438 + $objSerieRN = new SerieRN();
  1439 + $objSerieDTO = $objSerieRN->consultarRN0644($objSerieDTO);
  1440 + }
1483 1441
1484 - $objContatoDTO = new ContatoDTO();  
1485 - $objContatoDTO->retNumIdContato(); 1442 + return $objSerieDTO;
  1443 + }
1486 1444
1487 - if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato()) && !InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) {  
1488 - $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato());  
1489 - $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); 1445 + private function relacionarProcedimentos($objProcedimentoDTO1, $objProcedimentoDTO2)
  1446 + {
  1447 + if(!isset($objProcedimentoDTO1) || !isset($objProcedimentoDTO1)) {
  1448 + throw new InfraException('Parâmetro $objProcedimentoDTO não informado.');
  1449 + }
  1450 +
  1451 + $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();
  1452 + $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($objProcedimentoDTO2->getDblIdProcedimento());
  1453 + $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO1->getDblIdProcedimento());
  1454 + $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_RELACIONADO);
  1455 + $objRelProtocoloProtocoloDTO->setStrMotivo(self::STR_APENSACAO_PROCEDIMENTOS);
1490 1456
1491 - } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato())) {  
1492 - $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); 1457 + $objProcedimentoRN = new ProcedimentoRN();
  1458 + $objProcedimentoRN->relacionarProcedimentoRN1020($objRelProtocoloProtocoloDTO);
  1459 + }
1493 1460
1494 - } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) {  
1495 - $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato());  
1496 - } else {  
1497 - if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_INTERESSADO) {  
1498 - throw new InfraException('Interessado vazio ou nulo.');  
1499 - }  
1500 - else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_REMETENTE) {  
1501 - throw new InfraException('Remetente vazio ou nulo.');  
1502 - }  
1503 - else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_DESTINATARIO) {  
1504 - throw new InfraException('Destinatário vazio ou nulo.');  
1505 - }  
1506 - } 1461 + //TODO: Método identico ao localizado na classe SeiRN:2214
  1462 + //Refatorar código para evitar problemas de manutenção
  1463 + private function prepararParticipantes($arrObjParticipanteDTO)
  1464 + {
  1465 + $objContatoRN = new ContatoRN();
  1466 + $objUsuarioRN = new UsuarioRN();
1507 1467
1508 - $arrObjContatoDTO = $objContatoRN->listarRN0325($objContatoDTO); 1468 + foreach($arrObjParticipanteDTO as $objParticipanteDTO) {
  1469 + $objContatoDTO = new ContatoDTO();
  1470 + $objContatoDTO->retNumIdContato();
1509 1471
1510 - if (count($arrObjContatoDTO)) { 1472 + if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato()) && !InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) {
  1473 + $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato());
  1474 + $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato());
1511 1475
1512 - $objContatoDTO = null; 1476 + } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato())) {
  1477 + $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato());
1513 1478
1514 - //preferencia para contatos que representam usuarios  
1515 - foreach($arrObjContatoDTO as $dto) { 1479 + } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) {
  1480 + $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato());
  1481 + } else {
  1482 + if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_INTERESSADO) {
  1483 + throw new InfraException('Interessado vazio ou nulo.');
  1484 + }
  1485 + else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_REMETENTE) {
  1486 + throw new InfraException('Remetente vazio ou nulo.');
  1487 + }
  1488 + else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_DESTINATARIO) {
  1489 + throw new InfraException('Destinatário vazio ou nulo.');
  1490 + }
  1491 + }
1516 1492
1517 - $objUsuarioDTO = new UsuarioDTO();  
1518 - $objUsuarioDTO->setBolExclusaoLogica(false);  
1519 - $objUsuarioDTO->setNumIdContato($dto->getNumIdContato()); 1493 + $arrObjContatoDTO = $objContatoRN->listarRN0325($objContatoDTO);
1520 1494
1521 - if ($objUsuarioRN->contarRN0492($objUsuarioDTO)) {  
1522 - $objContatoDTO = $dto;  
1523 - break;  
1524 - }  
1525 -} 1495 + if (count($arrObjContatoDTO)) {
1526 1496
1527 - //nao achou contato de usuario pega o primeiro retornado  
1528 -if ($objContatoDTO==null) {  
1529 - $objContatoDTO = $arrObjContatoDTO[0];  
1530 -}  
1531 -} else {  
1532 - $objContatoDTO = $objContatoRN->cadastrarContextoTemporario($objContatoDTO);  
1533 -} 1497 + $objContatoDTO = null;
1534 1498
1535 -$objParticipanteDTO->setNumIdContato($objContatoDTO->getNumIdContato());  
1536 -} 1499 + //preferencia para contatos que representam usuarios
  1500 + foreach($arrObjContatoDTO as $dto) {
1537 1501
1538 -return $arrObjParticipanteDTO;  
1539 -} 1502 + $objUsuarioDTO = new UsuarioDTO();
  1503 + $objUsuarioDTO->setBolExclusaoLogica(false);
  1504 + $objUsuarioDTO->setNumIdContato($dto->getNumIdContato());
1540 1505
1541 -private function registrarProcedimentoNaoVisualizado(ProcedimentoDTO $parObjProcedimentoDTO)  
1542 -{  
1543 - $objAtividadeDTOVisualizacao = new AtividadeDTO();  
1544 - $objAtividadeDTOVisualizacao->setDblIdProtocolo($parObjProcedimentoDTO->getDblIdProcedimento());  
1545 - $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO); 1506 + if ($objUsuarioRN->contarRN0492($objUsuarioDTO)) {
  1507 + $objContatoDTO = $dto;
  1508 + break;
  1509 + }
  1510 + }
1546 1511
1547 - $objAtividadeRN = new AtividadeRN();  
1548 - $objAtividadeRN->atualizarVisualizacao($objAtividadeDTOVisualizacao);  
1549 -} 1512 + //nao achou contato de usuario pega o primeiro retornado
  1513 + if ($objContatoDTO==null){
  1514 + $objContatoDTO = $arrObjContatoDTO[0];
  1515 + }
  1516 + } else {
  1517 + $objContatoDTO = $objContatoRN->cadastrarContextoTemporario($objContatoDTO);
  1518 + }
1550 1519
1551 -private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDTO, $retransmissao = false)  
1552 -{  
1553 - $objAtividadeRN = new PenAtividadeRN();  
1554 - $objInfraException = new InfraException(); 1520 + $objParticipanteDTO->setNumIdContato($objContatoDTO->getNumIdContato());
  1521 + }
1555 1522
1556 - if(!$parObjProcedimentoDTO->isSetArrObjUnidadeDTO() || count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) == 0) {  
1557 - $objInfraException->lancarValidacao('Unidade de destino do processo não informada.');  
1558 - } 1523 + return $arrObjParticipanteDTO;
  1524 + }
1559 1525
1560 - $arrObjUnidadeDTO = $parObjProcedimentoDTO->getArrObjUnidadeDTO(); 1526 + private function registrarProcedimentoNaoVisualizado(ProcedimentoDTO $parObjProcedimentoDTO)
  1527 + {
  1528 + $objAtividadeDTOVisualizacao = new AtividadeDTO();
  1529 + $objAtividadeDTOVisualizacao->setDblIdProtocolo($parObjProcedimentoDTO->getDblIdProcedimento());
  1530 + $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO);
1561 1531
1562 - if(count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) > 1) {  
1563 - $objInfraException->lancarValidacao('Não permitido a indicação de múltiplas unidades de destino para um processo recebido externamente.');  
1564 - } 1532 + $objAtividadeRN = new AtividadeRN();
  1533 + $objAtividadeRN->atualizarVisualizacao($objAtividadeDTOVisualizacao);
  1534 + }
1565 1535
1566 - $arrObjUnidadeDTO = array_values($parObjProcedimentoDTO->getArrObjUnidadeDTO());  
1567 - $objUnidadeDTO = $arrObjUnidadeDTO[0]; 1536 + private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDTO, $retransmissao = false)
  1537 + {
  1538 + $objAtividadeRN = new PenAtividadeRN();
  1539 + $objInfraException = new InfraException();
1568 1540
1569 - $objProcedimentoDTO = new ProcedimentoDTO();  
1570 - $objProcedimentoDTO->retDblIdProcedimento();  
1571 - $objProcedimentoDTO->retNumIdTipoProcedimento();  
1572 - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();  
1573 - $objProcedimentoDTO->retNumIdTipoProcedimento();  
1574 - $objProcedimentoDTO->retStrNomeTipoProcedimento();  
1575 - $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo();  
1576 -// $objProcedimentoDTO->retStrStaEstadoProtocolo();  
1577 - $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado()); 1541 + if(!$parObjProcedimentoDTO->isSetArrObjUnidadeDTO() || count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) == 0) {
  1542 + $objInfraException->lancarValidacao('Unidade de destino do processo não informada.');
  1543 + }
1578 1544
1579 - $objProcedimentoRN = new ProcedimentoRN();  
1580 - $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); 1545 + $arrObjUnidadeDTO = $parObjProcedimentoDTO->getArrObjUnidadeDTO();
1581 1546
1582 - if ($objProcedimentoDTO == null || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_SIGILOSO) {  
1583 - $objInfraException->lancarValidacao('Processo ['.$parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'] não encontrado.');  
1584 - } 1547 + if(count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) > 1) {
  1548 + $objInfraException->lancarValidacao('Não permitido a indicação de múltiplas unidades de destino para um processo recebido externamente.');
  1549 + }
1585 1550
1586 - if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) {  
1587 - $objAcessoDTO = new AcessoDTO();  
1588 - $objAcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());  
1589 - $objAcessoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); 1551 + $arrObjUnidadeDTO = array_values($parObjProcedimentoDTO->getArrObjUnidadeDTO());
  1552 + $objUnidadeDTO = $arrObjUnidadeDTO[0];
1590 1553
1591 - $objAcessoRN = new AcessoRN();  
1592 - if ($objAcessoRN->contar($objAcessoDTO)==0) {  
1593 - // AVALIAR $objInfraException->adicionarValidacao('Unidade ['.$objUnidadeDTO->getStrSigla().'] não possui acesso ao processo ['.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'].');  
1594 - }  
1595 - } 1554 + $objProcedimentoDTO = new ProcedimentoDTO();
  1555 + $objProcedimentoDTO->retDblIdProcedimento();
  1556 + $objProcedimentoDTO->retNumIdTipoProcedimento();
  1557 + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();
  1558 + $objProcedimentoDTO->retNumIdTipoProcedimento();
  1559 + $objProcedimentoDTO->retStrNomeTipoProcedimento();
  1560 + $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo();
  1561 + // $objProcedimentoDTO->retStrStaEstadoProtocolo();
  1562 + $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado());
1596 1563
1597 - $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO();  
1598 - $objPesquisaPendenciaDTO->setDblIdProtocolo(array($objProcedimentoDTO->getDblIdProcedimento()));  
1599 - $objPesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());  
1600 - $objPesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); 1564 + $objProcedimentoRN = new ProcedimentoRN();
  1565 + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
1601 1566
1602 - if($retransmissao){  
1603 - $objAtividadeRN->setStatusPesquisa(false); 1567 + if ($objProcedimentoDTO == null || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_SIGILOSO) {
  1568 + $objInfraException->lancarValidacao('Processo ['.$parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'] não encontrado.');
  1569 + }
1604 1570
1605 -} 1571 + if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) {
  1572 + $objAcessoDTO = new AcessoDTO();
  1573 + $objAcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
  1574 + $objAcessoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade());
1606 1575
1607 -$objAtividadeDTO2 = new AtividadeDTO();  
1608 -$objAtividadeDTO2->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());  
1609 -$objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
1610 -$objAtividadeDTO2->setDthConclusao(null); 1576 + $objAcessoRN = new AcessoRN();
  1577 + if ($objAcessoRN->contar($objAcessoDTO)==0) {
  1578 + // AVALIAR $objInfraException->adicionarValidacao('Unidade ['.$objUnidadeDTO->getStrSigla().'] não possui acesso ao processo ['.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'].');
  1579 + }
  1580 + }
1611 1581
  1582 + $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO();
  1583 + $objPesquisaPendenciaDTO->setDblIdProtocolo(array($objProcedimentoDTO->getDblIdProcedimento()));
  1584 + $objPesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
  1585 + $objPesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
1612 1586
1613 -if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) { 1587 + if($retransmissao){
  1588 + $objAtividadeRN->setStatusPesquisa(false);
  1589 + }
1614 1590
1615 - //reabertura automática  
1616 - $objReabrirProcessoDTO = new ReabrirProcessoDTO();  
1617 - $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo());  
1618 - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
1619 - $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());  
1620 - $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); 1591 + $objAtividadeDTO2 = new AtividadeDTO();
  1592 + $objAtividadeDTO2->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
  1593 + $objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  1594 + $objAtividadeDTO2->setDthConclusao(null);
1621 1595
1622 -} 1596 +
  1597 + if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) {
  1598 + //reabertura automática
  1599 + $objReabrirProcessoDTO = new ReabrirProcessoDTO();
  1600 + $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo());
  1601 + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  1602 + $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
  1603 + $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO);
  1604 + }
1623 1605
1624 //$objPenAtividadeRN = new PenAtividadeRN(); 1606 //$objPenAtividadeRN = new PenAtividadeRN();
1625 -$arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO); 1607 + $arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO);
1626 1608
1627 -$objInfraException->lancarValidacoes(); 1609 + $objInfraException->lancarValidacoes();
1628 1610
1629 1611
1630 -$objEnviarProcessoDTO = new EnviarProcessoDTO();  
1631 -$objEnviarProcessoDTO->setArrAtividadesOrigem($arrObjProcedimentoDTO[0]->getArrObjAtividadeDTO()); 1612 + $objEnviarProcessoDTO = new EnviarProcessoDTO();
  1613 + $objEnviarProcessoDTO->setArrAtividadesOrigem($arrObjProcedimentoDTO[0]->getArrObjAtividadeDTO());
1632 1614
1633 -$objAtividadeDTO = new AtividadeDTO();  
1634 -$objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());  
1635 -$objAtividadeDTO->setNumIdUsuario(null);  
1636 -$objAtividadeDTO->setNumIdUsuarioOrigem(SessaoSEI::getInstance()->getNumIdUsuario());  
1637 -$objAtividadeDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade());  
1638 -$objAtividadeDTO->setNumIdUnidadeOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
1639 -$objEnviarProcessoDTO->setArrAtividades(array($objAtividadeDTO)); 1615 + $objAtividadeDTO = new AtividadeDTO();
  1616 + $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
  1617 + $objAtividadeDTO->setNumIdUsuario(null);
  1618 + $objAtividadeDTO->setNumIdUsuarioOrigem(SessaoSEI::getInstance()->getNumIdUsuario());
  1619 + $objAtividadeDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade());
  1620 + $objAtividadeDTO->setNumIdUnidadeOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  1621 + $objEnviarProcessoDTO->setArrAtividades(array($objAtividadeDTO));
1640 1622
1641 -$objPenParametroRN = new PenParametroRN(); 1623 + $objPenParametroRN = new PenParametroRN();
1642 1624
1643 -$objEnviarProcessoDTO->setStrSinManterAberto('N');  
1644 -$strEnviaEmailNotificacao = $objPenParametroRN->getParametro('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO');  
1645 -$objEnviarProcessoDTO->setStrSinEnviarEmailNotificacao($strEnviaEmailNotificacao);  
1646 -$objEnviarProcessoDTO->setStrSinRemoverAnotacoes('S');  
1647 -$objEnviarProcessoDTO->setDtaPrazo(null);  
1648 -$objEnviarProcessoDTO->setNumDias(null);  
1649 -$objEnviarProcessoDTO->setStrSinDiasUteis('N'); 1625 + $objEnviarProcessoDTO->setStrSinManterAberto('N');
  1626 + $strEnviaEmailNotificacao = $objPenParametroRN->getParametro('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO');
  1627 + $objEnviarProcessoDTO->setStrSinEnviarEmailNotificacao($strEnviaEmailNotificacao);
  1628 + $objEnviarProcessoDTO->setStrSinRemoverAnotacoes('S');
  1629 + $objEnviarProcessoDTO->setDtaPrazo(null);
  1630 + $objEnviarProcessoDTO->setNumDias(null);
  1631 + $objEnviarProcessoDTO->setStrSinDiasUteis('N');
1650 1632
1651 -$objAtividadeRN->enviarRN0023($objEnviarProcessoDTO); 1633 + $objAtividadeRN->enviarRN0023($objEnviarProcessoDTO);
  1634 + }
1652 1635
1653 -} 1636 + /* Essa é a função estática de comparação */
  1637 + static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2)
  1638 + {
  1639 + $numOrdemDocumento1 = strtolower($parDocumento1->ordem);
  1640 + $numOrdemDocumento2 = strtolower($parDocumento2->ordem);
1654 1641
1655 -/* Essa é a função estática de comparação */  
1656 -static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2)  
1657 -{  
1658 - $numOrdemDocumento1 = strtolower($parDocumento1->ordem);  
1659 - $numOrdemDocumento2 = strtolower($parDocumento2->ordem);  
1660 - return $numOrdemDocumento1 - $numOrdemDocumento2;  
1661 -} 1642 + return $numOrdemDocumento1 - $numOrdemDocumento2;
  1643 + }
1662 1644
1663 1645
1664 -public function receberTramitesRecusados($parNumIdentificacaoTramite)  
1665 -{  
1666 - try {  
1667 - if (empty($parNumIdentificacaoTramite)) {  
1668 - throw new InfraException('Parâmetro $parNumIdentificacaoTramite não informado.');  
1669 - } 1646 + public function receberTramitesRecusados($parNumIdentificacaoTramite)
  1647 + {
  1648 + try {
  1649 + if (empty($parNumIdentificacaoTramite)) {
  1650 + throw new InfraException('Parâmetro $parNumIdentificacaoTramite não informado.');
  1651 + }
1670 1652
1671 //Busca os dados do trâmite no barramento 1653 //Busca os dados do trâmite no barramento
1672 - $tramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); 1654 + $tramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite);
1673 1655
1674 - if(!isset($tramite[0])){  
1675 - throw new InfraException("Não foi encontrado no PEN o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa");  
1676 - } 1656 + if(!isset($tramite[0])){
  1657 + throw new InfraException("Não foi encontrado no PEN o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa");
  1658 + }
1677 1659
1678 - $tramite = $tramite[0]; 1660 + $tramite = $tramite[0];
1679 1661
1680 - $objTramiteDTO = new TramiteDTO();  
1681 - $objTramiteDTO->setNumIdTramite($parNumIdentificacaoTramite);  
1682 - $objTramiteDTO->retNumIdUnidade(); 1662 + $objTramiteDTO = new TramiteDTO();
  1663 + $objTramiteDTO->setNumIdTramite($parNumIdentificacaoTramite);
  1664 + $objTramiteDTO->retNumIdUnidade();
1683 1665
1684 - $objTramiteBD = new TramiteBD(BancoSEI::getInstance());  
1685 - $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); 1666 + $objTramiteBD = new TramiteBD(BancoSEI::getInstance());
  1667 + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO);
1686 1668
1687 - if(!isset($objTramiteDTO)){  
1688 - throw new InfraException("Não foi encontrado no sistema o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa");  
1689 - } 1669 + if(!isset($objTramiteDTO)){
  1670 + throw new InfraException("Não foi encontrado no sistema o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa");
  1671 + }
1690 1672
1691 - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); 1673 + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade());
1692 1674
1693 //Busca os dados do procedimento 1675 //Busca os dados do procedimento
1694 - $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2);  
1695 - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO();  
1696 - $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE);  
1697 - $objProcessoEletronicoDTO->retDblIdProcedimento();  
1698 - $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco());  
1699 - $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); 1676 + $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2);
  1677 + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO();
  1678 + $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE);
  1679 + $objProcessoEletronicoDTO->retDblIdProcedimento();
  1680 + $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco());
  1681 + $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO);
1700 1682
1701 //Busca a última atividade de trâmite externo 1683 //Busca a última atividade de trâmite externo
1702 - $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2);  
1703 - $objAtividadeDTO = new AtividadeDTO();  
1704 - $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());  
1705 - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO));  
1706 - $objAtividadeDTO->setNumMaxRegistrosRetorno(1);  
1707 - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC);  
1708 - $objAtividadeDTO->retNumIdAtividade();  
1709 - $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco());  
1710 - $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO); 1684 + $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2);
  1685 + $objAtividadeDTO = new AtividadeDTO();
  1686 + $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());
  1687 + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO));
  1688 + $objAtividadeDTO->setNumMaxRegistrosRetorno(1);
  1689 + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC);
  1690 + $objAtividadeDTO->retNumIdAtividade();
  1691 + $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco());
  1692 + $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO);
1711 1693
1712 //Busca a unidade de destino 1694 //Busca a unidade de destino
1713 - $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2);  
1714 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
1715 - $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade());  
1716 - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');  
1717 - $objAtributoAndamentoDTO->retStrValor();  
1718 - $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco());  
1719 - $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO); 1695 + $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2);
  1696 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  1697 + $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade());
  1698 + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');
  1699 + $objAtributoAndamentoDTO->retStrValor();
  1700 + $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco());
  1701 + $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO);
1720 1702
1721 //Monta o DTO de receber tramite recusado 1703 //Monta o DTO de receber tramite recusado
1722 - $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2);  
1723 - $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO();  
1724 - $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite);  
1725 - $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());  
1726 - $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null);  
1727 - $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO));  
1728 - $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa));  
1729 - $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor()); 1704 + $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2);
  1705 + $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO();
  1706 + $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite);
  1707 + $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());
  1708 + $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null);
  1709 + $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO));
  1710 + $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa));
  1711 + $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor());
1730 1712
1731 //Faz o tratamento do processo e do trâmite recusado 1713 //Faz o tratamento do processo e do trâmite recusado
1732 - $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2);  
1733 - $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO);  
1734 -  
1735 - } catch (Exception $e) {  
1736 - $mensagemErro = InfraException::inspecionar($e);  
1737 - $this->gravarLogDebug($mensagemErro);  
1738 - LogSEI::getInstance()->gravar($mensagemErro);  
1739 - throw $e; 1714 + $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2);
  1715 + $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO);
  1716 +
  1717 + } catch (Exception $e) {
  1718 + $mensagemErro = InfraException::inspecionar($e);
  1719 + $this->gravarLogDebug($mensagemErro);
  1720 + LogSEI::getInstance()->gravar($mensagemErro);
  1721 + throw $e;
  1722 + }
1740 } 1723 }
1741 -}  
1742 1724
1743 -protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO)  
1744 -{ 1725 + protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO)
  1726 + {
1745 //Realiza o desbloqueio do processo 1727 //Realiza o desbloqueio do processo
1746 - $this->gravarLogDebug("Realizando o desbloqueio do processo", 4);  
1747 - $objProtocoloDTO = new ProtocoloDTO();  
1748 - $objProtocoloDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo());  
1749 - $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO);  
1750 - $objProtocoloRN = new ProtocoloRN();  
1751 - if($objProtocoloRN->contarRN0667($objProtocoloDTO) != 0) {  
1752 - $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI();  
1753 - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($objReceberTramiteRecusadoDTO->getNumIdProtocolo());  
1754 - $objSeiRN = new SeiRN();  
1755 - $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI);  
1756 - } else {  
1757 - $this->gravarLogDebug("Processo " . $objReceberTramiteRecusadoDTO->getNumIdProtocolo() . " já se encontra desbloqueado!", 6);  
1758 - } 1728 + $this->gravarLogDebug("Realizando o desbloqueio do processo", 4);
  1729 + $objProtocoloDTO = new ProtocoloDTO();
  1730 + $objProtocoloDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo());
  1731 + $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO);
  1732 + $objProtocoloRN = new ProtocoloRN();
  1733 + if($objProtocoloRN->contarRN0667($objProtocoloDTO) != 0) {
  1734 + $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI();
  1735 + $objEntradaDesbloquearProcessoAPI->setIdProcedimento($objReceberTramiteRecusadoDTO->getNumIdProtocolo());
  1736 + $objSeiRN = new SeiRN();
  1737 + $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI);
  1738 + } else {
  1739 + $this->gravarLogDebug("Processo " . $objReceberTramiteRecusadoDTO->getNumIdProtocolo() . " já se encontra desbloqueado!", 6);
  1740 + }
1759 1741
1760 //Adiciona um andamento para o trâmite recusado 1742 //Adiciona um andamento para o trâmite recusado
1761 - $this->gravarLogDebug("Adicionando andamento para registro da recusa do trâmite", 4);  
1762 - $arrObjAtributoAndamentoDTO = array();  
1763 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
1764 - $objAtributoAndamentoDTO->setStrNome('MOTIVO');  
1765 - $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrMotivoRecusa());  
1766 - $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem());  
1767 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;  
1768 -  
1769 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
1770 - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');  
1771 - $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrNomeUnidadeDestino());  
1772 - $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem());  
1773 - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;  
1774 -  
1775 - $objAtividadeDTO = new AtividadeDTO();  
1776 - $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo());  
1777 - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
1778 - $objAtividadeDTO->setNumIdTarefa($objReceberTramiteRecusadoDTO->getNumIdTarefa());  
1779 - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);  
1780 -  
1781 - $objAtividadeRN = new AtividadeRN();  
1782 - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); 1743 + $this->gravarLogDebug("Adicionando andamento para registro da recusa do trâmite", 4);
  1744 + $arrObjAtributoAndamentoDTO = array();
  1745 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  1746 + $objAtributoAndamentoDTO->setStrNome('MOTIVO');
  1747 + $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrMotivoRecusa());
  1748 + $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem());
  1749 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
1783 1750
1784 - //Sinaliza na PenProtocolo que o processo obteve recusa  
1785 - $this->gravarLogDebug("Atualizando protocolo sobre obtenção da ciência de recusa", 4);  
1786 - $objProtocolo = new PenProtocoloDTO();  
1787 - $objProtocolo->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo());  
1788 - $objProtocolo->setStrSinObteveRecusa('S');  
1789 - $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco());  
1790 - $objProtocoloBD->alterar($objProtocolo); 1751 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  1752 + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');
  1753 + $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrNomeUnidadeDestino());
  1754 + $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem());
  1755 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
1791 1756
1792 - $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $objReceberTramiteRecusadoDTO->getNumIdTramite(), 4);  
1793 - $this->objProcessoEletronicoRN->cienciaRecusa($objReceberTramiteRecusadoDTO->getNumIdTramite());  
1794 -} 1757 + $objAtividadeDTO = new AtividadeDTO();
  1758 + $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo());
  1759 + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  1760 + $objAtividadeDTO->setNumIdTarefa($objReceberTramiteRecusadoDTO->getNumIdTarefa());
  1761 + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);
1795 1762
  1763 + $objAtividadeRN = new AtividadeRN();
  1764 + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
  1765 +
  1766 + //Sinaliza na PenProtocolo que o processo obteve recusa
  1767 + $this->gravarLogDebug("Atualizando protocolo sobre obtenção da ciência de recusa", 4);
  1768 + $objProtocolo = new PenProtocoloDTO();
  1769 + $objProtocolo->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo());
  1770 + $objProtocolo->setStrSinObteveRecusa('S');
  1771 + $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco());
  1772 + $objProtocoloBD->alterar($objProtocolo);
  1773 +
  1774 + $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $objReceberTramiteRecusadoDTO->getNumIdTramite(), 4);
  1775 + $this->objProcessoEletronicoRN->cienciaRecusa($objReceberTramiteRecusadoDTO->getNumIdTramite());
  1776 + }
1796 1777
1797 /** 1778 /**
1798 * Método que realiza a validação da extensão dos componentes digitais a serem recebidos 1779 * Método que realiza a validação da extensão dos componentes digitais a serem recebidos
@@ -1801,8 +1782,8 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad @@ -1801,8 +1782,8 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1801 * @param object $parObjProtocolo 1782 * @param object $parObjProtocolo
1802 * @throws InfraException 1783 * @throws InfraException
1803 */ 1784 */
1804 - public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo){  
1805 - 1785 + public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo)
  1786 + {
1806 //Armazena o array de documentos 1787 //Armazena o array de documentos
1807 $arrDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo); 1788 $arrDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo);
1808 1789
@@ -1829,8 +1810,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad @@ -1829,8 +1810,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1829 $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO); 1810 $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO);
1830 throw new InfraException("Processo recusado devido a existência de documento em formato {$extDocumento} não permitido pelo sistema. "); 1811 throw new InfraException("Processo recusado devido a existência de documento em formato {$extDocumento} não permitido pelo sistema. ");
1831 } 1812 }
1832 -  
1833 -  
1834 } 1813 }
1835 } 1814 }
1836 1815
@@ -1871,6 +1850,7 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad @@ -1871,6 +1850,7 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1871 $this->gravarLogDebug("Sincronizando o recebimento de processos concorrentes...", 4); 1850 $this->gravarLogDebug("Sincronizando o recebimento de processos concorrentes...", 4);
1872 $objProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->bloquear($objProcedimentoAndamentoDTORet) ? isset($objProcedimentoAndamentoDTORet) : false; 1851 $objProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->bloquear($objProcedimentoAndamentoDTORet) ? isset($objProcedimentoAndamentoDTORet) : false;
1873 $this->gravarLogDebug("Liberando processo concorrente de recebimento de processo ...", 4); 1852 $this->gravarLogDebug("Liberando processo concorrente de recebimento de processo ...", 4);
  1853 +
1874 return $objProcedimentoAndamentoDTO; 1854 return $objProcedimentoAndamentoDTO;
1875 } 1855 }
1876 1856
@@ -1880,5 +1860,4 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad @@ -1880,5 +1860,4 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1880 $strLog = sprintf("[%s] [PROCESSAMENTO] %s %s", $strDataLog, str_repeat(" ", $numIdentacao * 4), $strMensagem); 1860 $strLog = sprintf("[%s] [PROCESSAMENTO] %s %s", $strDataLog, str_repeat(" ", $numIdentacao * 4), $strMensagem);
1881 InfraDebug::getInstance()->gravar($strLog); 1861 InfraDebug::getInstance()->gravar($strLog);
1882 } 1862 }
1883 -  
1884 -} 1863 +}
1885 \ No newline at end of file 1864 \ No newline at end of file