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 3  
4 4 //TODO: Implementar validação sobre tamanho do documento a ser recebido (Parâmetros SEI)
5 5  
6   -
7 6 class ReceberProcedimentoRN extends InfraRN
8 7 {
9 8 const STR_APENSACAO_PROCEDIMENTOS = 'Relacionamento representando a apensação de processos recebidos externamente';
... ... @@ -34,7 +33,6 @@ class ReceberProcedimentoRN extends InfraRN
34 33 return $arrObjPendencias;
35 34 }
36 35  
37   -
38 36 protected function receberProcedimentoControlado($parNumIdentificacaoTramite)
39 37 {
40 38 try {
... ... @@ -111,7 +109,6 @@ class ReceberProcedimentoRN extends InfraRN
111 109  
112 110 //Percorre os componentes que precisam ser recebidos
113 111 foreach($objTramite->componenteDigitalPendenteDeRecebimento as $key => $componentePendente){
114   -
115 112 if(!is_null($componentePendente)){
116 113 if(!$this->documentoJaRegistrado($strNumeroRegistro, $parNumIdentificacaoTramite, $componentePendente)){
117 114 $arrComponentesPendentesRecebimento[] = $componentePendente;
... ... @@ -208,13 +205,13 @@ class ReceberProcedimentoRN extends InfraRN
208 205 $strNomeDocumento = (array_key_exists($strHash, $arrStrNomeDocumento)) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]';
209 206 $objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado);
210 207  
211   - // @join_tec US008.09 (#23092)
  208 + // @join_tec US008.09 (#23092)
212 209 $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado());
213 210 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S'));
214 211 $this->gravarLogDebug($strMensagemRecebimento, 6);
215 212 }
216 213 }
217   - // @join_tec US008.10 (#23092)
  214 + // @join_tec US008.10 (#23092)
218 215 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S'));
219 216 }else{
220 217 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S'));
... ... @@ -238,7 +235,6 @@ class ReceberProcedimentoRN extends InfraRN
238 235 }
239 236 }
240 237  
241   -
242 238 private function substituirDestinoParaUnidadeReceptora($parObjMetadadosTramite)
243 239 {
244 240 if (isset($parObjMetadadosTramite->metadados->unidadeReceptora)) {
... ... @@ -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 252 $objPenUnidadeDTO = new PenUnidadeDTO();
258 253 $objPenUnidadeDTO->setNumIdUnidadeRH($parObjMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura);
259 254 $objPenUnidadeDTO->retNumIdUnidade();
... ... @@ -302,8 +297,8 @@ class ReceberProcedimentoRN extends InfraRN
302 297 *
303 298 * @return array[String]
304 299 */
305   - private function listarMetaDadosComponentesDigitais($objProtocolo){
306   -
  300 + private function listarMetaDadosComponentesDigitais($objProtocolo)
  301 + {
307 302 $arrMetadadoDocumento = array();
308 303 $objMapBD = new GenericoBD($this->getObjInfraIBanco());
309 304  
... ... @@ -373,11 +368,9 @@ class ReceberProcedimentoRN extends InfraRN
373 368 $numTamanhoMb = $objDocument->componenteDigital->tamanhoEmBytes / ( 1024 * 1024);
374 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 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 376 private function obterDocumentosProtocolo($parObjProtocolo)
... ... @@ -441,7 +434,6 @@ class ReceberProcedimentoRN extends InfraRN
441 434 return $objTramiteBD->contar($objTramiteDTO) > 0;
442 435 }
443 436  
444   -
445 437 private function documentoJaRegistrado($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrHashComponenteDigital)
446 438 {
447 439 //Verifica se componente digital já está registrado para o documento
... ... @@ -463,7 +455,6 @@ class ReceberProcedimentoRN extends InfraRN
463 455 return $objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0;
464 456 }
465 457  
466   -
467 458 private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrProtocolo = null)
468 459 {
469 460 $dblIdProcedimento = null;
... ... @@ -558,14 +549,13 @@ class ReceberProcedimentoRN extends InfraRN
558 549  
559 550 $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento);
560 551  
561   -
562 552 if($flgReabrir){
563 553 $objEntradaReabrirProcessoAPI = new EntradaReabrirProcessoAPI();
564 554 $objEntradaReabrirProcessoAPI->setIdProcedimento($parDblIdProcedimento);
565 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 559 if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) {
570 560 $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento);
571 561 }
... ... @@ -593,11 +583,10 @@ class ReceberProcedimentoRN extends InfraRN
593 583  
594 584 //$this->removerAndamentosProcedimento($objProcedimentoDTO);
595 585 return $objProcedimentoDTO;
596   -
597 586 }
598 587  
599   - private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) {
600   -
  588 + private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento)
  589 + {
601 590 $objUnidadeDTO = new PenUnidadeDTO();
602 591 $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura);
603 592 $objUnidadeDTO->setStrSinAtivo('S');
... ... @@ -627,8 +616,8 @@ class ReceberProcedimentoRN extends InfraRN
627 616 $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
628 617 }
629 618  
630   - private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo){
631   -
  619 + private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo)
  620 + {
632 621 if(!isset($objMetadadosProcedimento)){
633 622 throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.');
634 623 }
... ... @@ -670,6 +659,7 @@ class ReceberProcedimentoRN extends InfraRN
670 659  
671 660 $objProtocoloDTO->setStrProtocoloFormatado(utf8_decode($parObjProtocolo->protocolo));
672 661 $objProtocoloDTO->setDtaGeracao($this->parObjProtocoloEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
  662 +// $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
673 663 $objProtocoloDTO->setArrObjAnexoDTO(array());
674 664 $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array());
675 665 $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array());
... ... @@ -705,7 +695,7 @@ class ReceberProcedimentoRN extends InfraRN
705 695 $objProcedimentoDTO = new ProcedimentoDTO();
706 696 $objProcedimentoDTO->setDblIdProcedimento(null);
707 697 $objProcedimentoDTO->setObjProtocoloDTO($objProtocoloDTO);
708   - $objProcedimentoDTO->setDtaGeracaoProtocolo($this->parObjProtocoloEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
  698 + $objProcedimentoDTO->setDtaGeracaoProtocolo($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
709 699 $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado(utf8_decode($parObjProtocolo->protocolo));
710 700 $objProcedimentoDTO->setStrSinGerarPendencia('S');
711 701 $objProcedimentoDTO->setArrObjDocumentoDTO(array());
... ... @@ -726,7 +716,6 @@ class ReceberProcedimentoRN extends InfraRN
726 716 // $objProcedimentoDTO->getNumIdUsuarioGeradorProtocolo(),
727 717 // $objProcedimentoDTO->getNumIdUnidadeGeradoraProtocolo());
728 718  
729   -
730 719 //TODO:Adicionar demais informações do processo
731 720 //<protocoloAnterior>
732 721 //<historico>
... ... @@ -775,7 +764,8 @@ class ReceberProcedimentoRN extends InfraRN
775 764 $objProtocoloRN->alterarRN0203($objProtocoloDTO);
776 765 }
777 766  
778   - private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento){
  767 + private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento)
  768 + {
779 769 //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal)
780 770 $objProtocoloDTO = new ProtocoloDTO();
781 771 $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento);
... ... @@ -789,7 +779,6 @@ class ReceberProcedimentoRN extends InfraRN
789 779 $objProtocoloRN->alterarRN0203($objProtocoloDTO);
790 780 }
791 781  
792   -
793 782 private function removerAndamentosProcedimento($parObjProtocoloDTO)
794 783 {
795 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 825 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
837 826  
838 827 if(isset($objEstrutura->hierarquia)) {
839   -
840 828 $arrObjNivel = $objEstrutura->hierarquia->nivel;
841 829  
842 830 $nome = "";
... ... @@ -870,7 +858,6 @@ class ReceberProcedimentoRN extends InfraRN
870 858 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
871 859 }
872 860  
873   -
874 861 $objAtividadeDTO = new AtividadeDTO();
875 862 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
876 863 $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
... ... @@ -883,10 +870,8 @@ class ReceberProcedimentoRN extends InfraRN
883 870  
884 871 $objAtividadeRN = new AtividadeRN();
885 872 $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
886   -
887 873 }
888 874  
889   -
890 875 //TODO: Avaliar a necessidade de registrar os dados do remetente como participante do processo
891 876 private function atribuirRemetente(ProtocoloDTO $objProtocoloDTO, $objRemetente)
892 877 {
... ... @@ -999,7 +984,6 @@ class ReceberProcedimentoRN extends InfraRN
999 984 return $objUnidadeDTOEnvio;
1000 985 }
1001 986  
1002   -
1003 987 //TODO: Grande parte da regra de negócio se baseou em SEIRN:199 - incluirDocumento.
1004 988 //Avaliar a refatoração para impedir a duplicação de código
1005 989 private function atribuirDocumentos($objProcedimentoDTO, $parObjProtocolo, $objUnidadeDTO, $parObjMetadadosProcedimento)
... ... @@ -1012,15 +996,16 @@ class ReceberProcedimentoRN extends InfraRN
1012 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 1002 throw new InfraException('Lista de documentos não informada.');
1019 1003 }
1020 1004  
1021 1005 $strNumeroRegistro = $parObjMetadadosProcedimento->metadados->NRE;
1022 1006 //$numTramite = $parObjMetadadosProcedimento->metadados->IDT;
1023 1007 //Ordenação dos documentos conforme informado pelo remetente. Campo documento->ordem
  1008 +
1024 1009 usort($arrObjDocumentos, array("ReceberProcedimentoRN", "comparacaoOrdemDocumentos"));
1025 1010  
1026 1011 //Obter dados dos documentos já registrados no sistema
... ... @@ -1041,7 +1026,6 @@ class ReceberProcedimentoRN extends InfraRN
1041 1026 $arrObjDocumentoDTO = array();
1042 1027  
1043 1028 foreach($arrObjDocumentos as $objDocumento){
1044   -
1045 1029 // @join_tec US027 (#3498)
1046 1030 if(isset($objDocumento->retirado) && $objDocumento->retirado === true) {
1047 1031 //$strHashConteudo = ProcessoEletronicoRN::getHashFromMetaDados($objDocumento->componenteDigital->hash);
... ... @@ -1236,12 +1220,12 @@ class ReceberProcedimentoRN extends InfraRN
1236 1220  
1237 1221 $strConteudoCodificado = $objDocumentoDTO->getStrConteudo();
1238 1222 $objDocumentoDTO->setStrConteudo(null);
1239   - //$objDocumentoDTO->setStrSinFormulario('N');
  1223 + //$objDocumentoDTO->setStrSinFormulario('N');
1240 1224  
1241 1225 $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
1242 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 1229 $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital);
1246 1230 $objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO);
1247 1231  
... ... @@ -1277,8 +1261,8 @@ class ReceberProcedimentoRN extends InfraRN
1277 1261  
1278 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 1270 private function atribuirComponentesDigitais(DocumentoDTO $parObjDocumentoDTO, $parArrObjComponentesDigitais)
1287 1271 {
1288 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 1276 //TODO: Aplicar mesmas validações realizadas no momento do upload de um documento InfraPagina::processarUpload
1293 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 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 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 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 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 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 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 1415 $objSerieDTO = null;
1430 1416  
1431 1417 $objMapDTO = new PenRelTipoDocMapRecebidoDTO();
... ... @@ -1436,363 +1422,358 @@ private function obterUnidadeMapeada($numIdentificacaoDaEstrutura)
1436 1422 $objMapDTO = $objGenericoBD->consultar($objMapDTO);
1437 1423  
1438 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 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 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 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 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 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 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 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 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 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 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 1782 * @param object $parObjProtocolo
1802 1783 * @throws InfraException
1803 1784 */
1804   - public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo){
1805   -
  1785 + public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo)
  1786 + {
1806 1787 //Armazena o array de documentos
1807 1788 $arrDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo);
1808 1789  
... ... @@ -1829,8 +1810,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1829 1810 $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO);
1830 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 1850 $this->gravarLogDebug("Sincronizando o recebimento de processos concorrentes...", 4);
1872 1851 $objProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->bloquear($objProcedimentoAndamentoDTORet) ? isset($objProcedimentoAndamentoDTORet) : false;
1873 1852 $this->gravarLogDebug("Liberando processo concorrente de recebimento de processo ...", 4);
  1853 +
1874 1854 return $objProcedimentoAndamentoDTO;
1875 1855 }
1876 1856  
... ... @@ -1880,5 +1860,4 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1880 1860 $strLog = sprintf("[%s] [PROCESSAMENTO] %s %s", $strDataLog, str_repeat(" ", $numIdentacao * 4), $strMensagem);
1881 1861 InfraDebug::getInstance()->gravar($strLog);
1882 1862 }
1883   -
1884   -}
  1863 +}
1885 1864 \ No newline at end of file
... ...