diff --git a/src/rn/ReceberProcedimentoRN.php b/src/rn/ReceberProcedimentoRN.php index 045b36c25..8a5712408 100755 --- a/src/rn/ReceberProcedimentoRN.php +++ b/src/rn/ReceberProcedimentoRN.php @@ -1064,7 +1064,7 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $numIdTipoProcedimento = $this->objPenParametroRN->getParametro('PEN_TIPO_PROCESSO_EXTERNO'); $remetente = $objMetadadosProcedimento->metadados->remetente; $destinatario = $objMetadadosProcedimento->metadados->destinatario; - $this->atribuirTipoProcedimento( + $alterouTipoProcesso = $this->atribuirTipoProcedimento( $objProcedimentoDTO, $remetente, $destinatario, @@ -1099,6 +1099,38 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $objInfraParametro->setValor('SEI_FEDERACAO_NUMERO_PROCESSO', 0); $objProcedimentoDTOGerado = $objProcedimentoRN->gerarRN0156($objProcedimentoDTO); + if ($alterouTipoProcesso) { + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('TIPO_PROCESSO_ANTERIOR'); + $objAtributoAndamentoDTO->setStrValor($strProcessoNegocio); + $objAtributoAndamentoDTO->setStrIdOrigem($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); + $arrObjAtributoAndamentoDTO = array($objAtributoAndamentoDTO); + + $objTipoProcedimentoRN = new TipoProcedimentoRN(); + $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); + $objTipoProcedimentoDTO->setBolExclusaoLogica(false); + $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); + $objTipoProcedimentoDTO->retStrNome(); + $objTipoProcedimentoDTO->setNumIdTipoProcedimento($objProcedimentoDTO->getNumIdTipoProcedimento()); + $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); + + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('TIPO_PROCESSO_ATUAL'); + $objAtributoAndamentoDTO->setStrValor($objTipoProcedimentoDTO->getStrNome()); + $objAtributoAndamentoDTO->setStrIdOrigem($objTipoProcedimentoDTO->getNumIdTipoProcedimento()); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTOGerado->getDblIdProcedimento()); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_ALTERACAO_TIPO_PROCESSO); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); + + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + + } + $objProcedimentoDTO->setDblIdProcedimento($objProcedimentoDTOGerado->getDblIdProcedimento()); $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($objProcedimentoDTO->getObjProtocoloDTO()->getStrProtocoloFormatado()); @@ -1448,11 +1480,12 @@ private function obterTipoProcessoPeloNomeOrgaoUnidade($strNomeTipoProcesso, $nu * @param \stdClass $destinatario * @param string|int $numIdTipoProcedimento * @param string|int $strProcessoNegocio - * @return ProcedimentoDTO + * @return bool * @throws InfraException */ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $remetente, $destinatario, $numIdTipoProcedimento, $strProcessoNegocio) { + $alterouTipoProcesso = false; if(!empty(trim($strProcessoNegocio))){ // Verifica se existe relacionamento entre orgãos $objTipoProcedimentoDTO = $this->obterMapeamentoTipoProcesso($remetente, $destinatario, $strProcessoNegocio); @@ -1464,11 +1497,14 @@ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $ SessaoSEI::getInstance()->getNumIdOrgaoUnidadeAtual(), SessaoSEI::getInstance()->getNumIdUnidadeAtual() ); + } else { + $alterouTipoProcesso = true; } } if(is_null($objTipoProcedimentoDTO)){ // Verifica tipo de processo padrão cadastrado + $alterouTipoProcesso = true; $objTipoProcedimentoDTO = $this->obterTipoProcessoPadrao($numIdTipoProcedimento); } @@ -1497,6 +1533,8 @@ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $ } $objProcedimentoDTO->getObjProtocoloDTO()->setArrObjRelProtocoloAssuntoDTO($arrObjAssuntoDTO); + + return $alterouTipoProcesso; } /**