Commit cd67ddcb1649209e2eb22b1d9d7639f45a361110

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

Implementação de recebimento de documentos avulsos para homologação

pen_procedimento_estado.php
@@ -208,10 +208,13 @@ try { @@ -208,10 +208,13 @@ try {
208 208
209 $arrAgruparProcedimentoAndamentoDTO = array(); 209 $arrAgruparProcedimentoAndamentoDTO = array();
210 foreach($arrObjProcedimentoAndamentoDTO as &$objProcedimentoAndamentoDTO){ 210 foreach($arrObjProcedimentoAndamentoDTO as &$objProcedimentoAndamentoDTO){
  211 +// print_r($objProcedimentoAndamentoDTO->getNumTarefa()); die;
211 if(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) == $objProcedimentoAndamentoDTO->getNumTarefa()) 212 if(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) == $objProcedimentoAndamentoDTO->getNumTarefa())
212 $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaDestino(); 213 $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaDestino();
213 elseif (ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) == $objProcedimentoAndamentoDTO->getNumTarefa()) 214 elseif (ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) == $objProcedimentoAndamentoDTO->getNumTarefa())
214 $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaOrigem(); 215 $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaOrigem();
  216 + elseif (ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO) == $objProcedimentoAndamentoDTO->getNumTarefa())
  217 + $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaOrigem();
215 218
216 $key = $objProcedimentoAndamentoDTO->getDblIdTramite() . '-' . $numIdEstrutura . '-' . $objProcedimentoAndamentoDTO->getNumTarefa(); 219 $key = $objProcedimentoAndamentoDTO->getDblIdTramite() . '-' . $numIdEstrutura . '-' . $objProcedimentoAndamentoDTO->getNumTarefa();
217 $arrAgruparProcedimentoAndamentoDTO[$key][] = $objProcedimentoAndamentoDTO; 220 $arrAgruparProcedimentoAndamentoDTO[$key][] = $objProcedimentoAndamentoDTO;
rn/ExpedirProcedimentoRN.php
@@ -2178,7 +2178,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2178,7 +2178,7 @@ class ExpedirProcedimentoRN extends InfraRN {
2178 2178
2179 $objAtributoAndamentoDTOUser = new AtributoAndamentoDTO(); 2179 $objAtributoAndamentoDTOUser = new AtributoAndamentoDTO();
2180 $objAtributoAndamentoDTOUser->setStrNome('USUARIO'); 2180 $objAtributoAndamentoDTOUser->setStrNome('USUARIO');
2181 - $objAtributoAndamentoDTOUser->setStrIdOrigem(null); 2181 + $objAtributoAndamentoDTOUser->setStrIdOrigem(SessaoSEI::getInstance()->getNumIdUsuario());
2182 $objAtributoAndamentoDTOUser->setStrValor(SessaoSEI::getInstance()->getStrNomeUsuario()); 2182 $objAtributoAndamentoDTOUser->setStrValor(SessaoSEI::getInstance()->getStrNomeUsuario());
2183 2183
2184 $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array($objAtributoAndamentoDTOHora, $objAtributoAndamentoDTOUser)); 2184 $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array($objAtributoAndamentoDTOHora, $objAtributoAndamentoDTOUser));
rn/PenAtividadeRN.php
@@ -80,6 +80,16 @@ class PenAtividadeRN extends AtividadeRN { @@ -80,6 +80,16 @@ class PenAtividadeRN extends AtividadeRN {
80 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objBancoSEI); 80 $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objBancoSEI);
81 $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; 81 $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false;
82 break; 82 break;
  83 + case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO):
  84 + $strMensagem = 'Recebimento do Documento %s remetido por %s';
  85 + $strNome = 'ENTIDADE_ORIGEM';
  86 +
  87 + $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO();
  88 + $objReciboTramiteDTO->setNumIdTramite($numIdTramite);
  89 +
  90 + $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objBancoSEI);
  91 + $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false;
  92 + break;
83 } 93 }
84 94
85 $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); 95 $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
rn/PenAtualizarSeiRN.php
@@ -61,6 +61,7 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { @@ -61,6 +61,7 @@ class PenAtualizarSeiRN extends PenAtualizadorRN {
61 case '1.1.12': $this->instalarV1113(); 61 case '1.1.12': $this->instalarV1113();
62 case '1.1.13': $this->instalarV1114(); 62 case '1.1.13': $this->instalarV1114();
63 case '1.1.14': $this->instalarV1115(); 63 case '1.1.14': $this->instalarV1115();
  64 + case '1.1.16': $this->instalarV1115_feature50();
64 65
65 break; 66 break;
66 default: 67 default:
@@ -1395,4 +1396,48 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { @@ -1395,4 +1396,48 @@ class PenAtualizarSeiRN extends PenAtualizadorRN {
1395 $objInfraParametroDTO->setStrValor('1.1.15'); 1396 $objInfraParametroDTO->setStrValor('1.1.15');
1396 $objInfraParametroBD->alterar($objInfraParametroDTO); 1397 $objInfraParametroBD->alterar($objInfraParametroDTO);
1397 } 1398 }
  1399 +
  1400 +
  1401 + protected function instalarV1115_feature50()
  1402 + {
  1403 + print_r('cadastra tarefa');
  1404 +
  1405 + $objBD = new GenericoBD(BancoSEI::getInstance());
  1406 + $objDTO = new TarefaDTO();
  1407 +
  1408 + $fnCadastrar = function($strNome = '', $strHistoricoCompleto = 'N', $strHistoricoCompleto = 'N', $strFecharAndamentosAbertos = 'N', $strLancarAndamentoFechado = 'N', $strPermiteProcessoFechado = 'N', $strIdTarefaModulo = '') use($objDTO, $objBD) {
  1409 +
  1410 + $objDTO->unSetTodos();
  1411 + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo);
  1412 +
  1413 + if ($objBD->contar($objDTO) == 0) {
  1414 +
  1415 + $objUltimaTarefaDTO = new TarefaDTO();
  1416 + $objUltimaTarefaDTO->retNumIdTarefa();
  1417 + $objUltimaTarefaDTO->setNumMaxRegistrosRetorno(1);
  1418 + $objUltimaTarefaDTO->setOrd('IdTarefa', InfraDTO::$TIPO_ORDENACAO_DESC);
  1419 + $objUltimaTarefaDTO = $objBD->consultar($objUltimaTarefaDTO);
  1420 +
  1421 + $objDTO->setNumIdTarefa($objUltimaTarefaDTO->getNumIdTarefa() + 1);
  1422 + $objDTO->setStrNome($strNome);
  1423 + $objDTO->setStrSinHistoricoResumido($strHistoricoCompleto);
  1424 + $objDTO->setStrSinHistoricoCompleto($strHistoricoCompleto);
  1425 + $objDTO->setStrSinFecharAndamentosAbertos($strFecharAndamentosAbertos);
  1426 + $objDTO->setStrSinLancarAndamentoFechado($strLancarAndamentoFechado);
  1427 + $objDTO->setStrSinPermiteProcessoFechado($strPermiteProcessoFechado);
  1428 + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo);
  1429 + $objBD->cadastrar($objDTO);
  1430 + }
  1431 + };
  1432 +
  1433 + $fnCadastrar('Documento recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@ (@PROCESSO@, @ENTIDADE_ORIGEM@, @UNIDADE_DESTINO@, @USUARIO@)', 'S', 'S', 'N', 'S', 'N', 'PEN_DOCUMENTO_AVULSO_RECEBIDO');
  1434 +
  1435 +// //altera o parâmetro da versão de banco
  1436 +// $objInfraParametroBD = new InfraParametroBD(BancoSEI::getInstance());
  1437 +// $objInfraParametroDTO = new InfraParametroDTO();
  1438 +// $objInfraParametroDTO->setStrNome(self::PARAMETRO_VERSAO_MODULO);
  1439 +// $objInfraParametroDTO->setStrValor('1.1.XX');
  1440 +// $objInfraParametroBD->alterar($objInfraParametroDTO);
  1441 + }
  1442 +
1398 } 1443 }
rn/ProcessoEletronicoRN.php
@@ -12,6 +12,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -12,6 +12,7 @@ class ProcessoEletronicoRN extends InfraRN {
12 public static $TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO = 'PEN_PROCESSO_RECUSADO'; 12 public static $TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO = 'PEN_PROCESSO_RECUSADO';
13 public static $TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO = 'PEN_OPERACAO_EXTERNA'; 13 public static $TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO = 'PEN_OPERACAO_EXTERNA';
14 public static $TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO = 'PEN_EXPEDICAO_PROCESSO_ABORTADA'; 14 public static $TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO = 'PEN_EXPEDICAO_PROCESSO_ABORTADA';
  15 + public static $TI_DOCUMENTO_AVULSO_RECEBIDO = 'PEN_DOCUMENTO_AVULSO_RECEBIDO';
15 16
16 17
17 /* NÍVEL DE SIGILO DE PROCESSOS E DOCUMENTOS */ 18 /* NÍVEL DE SIGILO DE PROCESSOS E DOCUMENTOS */
@@ -558,7 +559,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -558,7 +559,7 @@ class ProcessoEletronicoRN extends InfraRN {
558 } 559 }
559 560
560 public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrStaTipoTramite, $parDthRegistroTramite, $parNumIdRepositorioOrigem, 561 public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrStaTipoTramite, $parDthRegistroTramite, $parNumIdRepositorioOrigem,
561 - $parNumIdEstruturaOrigem, $parNumIdRepositorioDestino, $parNumIdEstruturaDestino, $parObjProcesso, $parNumTicketComponentesDigitais = null, $parObjComponentesDigitaisSolicitados = null) 562 + $parNumIdEstruturaOrigem, $parNumIdRepositorioDestino, $parNumIdEstruturaDestino, $parObjProtocolo, $parNumTicketComponentesDigitais = null, $parObjComponentesDigitaisSolicitados = null)
562 { 563 {
563 564
564 if(!isset($parDblIdProcedimento) || $parDblIdProcedimento == 0) { 565 if(!isset($parDblIdProcedimento) || $parDblIdProcedimento == 0) {
@@ -593,7 +594,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -593,7 +594,7 @@ class ProcessoEletronicoRN extends InfraRN {
593 throw new InfraException('Parâmetro $parNumIdEstruturaDestino não informado.'); 594 throw new InfraException('Parâmetro $parNumIdEstruturaDestino não informado.');
594 } 595 }
595 596
596 - if(!isset($parObjProcesso)) { 597 + if(!isset($parObjProtocolo)) {
597 throw new InfraException('Parâmetro $objProcesso não informado.'); 598 throw new InfraException('Parâmetro $objProcesso não informado.');
598 } 599 }
599 600
@@ -603,14 +604,14 @@ class ProcessoEletronicoRN extends InfraRN { @@ -603,14 +604,14 @@ class ProcessoEletronicoRN extends InfraRN {
603 $objProcessoEletronicoDTO->setDblIdProcedimento($parDblIdProcedimento); 604 $objProcessoEletronicoDTO->setDblIdProcedimento($parDblIdProcedimento);
604 605
605 //Montar dados dos procedimentos apensados 606 //Montar dados dos procedimentos apensados
606 - if(isset($parObjProcesso->processoApensado)){  
607 - if(!is_array($parObjProcesso->processoApensado)){  
608 - $parObjProcesso->processoApensado = array($parObjProcesso->processoApensado); 607 + if(isset($parObjProtocolo->processoApensado)){
  608 + if(!is_array($parObjProtocolo->processoApensado)){
  609 + $parObjProtocolo->processoApensado = array($parObjProtocolo->processoApensado);
609 } 610 }
610 611
611 $arrObjRelProcessoEletronicoApensadoDTO = array(); 612 $arrObjRelProcessoEletronicoApensadoDTO = array();
612 $objRelProcessoEletronicoApensadoDTO = null; 613 $objRelProcessoEletronicoApensadoDTO = null;
613 - foreach ($parObjProcesso->processoApensado as $objProcessoApensado) { 614 + foreach ($parObjProtocolo->processoApensado as $objProcessoApensado) {
614 $objRelProcessoEletronicoApensadoDTO = new RelProcessoEletronicoApensadoDTO(); 615 $objRelProcessoEletronicoApensadoDTO = new RelProcessoEletronicoApensadoDTO();
615 $objRelProcessoEletronicoApensadoDTO->setStrNumeroRegistro($parStrNumeroRegistro); 616 $objRelProcessoEletronicoApensadoDTO->setStrNumeroRegistro($parStrNumeroRegistro);
616 $objRelProcessoEletronicoApensadoDTO->setDblIdProcedimentoApensado($objProcessoApensado->idProcedimentoSEI); 617 $objRelProcessoEletronicoApensadoDTO->setDblIdProcedimentoApensado($objProcessoApensado->idProcedimentoSEI);
@@ -637,7 +638,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -637,7 +638,7 @@ class ProcessoEletronicoRN extends InfraRN {
637 $objProcessoEletronicoDTO->setArrObjTramiteDTO(array($objTramiteDTO)); 638 $objProcessoEletronicoDTO->setArrObjTramiteDTO(array($objTramiteDTO));
638 639
639 //Monta dados dos componentes digitais 640 //Monta dados dos componentes digitais
640 - $arrObjComponenteDigitalDTO = $this->montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjComponentesDigitaisSolicitados); 641 + $arrObjComponenteDigitalDTO = $this->montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProtocolo, $parObjComponentesDigitaisSolicitados);
641 642
642 $objTramiteDTO->setArrObjComponenteDigitalDTO($arrObjComponenteDigitalDTO); 643 $objTramiteDTO->setArrObjComponenteDigitalDTO($arrObjComponenteDigitalDTO);
643 $objProcessoEletronicoDTO = $this->cadastrarTramiteDeProcessoInterno($objProcessoEletronicoDTO); 644 $objProcessoEletronicoDTO = $this->cadastrarTramiteDeProcessoInterno($objProcessoEletronicoDTO);
@@ -782,26 +783,31 @@ class ProcessoEletronicoRN extends InfraRN { @@ -782,26 +783,31 @@ class ProcessoEletronicoRN extends InfraRN {
782 return $strHashConteudo; 783 return $strHashConteudo;
783 } 784 }
784 785
785 - private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjComponentesDigitaisSolicitados) 786 + private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProtocolo, $parObjComponentesDigitaisSolicitados)
786 { 787 {
787 //Monta dados dos componentes digitais 788 //Monta dados dos componentes digitais
788 $arrObjComponenteDigitalDTO = array(); 789 $arrObjComponenteDigitalDTO = array();
789 - if(!is_array($parObjProcesso->documento)) {  
790 - $parObjProcesso->documento = array($parObjProcesso->documento);  
791 - }  
792 790
793 - foreach ($parObjProcesso->documento as $objDocumento) { 791 + $arrObjDocumento = array();
  792 + if(isset($parObjProtocolo->documento)){
  793 + $arrObjDocumento = is_array($parObjProtocolo->documento) ? $parObjProtocolo->documento : array($parObjProtocolo->documento);
  794 + } else {
  795 + $arrObjDocumento = array($parObjProtocolo);
  796 + }
  797 +
  798 +
  799 + foreach ($arrObjDocumento as $objDocumento) {
794 $objComponenteDigitalDTO = new ComponenteDigitalDTO(); 800 $objComponenteDigitalDTO = new ComponenteDigitalDTO();
795 $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); 801 $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro);
796 - $objComponenteDigitalDTO->setDblIdProcedimento($parObjProcesso->idProcedimentoSEI); //TODO: Error utilizar idProcedimentoSEI devido processos apensados 802 + $objComponenteDigitalDTO->setDblIdProcedimento($parObjProtocolo->idProcedimentoSEI); //TODO: Error utilizar idProcedimentoSEI devido processos apensados
797 $objComponenteDigitalDTO->setDblIdDocumento($objDocumento->idDocumentoSEI); 803 $objComponenteDigitalDTO->setDblIdDocumento($objDocumento->idDocumentoSEI);
798 $objComponenteDigitalDTO->setNumOrdem($objDocumento->ordem); 804 $objComponenteDigitalDTO->setNumOrdem($objDocumento->ordem);
799 $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); 805 $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite);
800 - $objComponenteDigitalDTO->setStrProtocolo($parObjProcesso->protocolo); 806 + $objComponenteDigitalDTO->setStrProtocolo($parObjProtocolo->protocolo);
801 807
802 //Por enquanto, considera que o documento possui apenas um componente digital 808 //Por enquanto, considera que o documento possui apenas um componente digital
803 if(is_array($objDocumento->componenteDigital) && count($objDocumento->componenteDigital) != 1) { 809 if(is_array($objDocumento->componenteDigital) && count($objDocumento->componenteDigital) != 1) {
804 - throw new InfraException("Erro processando componentes digitais do processo " . $parObjProcesso->protocolo . "\n Somente é permitido o recebimento de documentos com apenas um Componente Digital."); 810 + throw new InfraException("Erro processando componentes digitais do processo " . $parObjProtocolo->protocolo . "\n Somente é permitido o recebimento de documentos com apenas um Componente Digital.");
805 } 811 }
806 812
807 $objComponenteDigital = $objDocumento->componenteDigital; 813 $objComponenteDigital = $objDocumento->componenteDigital;
@@ -838,8 +844,8 @@ class ProcessoEletronicoRN extends InfraRN { @@ -838,8 +844,8 @@ class ProcessoEletronicoRN extends InfraRN {
838 } 844 }
839 845
840 //Chamada recursiva sobre os documentos dos processos apensados 846 //Chamada recursiva sobre os documentos dos processos apensados
841 - if(isset($parObjProcesso->processoApensado) && count($parObjProcesso->processoApensado)) {  
842 - foreach ($parObjProcesso->processoApensado as $objProcessoApensado) { 847 + if(isset($parObjProtocolo->processoApensado) && count($parObjProtocolo->processoApensado)) {
  848 + foreach ($parObjProtocolo->processoApensado as $objProcessoApensado) {
843 $arrObj = $this->montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIdentificacaoTramite, $objProcessoApensado, $parObjComponentesDigitaisSolicitados); 849 $arrObj = $this->montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIdentificacaoTramite, $objProcessoApensado, $parObjComponentesDigitaisSolicitados);
844 $arrObjComponenteDigitalDTO = array_merge($arrObjComponenteDigitalDTO, $arrObj); 850 $arrObjComponenteDigitalDTO = array_merge($arrObjComponenteDigitalDTO, $arrObj);
845 } 851 }
rn/ReceberProcedimentoRN.php
@@ -6,6 +6,8 @@ require_once dirname(__FILE__) . '/../../../SEI.php'; @@ -6,6 +6,8 @@ require_once dirname(__FILE__) . '/../../../SEI.php';
6 class ReceberProcedimentoRN extends InfraRN 6 class ReceberProcedimentoRN extends InfraRN
7 { 7 {
8 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';
  9 + const TIPO_PROTOCOLO_PROCESSO = 'P';
  10 + const TIPO_PROTOCOLO_DOCUMENTO_AVULSO = 'D';
9 11
10 private $objProcessoEletronicoRN; 12 private $objProcessoEletronicoRN;
11 private $objInfraParametro; 13 private $objInfraParametro;
@@ -63,12 +65,16 @@ class ReceberProcedimentoRN extends InfraRN @@ -63,12 +65,16 @@ class ReceberProcedimentoRN extends InfraRN
63 $objDocumento = $objMetadadosProcedimento->metadados->documento; 65 $objDocumento = $objMetadadosProcedimento->metadados->documento;
64 66
65 $objProtocolo = isset($objProcesso) ? $objProcesso : $objDocumento; 67 $objProtocolo = isset($objProcesso) ? $objProcesso : $objDocumento;
  68 + $objProtocolo->staTipoProtocolo = isset($objProcesso) ? self::TIPO_PROTOCOLO_PROCESSO : self::TIPO_PROTOCOLO_DOCUMENTO_AVULSO;
66 69
67 - $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); 70 + $strIdTarefa = isset($objProcesso) ? ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO : ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO;
  71 + $numIdTarefa = ProcessoEletronicoRN::obterIdTarefaModulo($strIdTarefa);
  72 +
  73 + $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, $numIdTarefa);
68 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Iniciando recebimento de processo externo', 'S')); 74 $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Iniciando recebimento de processo externo', 'S'));
69 75
70 //Tratamento para evitar o recebimento simultâneo do mesmo procedimento em serviços/processos concorrentes 76 //Tratamento para evitar o recebimento simultâneo do mesmo procedimento em serviços/processos concorrentes
71 - $this->sincronizarRecebimentoProcessos($strNumeroRegistro, $parNumIdentificacaoTramite); 77 + $this->sincronizarRecebimentoProcessos($strNumeroRegistro, $parNumIdentificacaoTramite, $numIdTarefa);
72 78
73 //Verifica se processo já foi registrado para esse trâmite 79 //Verifica se processo já foi registrado para esse trâmite
74 if($this->tramiteRecebimentoRegistrado($strNumeroRegistro, $parNumIdentificacaoTramite)) { 80 if($this->tramiteRecebimentoRegistrado($strNumeroRegistro, $parNumIdentificacaoTramite)) {
@@ -148,8 +154,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -148,8 +154,8 @@ class ReceberProcedimentoRN extends InfraRN
148 $objProcedimentoDTO = $this->registrarProcesso($strNumeroRegistro, $parNumIdentificacaoTramite, $objProtocolo, $objMetadadosProcedimento); 154 $objProcedimentoDTO = $this->registrarProcesso($strNumeroRegistro, $parNumIdentificacaoTramite, $objProtocolo, $objMetadadosProcedimento);
149 155
150 // @join_tec US008.08 (#23092) 156 // @join_tec US008.08 (#23092)
151 - $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), $objProcedimentoDTO->getDblIdProcedimento());  
152 - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Obtendo metadados do processo', 'S')); 157 + $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, $numIdTarefa, $objProcedimentoDTO->getDblIdProcedimento());
  158 + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Obtendo metadados do protocolo', 'S'));
153 159
154 $this->gravarLogDebug("Registrando trâmite externo do processo", 4); 160 $this->gravarLogDebug("Registrando trâmite externo do processo", 4);
155 $objProcessoEletronicoDTO = $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( 161 $objProcessoEletronicoDTO = $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso(
@@ -162,7 +168,7 @@ class ReceberProcedimentoRN extends InfraRN @@ -162,7 +168,7 @@ class ReceberProcedimentoRN extends InfraRN
162 $objMetadadosProcedimento->metadados->remetente->numeroDeIdentificacaoDaEstrutura, 168 $objMetadadosProcedimento->metadados->remetente->numeroDeIdentificacaoDaEstrutura,
163 $objMetadadosProcedimento->metadados->destinatario->identificacaoDoRepositorioDeEstruturas, 169 $objMetadadosProcedimento->metadados->destinatario->identificacaoDoRepositorioDeEstruturas,
164 $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura, 170 $objMetadadosProcedimento->metadados->destinatario->numeroDeIdentificacaoDaEstrutura,
165 - $objProcesso); 171 + $objProtocolo);
166 172
167 //Verifica se o tramite se encontra na situação correta 173 //Verifica se o tramite se encontra na situação correta
168 $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); 174 $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite);
@@ -585,37 +591,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -585,37 +591,6 @@ class ReceberProcedimentoRN extends InfraRN
585 return $objProcedimentoDTO; 591 return $objProcedimentoDTO;
586 } 592 }
587 593
588 - private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento)  
589 - {  
590 - $objUnidadeDTO = new PenUnidadeDTO();  
591 - $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura);  
592 - $objUnidadeDTO->setStrSinAtivo('S');  
593 - $objUnidadeDTO->retStrDescricao(); //descricao  
594 -  
595 - $objUnidadeRN = new UnidadeRN();  
596 - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);  
597 -  
598 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
599 - $objAtributoAndamentoDTO->setStrNome('DESCRICAO');  
600 - $objAtributoAndamentoDTO->setStrValor('Processo remetido para a unidade ' . $objUnidadeDTO->getStrDescricao());  
601 - $objAtributoAndamentoDTO->setStrIdOrigem($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura);  
602 -  
603 - $arrObjAtributoAndamentoDTO = array($objAtributoAndamentoDTO);  
604 -  
605 - $objAtividadeDTO = new AtividadeDTO();  
606 - $objAtividadeDTO->setDblIdProtocolo($parNumIdProcedimento);  
607 - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());  
608 - $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());  
609 - $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_ATUALIZACAO_ANDAMENTO);  
610 - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);  
611 - $objAtividadeDTO->setDthConclusao(null);  
612 - $objAtividadeDTO->setNumIdUsuarioConclusao(null);  
613 - $objAtividadeDTO->setStrSinInicial('N');  
614 -  
615 - $objAtividadeRN = new AtividadeRN();  
616 - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);  
617 - }  
618 -  
619 private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) 594 private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo)
620 { 595 {
621 if(!isset($objMetadadosProcedimento)){ 596 if(!isset($objMetadadosProcedimento)){
@@ -657,9 +632,12 @@ class ReceberProcedimentoRN extends InfraRN @@ -657,9 +632,12 @@ class ReceberProcedimentoRN extends InfraRN
657 } 632 }
658 } 633 }
659 634
660 - $objProtocoloDTO->setStrProtocoloFormatado(utf8_decode($parObjProtocolo->protocolo)); 635 + // O protocolo formatado do novo processo somente deverá reutilizar o número definido pelo Remetente em caso de
  636 + // trâmites de processos. No caso de recebimento de documentos avulsos, o número do novo processo sempre deverá ser
  637 + // gerado pelo destinatário, conforme regras definidas em legislação vigente
  638 + $strProtocoloFormatado = ($parObjProtocolo->staTipoProtocolo == self::TIPO_PROTOCOLO_PROCESSO) ? $parObjProtocolo->protocolo : null;
  639 + $objProtocoloDTO->setStrProtocoloFormatado(utf8_decode($strProtocoloFormatado));
661 $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); 640 $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
662 -// $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));  
663 $objProtocoloDTO->setArrObjAnexoDTO(array()); 641 $objProtocoloDTO->setArrObjAnexoDTO(array());
664 $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array()); 642 $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array());
665 $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array()); 643 $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array());
@@ -696,7 +674,7 @@ class ReceberProcedimentoRN extends InfraRN @@ -696,7 +674,7 @@ class ReceberProcedimentoRN extends InfraRN
696 $objProcedimentoDTO->setDblIdProcedimento(null); 674 $objProcedimentoDTO->setDblIdProcedimento(null);
697 $objProcedimentoDTO->setObjProtocoloDTO($objProtocoloDTO); 675 $objProcedimentoDTO->setObjProtocoloDTO($objProtocoloDTO);
698 $objProcedimentoDTO->setDtaGeracaoProtocolo($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); 676 $objProcedimentoDTO->setDtaGeracaoProtocolo($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao));
699 - $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado(utf8_decode($parObjProtocolo->protocolo)); 677 + $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado(utf8_decode($strProtocoloFormatado));
700 $objProcedimentoDTO->setStrSinGerarPendencia('S'); 678 $objProcedimentoDTO->setStrSinGerarPendencia('S');
701 $objProcedimentoDTO->setArrObjDocumentoDTO(array()); 679 $objProcedimentoDTO->setArrObjDocumentoDTO(array());
702 680
@@ -731,8 +709,19 @@ class ReceberProcedimentoRN extends InfraRN @@ -731,8 +709,19 @@ class ReceberProcedimentoRN extends InfraRN
731 709
732 //TODO: Finalizar criação do procedimento 710 //TODO: Finalizar criação do procedimento
733 $objProcedimentoRN = new ProcedimentoRN(); 711 $objProcedimentoRN = new ProcedimentoRN();
734 - $objProcedimentoDTOGerado = $objProcedimentoRN->gerarRN0156($objProcedimentoDTO); 712 +
  713 + try{
  714 + //Alterado contexto de unidade atual para a unidade de destino do processo para que o núcleo do SEI possa
  715 + //gerar o número de processo correto do destino e não o número da unidade de recebimento do processo
  716 + SessaoSEI::getInstance(false)->setNumIdUnidadeAtual($objUnidadeDTO->getNumIdUnidade());
  717 + $objProcedimentoDTOGerado = $objProcedimentoRN->gerarRN0156($objProcedimentoDTO);
  718 + }
  719 + finally{
  720 + SessaoSEI::getInstance(false)->setNumIdUnidadeAtual($objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'));
  721 + }
  722 +
735 $objProcedimentoDTO->setDblIdProcedimento($objProcedimentoDTOGerado->getDblIdProcedimento()); 723 $objProcedimentoDTO->setDblIdProcedimento($objProcedimentoDTOGerado->getDblIdProcedimento());
  724 + $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($objProcedimentoDTO->getObjProtocoloDTO()->getStrProtocoloFormatado());
736 725
737 $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); 726 $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento);
738 $this->atribuirDocumentos($objProcedimentoDTO, $parObjProtocolo, $objUnidadeDTO, $objMetadadosProcedimento); 727 $this->atribuirDocumentos($objProcedimentoDTO, $parObjProtocolo, $objUnidadeDTO, $objMetadadosProcedimento);
@@ -749,6 +738,37 @@ class ReceberProcedimentoRN extends InfraRN @@ -749,6 +738,37 @@ class ReceberProcedimentoRN extends InfraRN
749 return $objProcedimentoDTO; 738 return $objProcedimentoDTO;
750 } 739 }
751 740
  741 + private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento)
  742 + {
  743 + $objUnidadeDTO = new PenUnidadeDTO();
  744 + $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura);
  745 + $objUnidadeDTO->setStrSinAtivo('S');
  746 + $objUnidadeDTO->retStrDescricao(); //descricao
  747 +
  748 + $objUnidadeRN = new UnidadeRN();
  749 + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO);
  750 +
  751 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  752 + $objAtributoAndamentoDTO->setStrNome('DESCRICAO');
  753 + $objAtributoAndamentoDTO->setStrValor('Processo remetido para a unidade ' . $objUnidadeDTO->getStrDescricao());
  754 + $objAtributoAndamentoDTO->setStrIdOrigem($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura);
  755 +
  756 + $arrObjAtributoAndamentoDTO = array($objAtributoAndamentoDTO);
  757 +
  758 + $objAtividadeDTO = new AtividadeDTO();
  759 + $objAtividadeDTO->setDblIdProtocolo($parNumIdProcedimento);
  760 + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  761 + $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
  762 + $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_ATUALIZACAO_ANDAMENTO);
  763 + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);
  764 + $objAtividadeDTO->setDthConclusao(null);
  765 + $objAtividadeDTO->setNumIdUsuarioConclusao(null);
  766 + $objAtividadeDTO->setStrSinInicial('N');
  767 +
  768 + $objAtividadeRN = new AtividadeRN();
  769 + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO);
  770 + }
  771 +
752 private function alterarMetadadosProcedimento($parNumIdProcedimento, $parObjMetadadoProcedimento) 772 private function alterarMetadadosProcedimento($parNumIdProcedimento, $parObjMetadadoProcedimento)
753 { 773 {
754 //Realiza a alteração dos metadados do processo(Por hora, apenas do nível de sigilo e hipótese legal) 774 //Realiza a alteração dos metadados do processo(Por hora, apenas do nível de sigilo e hipótese legal)
@@ -797,7 +817,9 @@ class ReceberProcedimentoRN extends InfraRN @@ -797,7 +817,9 @@ class ReceberProcedimentoRN extends InfraRN
797 //TODO: Atribuir atributos necessários para formação da mensagem do andamento 817 //TODO: Atribuir atributos necessários para formação da mensagem do andamento
798 //TODO: Especificar quais andamentos serão registrados 818 //TODO: Especificar quais andamentos serão registrados
799 $objRemetente = $parObjMetadadosProcedimento->metadados->remetente; 819 $objRemetente = $parObjMetadadosProcedimento->metadados->remetente;
800 - $objProcesso = $objMetadadosProcedimento->metadados->processo; 820 + $objProcesso = $parObjMetadadosProcedimento->metadados->processo;
  821 + $objDocumento = $parObjMetadadosProcedimento->metadados->documento;
  822 + $objProtocolo = isset($objProcesso) ? $objProcesso : $objDocumento;
801 823
802 $arrObjAtributoAndamentoDTO = array(); 824 $arrObjAtributoAndamentoDTO = array();
803 825
@@ -824,6 +846,32 @@ class ReceberProcedimentoRN extends InfraRN @@ -824,6 +846,32 @@ class ReceberProcedimentoRN extends InfraRN
824 $objAtributoAndamentoDTO->setStrIdOrigem($objEstrutura->numeroDeIdentificacaoDaEstrutura); 846 $objAtributoAndamentoDTO->setStrIdOrigem($objEstrutura->numeroDeIdentificacaoDaEstrutura);
825 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; 847 $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
826 848
  849 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  850 + $objAtributoAndamentoDTO->setStrNome('PROCESSO');
  851 + $objAtributoAndamentoDTO->setStrValor($objProtocolo->protocolo);
  852 + $objAtributoAndamentoDTO->setStrIdOrigem(null);
  853 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
  854 +
  855 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  856 + $objAtributoAndamentoDTO->setStrNome('USUARIO');
  857 + $objAtributoAndamentoDTO->setStrValor(SessaoSEI::getInstance()->getStrNomeUsuario());
  858 + $objAtributoAndamentoDTO->setStrIdOrigem(SessaoSEI::getInstance()->getNumIdUsuario());
  859 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
  860 +
  861 + //Obtém dados da unidade de destino atribuída anteriormente para o protocolo
  862 + if($objProcedimentoDTO->isSetArrObjUnidadeDTO() && count($objProcedimentoDTO->getArrObjUnidadeDTO()) == 1) {
  863 + $arrObjUnidadesDestinoDTO = $objProcedimentoDTO->getArrObjUnidadeDTO();
  864 + $objUnidadesDestinoDTO = $arrObjUnidadesDestinoDTO[0];
  865 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  866 + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');
  867 + $objAtributoAndamentoDTO->setStrValor($objUnidadesDestinoDTO->getStrDescricao());
  868 + $objAtributoAndamentoDTO->setStrIdOrigem($objUnidadesDestinoDTO->getNumIdUnidade());
  869 + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO;
  870 + }
  871 +
  872 +
  873 +
  874 +
827 if(isset($objEstrutura->hierarquia)) { 875 if(isset($objEstrutura->hierarquia)) {
828 $arrObjNivel = $objEstrutura->hierarquia->nivel; 876 $arrObjNivel = $objEstrutura->hierarquia->nivel;
829 877
@@ -862,7 +910,10 @@ class ReceberProcedimentoRN extends InfraRN @@ -862,7 +910,10 @@ class ReceberProcedimentoRN extends InfraRN
862 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); 910 $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
863 $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); 911 $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
864 $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); 912 $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario());
865 - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); 913 +
  914 + $strIdTarefa = isset($objProcesso) ? ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO : ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO;
  915 +
  916 + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo($strIdTarefa));
866 $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); 917 $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO);
867 $objAtividadeDTO->setDthConclusao(null); 918 $objAtividadeDTO->setDthConclusao(null);
868 $objAtividadeDTO->setNumIdUsuarioConclusao(null); 919 $objAtividadeDTO->setNumIdUsuarioConclusao(null);
@@ -1092,6 +1143,7 @@ class ReceberProcedimentoRN extends InfraRN @@ -1092,6 +1143,7 @@ class ReceberProcedimentoRN extends InfraRN
1092 $objProcedimentoDTO2->retStrNomeTipoProcedimento(); 1143 $objProcedimentoDTO2->retStrNomeTipoProcedimento();
1093 $objProcedimentoDTO2->adicionarCriterio(array('IdProcedimento','ProtocoloProcedimentoFormatado','ProtocoloProcedimentoFormatadoPesquisa'), 1144 $objProcedimentoDTO2->adicionarCriterio(array('IdProcedimento','ProtocoloProcedimentoFormatado','ProtocoloProcedimentoFormatadoPesquisa'),
1094 array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL), 1145 array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL),
  1146 + //TODO: Possivelmente, a pesquisa pelos campos ProtocoloProcedimentoFormatado e ProtocoloProcedimentoFormatadoPesquisa está incorreta
1095 array($objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento()), 1147 array($objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento()),
1096 array(InfraDTO::$OPER_LOGICO_OR,InfraDTO::$OPER_LOGICO_OR)); 1148 array(InfraDTO::$OPER_LOGICO_OR,InfraDTO::$OPER_LOGICO_OR));
1097 1149
@@ -1305,8 +1357,8 @@ class ReceberProcedimentoRN extends InfraRN @@ -1305,8 +1357,8 @@ class ReceberProcedimentoRN extends InfraRN
1305 1357
1306 $objProcedimentoDTOApensado = null; 1358 $objProcedimentoDTOApensado = null;
1307 foreach ($objProcedimento->processoApensado as $processoApensado){ 1359 foreach ($objProcedimento->processoApensado as $processoApensado){
1308 - $objProcedimentoDTOApensado = $this->gerarProcedimento($objMetadadosProcedimento, $processoApensado);  
1309 - $this->relacionarProcedimentos($objProcedimentoDTOPrincipal, $objProcedimentoDTOApensado); 1360 + $objProcedimentoDTOApensado = $this->gerarProcedimento($objProcedimento, $processoApensado);
  1361 + $this->relacionarProcedimentos($objProcedimento, $objProcedimentoDTOApensado);
1310 $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado); 1362 $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado);
1311 } 1363 }
1312 } 1364 }
@@ -1542,8 +1594,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -1542,8 +1594,6 @@ class ReceberProcedimentoRN extends InfraRN
1542 $objInfraException->lancarValidacao('Unidade de destino do processo não informada.'); 1594 $objInfraException->lancarValidacao('Unidade de destino do processo não informada.');
1543 } 1595 }
1544 1596
1545 - $arrObjUnidadeDTO = $parObjProcedimentoDTO->getArrObjUnidadeDTO();  
1546 -  
1547 if(count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) > 1) { 1597 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.'); 1598 $objInfraException->lancarValidacao('Não permitido a indicação de múltiplas unidades de destino para um processo recebido externamente.');
1549 } 1599 }
@@ -1558,7 +1608,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -1558,7 +1608,6 @@ class ReceberProcedimentoRN extends InfraRN
1558 $objProcedimentoDTO->retNumIdTipoProcedimento(); 1608 $objProcedimentoDTO->retNumIdTipoProcedimento();
1559 $objProcedimentoDTO->retStrNomeTipoProcedimento(); 1609 $objProcedimentoDTO->retStrNomeTipoProcedimento();
1560 $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo(); 1610 $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo();
1561 - // $objProcedimentoDTO->retStrStaEstadoProtocolo();  
1562 $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado()); 1611 $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado());
1563 1612
1564 $objProcedimentoRN = new ProcedimentoRN(); 1613 $objProcedimentoRN = new ProcedimentoRN();
@@ -1722,6 +1771,44 @@ class ReceberProcedimentoRN extends InfraRN @@ -1722,6 +1771,44 @@ class ReceberProcedimentoRN extends InfraRN
1722 } 1771 }
1723 } 1772 }
1724 1773
  1774 + /**
  1775 + * Método que realiza a validação da extensão dos componentes digitais a serem recebidos
  1776 + *
  1777 + * @param integer $parIdTramite
  1778 + * @param object $parObjProtocolo
  1779 + * @throws InfraException
  1780 + */
  1781 + public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo)
  1782 + {
  1783 + //Armazena o array de documentos
  1784 + $arrDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo);
  1785 +
  1786 + //Instancia o bd do arquivoExtensão
  1787 + $arquivoExtensaoBD = new ArquivoExtensaoBD($this->getObjInfraIBanco());
  1788 +
  1789 + //Percorre os documentos
  1790 + foreach($arrDocumentos as $documento){
  1791 +
  1792 + //Busca o nome do documento
  1793 + $nomeDocumento = $documento->componenteDigital->nome;
  1794 +
  1795 + //Busca pela extensão do documento
  1796 + $arrNomeDocumento = explode('.', $nomeDocumento);
  1797 + $extDocumento = $arrNomeDocumento[count($arrNomeDocumento) - 1];
  1798 +
  1799 + //Verifica se a extensão do arquivo está cadastrada e ativa
  1800 + $arquivoExtensaoDTO = new ArquivoExtensaoDTO();
  1801 + $arquivoExtensaoDTO->setStrSinAtivo('S');
  1802 + $arquivoExtensaoDTO->setStrExtensao($extDocumento);
  1803 + $arquivoExtensaoDTO->retStrExtensao();
  1804 +
  1805 + if($arquivoExtensaoBD->contar($arquivoExtensaoDTO) == 0){
  1806 + $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO);
  1807 + throw new InfraException("Processo recusado devido a existência de documento em formato {$extDocumento} não permitido pelo sistema. ");
  1808 + }
  1809 + }
  1810 + }
  1811 +
1725 protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO) 1812 protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO)
1726 { 1813 {
1727 //Realiza o desbloqueio do processo 1814 //Realiza o desbloqueio do processo
@@ -1776,44 +1863,6 @@ class ReceberProcedimentoRN extends InfraRN @@ -1776,44 +1863,6 @@ class ReceberProcedimentoRN extends InfraRN
1776 } 1863 }
1777 1864
1778 /** 1865 /**
1779 - * Método que realiza a validação da extensão dos componentes digitais a serem recebidos  
1780 - *  
1781 - * @param integer $parIdTramite  
1782 - * @param object $parObjProtocolo  
1783 - * @throws InfraException  
1784 - */  
1785 - public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo)  
1786 - {  
1787 - //Armazena o array de documentos  
1788 - $arrDocumentos = $this->obterDocumentosProtocolo($parObjProtocolo);  
1789 -  
1790 - //Instancia o bd do arquivoExtensão  
1791 - $arquivoExtensaoBD = new ArquivoExtensaoBD($this->getObjInfraIBanco());  
1792 -  
1793 - //Percorre os documentos  
1794 - foreach($arrDocumentos as $documento){  
1795 -  
1796 - //Busca o nome do documento  
1797 - $nomeDocumento = $documento->componenteDigital->nome;  
1798 -  
1799 - //Busca pela extensão do documento  
1800 - $arrNomeDocumento = explode('.', $nomeDocumento);  
1801 - $extDocumento = $arrNomeDocumento[count($arrNomeDocumento) - 1];  
1802 -  
1803 - //Verifica se a extensão do arquivo está cadastrada e ativa  
1804 - $arquivoExtensaoDTO = new ArquivoExtensaoDTO();  
1805 - $arquivoExtensaoDTO->setStrSinAtivo('S');  
1806 - $arquivoExtensaoDTO->setStrExtensao($extDocumento);  
1807 - $arquivoExtensaoDTO->retStrExtensao();  
1808 -  
1809 - if($arquivoExtensaoBD->contar($arquivoExtensaoDTO) == 0){  
1810 - $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO);  
1811 - throw new InfraException("Processo recusado devido a existência de documento em formato {$extDocumento} não permitido pelo sistema. ");  
1812 - }  
1813 - }  
1814 - }  
1815 -  
1816 - /**  
1817 * Método que verifica as permissões de escrita nos diretórios utilizados no recebimento de processos e documentos 1866 * Método que verifica as permissões de escrita nos diretórios utilizados no recebimento de processos e documentos
1818 * 1867 *
1819 * @param integer $parIdTramite 1868 * @param integer $parIdTramite
@@ -1835,13 +1884,13 @@ class ReceberProcedimentoRN extends InfraRN @@ -1835,13 +1884,13 @@ class ReceberProcedimentoRN extends InfraRN
1835 } 1884 }
1836 } 1885 }
1837 1886
1838 - private function sincronizarRecebimentoProcessos($parStrNumeroRegistro, $parNumIdentificacaoTramite) 1887 + private function sincronizarRecebimentoProcessos($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parNumIdTarefa)
1839 { 1888 {
1840 $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); 1889 $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO();
1841 $objProcedimentoAndamentoDTO->retDblIdAndamento(); 1890 $objProcedimentoAndamentoDTO->retDblIdAndamento();
1842 $objProcedimentoAndamentoDTO->setStrNumeroRegistro($parStrNumeroRegistro); 1891 $objProcedimentoAndamentoDTO->setStrNumeroRegistro($parStrNumeroRegistro);
1843 $objProcedimentoAndamentoDTO->setDblIdTramite($parNumIdentificacaoTramite); 1892 $objProcedimentoAndamentoDTO->setDblIdTramite($parNumIdentificacaoTramite);
1844 - $objProcedimentoAndamentoDTO->setNumTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); 1893 + $objProcedimentoAndamentoDTO->setNumTarefa($parNumIdTarefa);
1845 $objProcedimentoAndamentoDTO->setNumMaxRegistrosRetorno(1); 1894 $objProcedimentoAndamentoDTO->setNumMaxRegistrosRetorno(1);
1846 1895
1847 $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($this->getObjInfraIBanco()); 1896 $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($this->getObjInfraIBanco());
rn/ReciboTramiteRN.php
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 require_once dirname(__FILE__) . '/../../../SEI.php'; 3 require_once dirname(__FILE__) . '/../../../SEI.php';
4 4
5 /** 5 /**
6 - * Repostório da entidade ReciboTramite 6 + * Repost�rio da entidade ReciboTramite
7 * 7 *
8 * @author Join Tecnologia 8 * @author Join Tecnologia
9 */ 9 */
@@ -18,7 +18,7 @@ class ReciboTramiteRN extends InfraRN { @@ -18,7 +18,7 @@ class ReciboTramiteRN extends InfraRN {
18 } 18 }
19 19
20 /** 20 /**
21 - * retorna um array de recibos de tramites ( geralmente é somente um ) 21 + * retorna um array de recibos de tramites ( geralmente � somente um )
22 * 22 *
23 * @param string $strAtividade pode ser RECEBER ou ENVIAR 23 * @param string $strAtividade pode ser RECEBER ou ENVIAR
24 * @return array 24 * @return array
@@ -44,6 +44,7 @@ class ReciboTramiteRN extends InfraRN { @@ -44,6 +44,7 @@ class ReciboTramiteRN extends InfraRN {
44 break; 44 break;
45 45
46 case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO): 46 case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO):
  47 + case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO):
47 $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO(); 48 $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO();
48 $objReciboTramiteDTO->setNumIdTramite($numIdTramite); 49 $objReciboTramiteDTO->setNumIdTramite($numIdTramite);
49 $objReciboTramiteDTO->retStrNumeroRegistro(); 50 $objReciboTramiteDTO->retStrNumeroRegistro();