Commit 7d9fa19dd734705063ecc50d513ddf2268fbef12
1 parent
e31e693e
Exists in
master
and in
8 other branches
[Fixed #96] Impedir recusa de recebimento de processo caso este já esteja aberto no órgão
Showing
4 changed files
with
605 additions
and
657 deletions
Show diff stats
rn/ExpedirProcedimentoRN.php
| @@ -624,16 +624,9 @@ class ExpedirProcedimentoRN extends InfraRN { | @@ -624,16 +624,9 @@ class ExpedirProcedimentoRN extends InfraRN { | ||
| 624 | 624 | ||
| 625 | public function desbloquearProcessoExpedicao($numIdProcedimento) | 625 | public function desbloquearProcessoExpedicao($numIdProcedimento) |
| 626 | { | 626 | { |
| 627 | - //Intancia o objeto de desbloqueio da API do SEI | ||
| 628 | - $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); | ||
| 629 | - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($numIdProcedimento); | ||
| 630 | - | ||
| 631 | - //Solicita o Desbloqueio do Processo | ||
| 632 | - $objSeiRN = new SeiRN(); | ||
| 633 | - $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); | 627 | + ProcessoEletronicoRN::desbloquearProcesso($numIdProcedimento); |
| 634 | } | 628 | } |
| 635 | 629 | ||
| 636 | - | ||
| 637 | public function registrarAndamentoExpedicaoAbortada($dblIdProtocolo) | 630 | public function registrarAndamentoExpedicaoAbortada($dblIdProtocolo) |
| 638 | { | 631 | { |
| 639 | //Seta todos os atributos do histrico de aborto da expedio | 632 | //Seta todos os atributos do histrico de aborto da expedio |
| @@ -2209,7 +2202,7 @@ class ExpedirProcedimentoRN extends InfraRN { | @@ -2209,7 +2202,7 @@ class ExpedirProcedimentoRN extends InfraRN { | ||
| 2209 | $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); | 2202 | $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); |
| 2210 | $objDtoProtocolo = $objProtocoloBD->consultar($objDtoProtocolo); | 2203 | $objDtoProtocolo = $objProtocoloBD->consultar($objDtoProtocolo); |
| 2211 | 2204 | ||
| 2212 | - $this->cancelarTramiteInternoControlado($objDtoProtocolo); | 2205 | + $this->cancelarTramiteInterno($objDtoProtocolo); |
| 2213 | 2206 | ||
| 2214 | } | 2207 | } |
| 2215 | 2208 | ||
| @@ -2254,7 +2247,6 @@ class ExpedirProcedimentoRN extends InfraRN { | @@ -2254,7 +2247,6 @@ class ExpedirProcedimentoRN extends InfraRN { | ||
| 2254 | //Verifica se o trâmite est com o status de iniciado | 2247 | //Verifica se o trâmite est com o status de iniciado |
| 2255 | if ($tramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { | 2248 | if ($tramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { |
| 2256 | $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT); | 2249 | $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT); |
| 2257 | - | ||
| 2258 | return true; | 2250 | return true; |
| 2259 | } | 2251 | } |
| 2260 | 2252 | ||
| @@ -2293,11 +2285,7 @@ class ExpedirProcedimentoRN extends InfraRN { | @@ -2293,11 +2285,7 @@ class ExpedirProcedimentoRN extends InfraRN { | ||
| 2293 | } | 2285 | } |
| 2294 | 2286 | ||
| 2295 | //Desbloqueia o processo | 2287 | //Desbloqueia o processo |
| 2296 | - $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); | ||
| 2297 | - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($dblIdProcedimento); | ||
| 2298 | - | ||
| 2299 | - $objSeiRN = new SeiRN(); | ||
| 2300 | - $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); | 2288 | + ProcessoEletronicoRN::desbloquearProcesso($dblIdProcedimento); |
| 2301 | 2289 | ||
| 2302 | $objDTOFiltro = new TramiteDTO(); | 2290 | $objDTOFiltro = new TramiteDTO(); |
| 2303 | $objDTOFiltro->setNumIdTramite($tramite->IDT); | 2291 | $objDTOFiltro->setNumIdTramite($tramite->IDT); |
rn/ProcessarPendenciasRN.php
| @@ -112,9 +112,13 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa | @@ -112,9 +112,13 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa | ||
| 112 | catch(Exception $e){ | 112 | catch(Exception $e){ |
| 113 | $this->gravarLogDebug(InfraException::inspecionar($e), 0, true); | 113 | $this->gravarLogDebug(InfraException::inspecionar($e), 0, true); |
| 114 | LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); | 114 | LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); |
| 115 | - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); | ||
| 116 | - $strMensagem = ($e instanceof InfraException) ? $e->__toString() : $e->getMessage(); | ||
| 117 | - $objProcessoEletronicoRN->recusarTramite($numIdentificacaoTramite, $strMensagem, ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); | 115 | + |
| 116 | + //Não recusa trâmite caso o processo atual não possa ser desbloqueado, evitando que o processo fique aberto em dois sistemas ao mesmo tempo | ||
| 117 | + if($e instanceof InfraException && $e->getObjException() != null && !($e->getObjException() instanceof ProcessoNaoPodeSerDesbloqueadoException)) { | ||
| 118 | + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); | ||
| 119 | + $strMensagem = ($e instanceof InfraException) ? $e->__toString() : $e->getMessage(); | ||
| 120 | + $objProcessoEletronicoRN->recusarTramite($numIdentificacaoTramite, $strMensagem, ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); | ||
| 121 | + } | ||
| 118 | } | 122 | } |
| 119 | }); | 123 | }); |
| 120 | 124 |
rn/ProcessoEletronicoRN.php
| 1 | <?php | 1 | <?php |
| 2 | + | ||
| 3 | + | ||
| 4 | +class ProcessoNaoPodeSerDesbloqueadoException extends Exception {} | ||
| 5 | + | ||
| 2 | //@TODOJOIN: VERIFICAR SE NÃO EXISTEM TRY CATCH QUE OCULTAM ERROS. CASO EXISTAM CATCH COM EXEPTION DO PHP, RETIRALOS | 6 | //@TODOJOIN: VERIFICAR SE NÃO EXISTEM TRY CATCH QUE OCULTAM ERROS. CASO EXISTAM CATCH COM EXEPTION DO PHP, RETIRALOS |
| 3 | class ProcessoEletronicoRN extends InfraRN { | 7 | class ProcessoEletronicoRN extends InfraRN { |
| 4 | 8 | ||
| @@ -1254,15 +1258,8 @@ class ProcessoEletronicoRN extends InfraRN { | @@ -1254,15 +1258,8 @@ class ProcessoEletronicoRN extends InfraRN { | ||
| 1254 | * @throws Exception|InfraException | 1258 | * @throws Exception|InfraException |
| 1255 | * @return null | 1259 | * @return null |
| 1256 | */ | 1260 | */ |
| 1257 | - public function cancelarTramite($idTramite) { | ||
| 1258 | - | ||
| 1259 | - //@TODOJOIN: Adicionar a seguinte linha abaixo dessa : $parametros->filtroDeConsultaDeTramites = new stdClass() | ||
| 1260 | - //Faz a consulta do tramite | ||
| 1261 | - //$paramConsultaTramite = new stdClass(); | ||
| 1262 | - //$paramConsultaTramite->filtroDeConsultaDeTramites = new stdClass(); | ||
| 1263 | - //$paramConsultaTramite->filtroDeConsultaDeTramites->IDT = $idTramite; | ||
| 1264 | - //$dadosTramite = $this->getObjPenWs()->consultarTramites($paramConsultaTramite); | ||
| 1265 | - | 1261 | + public function cancelarTramite($idTramite) |
| 1262 | + { | ||
| 1266 | //Requisita o cancelamento | 1263 | //Requisita o cancelamento |
| 1267 | $parametros = new stdClass(); | 1264 | $parametros = new stdClass(); |
| 1268 | $parametros->IDT = $idTramite; | 1265 | $parametros->IDT = $idTramite; |
| @@ -1288,7 +1285,6 @@ class ProcessoEletronicoRN extends InfraRN { | @@ -1288,7 +1285,6 @@ class ProcessoEletronicoRN extends InfraRN { | ||
| 1288 | */ | 1285 | */ |
| 1289 | public function recusarTramite($idTramite, $justificativa, $motivo) { | 1286 | public function recusarTramite($idTramite, $justificativa, $motivo) { |
| 1290 | try { | 1287 | try { |
| 1291 | - | ||
| 1292 | //@TODOJOIN: Adicionar a seguinte linha abaixo dessa : $parametros->recusaDeTramite = new stdClass() | 1288 | //@TODOJOIN: Adicionar a seguinte linha abaixo dessa : $parametros->recusaDeTramite = new stdClass() |
| 1293 | $parametros = new stdClass(); | 1289 | $parametros = new stdClass(); |
| 1294 | $parametros->recusaDeTramite = new stdClass(); | 1290 | $parametros->recusaDeTramite = new stdClass(); |
| @@ -1426,6 +1422,19 @@ class ProcessoEletronicoRN extends InfraRN { | @@ -1426,6 +1422,19 @@ class ProcessoEletronicoRN extends InfraRN { | ||
| 1426 | throw new InfraException($mensagem, $e, $detalhes); | 1422 | throw new InfraException($mensagem, $e, $detalhes); |
| 1427 | } | 1423 | } |
| 1428 | } | 1424 | } |
| 1425 | + | ||
| 1426 | + public static function desbloquearProcesso($parDblIdProcedimento) | ||
| 1427 | + { | ||
| 1428 | + try{ | ||
| 1429 | + $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); | ||
| 1430 | + $objEntradaDesbloquearProcessoAPI->setIdProcedimento($parDblIdProcedimento); | ||
| 1431 | + | ||
| 1432 | + $objSeiRN = new SeiRN(); | ||
| 1433 | + $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); | ||
| 1434 | + } catch (InfraException $e) { | ||
| 1435 | + throw new ProcessoNaoPodeSerDesbloqueadoException("Erro ao desbloquear processo", 1, $e); | ||
| 1436 | + } | ||
| 1437 | + } | ||
| 1429 | } | 1438 | } |
| 1430 | 1439 | ||
| 1431 | 1440 |
rn/ReceberProcedimentoRN.php
| @@ -30,7 +30,6 @@ class ReceberProcedimentoRN extends InfraRN | @@ -30,7 +30,6 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 30 | return $arrObjPendencias; | 30 | return $arrObjPendencias; |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | - | ||
| 34 | protected function receberProcedimentoControlado($parNumIdentificacaoTramite) | 33 | protected function receberProcedimentoControlado($parNumIdentificacaoTramite) |
| 35 | { | 34 | { |
| 36 | try { | 35 | try { |
| @@ -186,6 +185,8 @@ class ReceberProcedimentoRN extends InfraRN | @@ -186,6 +185,8 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 186 | throw new InfraException("Desconsiderando recebimento do processo devido a situação de trâmite inconsistente: " . $objTramite->situacaoAtual); | 185 | throw new InfraException("Desconsiderando recebimento do processo devido a situação de trâmite inconsistente: " . $objTramite->situacaoAtual); |
| 187 | } | 186 | } |
| 188 | 187 | ||
| 188 | +//return ; | ||
| 189 | + | ||
| 189 | if(count($arrayHashPendentes) > 0){ | 190 | if(count($arrayHashPendentes) > 0){ |
| 190 | //Obter dados dos componetes digitais | 191 | //Obter dados dos componetes digitais |
| 191 | $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); | 192 | $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); |
| @@ -553,14 +554,12 @@ class ReceberProcedimentoRN extends InfraRN | @@ -553,14 +554,12 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 553 | $objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI); | 554 | $objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI); |
| 554 | } | 555 | } |
| 555 | 556 | ||
| 556 | - //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!) | 557 | + //Cadastro das atividades para quando o destinatário é desviado pelo receptor (!3!) |
| 557 | if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) { | 558 | if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) { |
| 558 | $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento); | 559 | $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento); |
| 559 | } | 560 | } |
| 560 | 561 | ||
| 561 | - $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); | ||
| 562 | - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($parDblIdProcedimento); | ||
| 563 | - $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); | 562 | + ProcessoEletronicoRN::desbloquearProcesso($parDblIdProcedimento); |
| 564 | 563 | ||
| 565 | //TODO: Obter código da unidade através de mapeamento entre SEI e Barramento | 564 | //TODO: Obter código da unidade através de mapeamento entre SEI e Barramento |
| 566 | $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); | 565 | $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); |
| @@ -616,8 +615,8 @@ class ReceberProcedimentoRN extends InfraRN | @@ -616,8 +615,8 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 616 | return $numIdUnidade; | 615 | return $numIdUnidade; |
| 617 | } | 616 | } |
| 618 | 617 | ||
| 619 | - private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) { | ||
| 620 | - | 618 | + private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) |
| 619 | + { | ||
| 621 | $objUnidadeDTO = new PenUnidadeDTO(); | 620 | $objUnidadeDTO = new PenUnidadeDTO(); |
| 622 | $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); | 621 | $objUnidadeDTO->setNumIdUnidadeRH($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); |
| 623 | $objUnidadeDTO->setStrSinAtivo('S'); | 622 | $objUnidadeDTO->setStrSinAtivo('S'); |
| @@ -647,8 +646,8 @@ class ReceberProcedimentoRN extends InfraRN | @@ -647,8 +646,8 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 647 | $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); | 646 | $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); |
| 648 | } | 647 | } |
| 649 | 648 | ||
| 650 | - private function gerarProcedimento($objMetadadosProcedimento, $objProcesso){ | ||
| 651 | - | 649 | + private function gerarProcedimento($objMetadadosProcedimento, $objProcesso) |
| 650 | + { | ||
| 652 | if(!isset($objMetadadosProcedimento)){ | 651 | if(!isset($objMetadadosProcedimento)){ |
| 653 | throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); | 652 | throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); |
| 654 | } | 653 | } |
| @@ -1022,12 +1021,10 @@ class ReceberProcedimentoRN extends InfraRN | @@ -1022,12 +1021,10 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 1022 | return $objUnidadeDTOEnvio; | 1021 | return $objUnidadeDTOEnvio; |
| 1023 | } | 1022 | } |
| 1024 | 1023 | ||
| 1025 | - | ||
| 1026 | //TODO: Grande parte da regra de negócio se baseou em SEIRN:199 - incluirDocumento. | 1024 | //TODO: Grande parte da regra de negócio se baseou em SEIRN:199 - incluirDocumento. |
| 1027 | //Avaliar a refatoração para impedir a duplicação de código | 1025 | //Avaliar a refatoração para impedir a duplicação de código |
| 1028 | private function atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $parObjMetadadosProcedimento) | 1026 | private function atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $parObjMetadadosProcedimento) |
| 1029 | { | 1027 | { |
| 1030 | - | ||
| 1031 | if(!isset($objProcesso)) { | 1028 | if(!isset($objProcesso)) { |
| 1032 | throw new InfraException('Parâmetro $objProcesso não informado.'); | 1029 | throw new InfraException('Parâmetro $objProcesso não informado.'); |
| 1033 | } | 1030 | } |
| @@ -1067,397 +1064,358 @@ class ReceberProcedimentoRN extends InfraRN | @@ -1067,397 +1064,358 @@ class ReceberProcedimentoRN extends InfraRN | ||
| 1067 | $objSeiRN = new SeiRN(); | 1064 | $objSeiRN = new SeiRN(); |
| 1068 | 1065 | ||
| 1069 | $arrObjDocumentoDTO = array(); | 1066 | $arrObjDocumentoDTO = array(); |
| 1070 | - | ||
| 1071 | foreach($arrObjDocumentos as $objDocumento){ | 1067 | foreach($arrObjDocumentos as $objDocumento){ |
| 1072 | 1068 | ||
| 1073 | - // @join_tec US027 (#3498) | ||
| 1074 | - if(isset($objDocumento->retirado) && $objDocumento->retirado === true) { | ||
| 1075 | - //$strHashConteudo = ProcessoEletronicoRN::getHashFromMetaDados($objDocumento->componenteDigital->hash); | ||
| 1076 | - // Caso já esteja cadastrado, de um reenvio anterior, então move para bloqueado | ||
| 1077 | - if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)) { | 1069 | + if(isset($objDocumento->retirado) && $objDocumento->retirado === true) { |
| 1070 | + | ||
| 1071 | + if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)) { | ||
| 1078 | 1072 | ||
| 1079 | //Busca o ID do protocolo | 1073 | //Busca o ID do protocolo |
| 1080 | - //$dblIdProtocolo = $arrStrHashConteudo[$strHashConteudo]; | ||
| 1081 | - $objComponenteIndexado = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; | ||
| 1082 | - $dblIdProtocolo = $objComponenteIndexado->getDblIdDocumento(); | 1074 | + $objComponenteIndexado = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; |
| 1075 | + $dblIdProtocolo = $objComponenteIndexado->getDblIdDocumento(); | ||
| 1083 | 1076 | ||
| 1084 | //Instancia o DTO do protocolo | 1077 | //Instancia o DTO do protocolo |
| 1085 | - $objProtocoloDTO = new ProtocoloDTO(); | ||
| 1086 | - $objProtocoloDTO->setDblIdProtocolo($dblIdProtocolo); | ||
| 1087 | - $objProtocoloDTO->retStrStaEstado(); | 1078 | + $objProtocoloDTO = new ProtocoloDTO(); |
| 1079 | + $objProtocoloDTO->setDblIdProtocolo($dblIdProtocolo); | ||
| 1080 | + $objProtocoloDTO->retStrStaEstado(); | ||
| 1088 | 1081 | ||
| 1089 | - $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); | 1082 | + $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); |
| 1090 | 1083 | ||
| 1091 | - if($objProtocoloDTO->getStrStaEstado() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ | ||
| 1092 | - //Instancia o DTO do protocolo | ||
| 1093 | - $objEntradaCancelarDocumentoAPI = new EntradaCancelarDocumentoAPI(); | ||
| 1094 | - $objEntradaCancelarDocumentoAPI->setIdDocumento($dblIdProtocolo); | ||
| 1095 | - $objEntradaCancelarDocumentoAPI->setMotivo('Cancelado pelo remetente'); | ||
| 1096 | - | ||
| 1097 | - $objSeiRN->cancelarDocumento($objEntradaCancelarDocumentoAPI); | 1084 | + if($objProtocoloDTO->getStrStaEstado() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ |
| 1085 | + $objEntradaCancelarDocumentoAPI = new EntradaCancelarDocumentoAPI(); | ||
| 1086 | + $objEntradaCancelarDocumentoAPI->setIdDocumento($dblIdProtocolo); | ||
| 1087 | + $objEntradaCancelarDocumentoAPI->setMotivo('Cancelado pelo remetente'); | ||
| 1088 | + $objSeiRN->cancelarDocumento($objEntradaCancelarDocumentoAPI); | ||
| 1089 | + } | ||
| 1098 | 1090 | ||
| 1099 | - } | ||
| 1100 | - continue; | ||
| 1101 | - } | ||
| 1102 | - } | 1091 | + continue; |
| 1092 | + } | ||
| 1093 | + } | ||
| 1103 | 1094 | ||
| 1104 | - if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)){ | ||
| 1105 | - $objComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; | ||
| 1106 | - $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); | ||
| 1107 | - continue; | ||
| 1108 | - } | 1095 | + if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)){ |
| 1096 | + $objComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; | ||
| 1097 | + $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); | ||
| 1098 | + $objDocumento->idDocumentoSEI = $objComponenteDigitalDTO->getDblIdDocumento(); | ||
| 1099 | + continue; | ||
| 1100 | + } | ||
| 1109 | 1101 | ||
| 1110 | //Validação dos dados dos documentos | 1102 | //Validação dos dados dos documentos |
| 1111 | - if(!isset($objDocumento->especie)){ | ||
| 1112 | - throw new InfraException('Espécie do documento ['.$objDocumento->descricao.'] não informada.'); | ||
| 1113 | -} | 1103 | + if(!isset($objDocumento->especie)){ |
| 1104 | + throw new InfraException('Espécie do documento ['.$objDocumento->descricao.'] não informada.'); | ||
| 1105 | + } | ||
| 1114 | 1106 | ||
| 1115 | -//--------------------------------------------------------------------------------------------------- | 1107 | + $objDocumentoDTO = new DocumentoDTO(); |
| 1108 | + $objDocumentoDTO->setDblIdDocumento(null); | ||
| 1109 | + $objDocumentoDTO->setDblIdProcedimento($objProcedimentoDTO->getDblIdProcedimento()); | ||
| 1116 | 1110 | ||
| 1117 | -$objDocumentoDTO = new DocumentoDTO(); | ||
| 1118 | -$objDocumentoDTO->setDblIdDocumento(null); | ||
| 1119 | -$objDocumentoDTO->setDblIdProcedimento($objProcedimentoDTO->getDblIdProcedimento()); | 1111 | + $objSerieDTO = $this->obterSerieMapeada($objDocumento->especie->codigo); |
| 1120 | 1112 | ||
| 1121 | -$objSerieDTO = $this->obterSerieMapeada($objDocumento->especie->codigo); | 1113 | + if ($objSerieDTO==null){ |
| 1114 | + throw new InfraException('Tipo de documento [Espécie '.$objDocumento->especie->codigo.'] não encontrado.'); | ||
| 1115 | + } | ||
| 1122 | 1116 | ||
| 1123 | -if ($objSerieDTO==null){ | ||
| 1124 | - throw new InfraException('Tipo de documento [Espécie '.$objDocumento->especie->codigo.'] não encontrado.'); | ||
| 1125 | -} | 1117 | + if (InfraString::isBolVazia($objDocumento->dataHoraDeProducao)) { |
| 1118 | + $objInfraException->lancarValidacao('Data do documento não informada.'); | ||
| 1119 | + } | ||
| 1126 | 1120 | ||
| 1127 | -if (InfraString::isBolVazia($objDocumento->dataHoraDeProducao)) { | ||
| 1128 | - $objInfraException->lancarValidacao('Data do documento não informada.'); | ||
| 1129 | -} | 1121 | + $objProcedimentoDTO2 = new ProcedimentoDTO(); |
| 1122 | + $objProcedimentoDTO2->retDblIdProcedimento(); | ||
| 1123 | + $objProcedimentoDTO2->retNumIdUsuarioGeradorProtocolo(); | ||
| 1124 | + $objProcedimentoDTO2->retNumIdTipoProcedimento(); | ||
| 1125 | + $objProcedimentoDTO2->retStrStaNivelAcessoGlobalProtocolo(); | ||
| 1126 | + $objProcedimentoDTO2->retStrProtocoloProcedimentoFormatado(); | ||
| 1127 | + $objProcedimentoDTO2->retNumIdTipoProcedimento(); | ||
| 1128 | + $objProcedimentoDTO2->retStrNomeTipoProcedimento(); | ||
| 1129 | + $objProcedimentoDTO2->adicionarCriterio(array('IdProcedimento','ProtocoloProcedimentoFormatado','ProtocoloProcedimentoFormatadoPesquisa'), | ||
| 1130 | + array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL), | ||
| 1131 | + array($objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento()), | ||
| 1132 | + array(InfraDTO::$OPER_LOGICO_OR,InfraDTO::$OPER_LOGICO_OR)); | ||
| 1130 | 1133 | ||
| 1131 | -$objProcedimentoDTO2 = new ProcedimentoDTO(); | ||
| 1132 | -$objProcedimentoDTO2->retDblIdProcedimento(); | ||
| 1133 | -$objProcedimentoDTO2->retNumIdUsuarioGeradorProtocolo(); | ||
| 1134 | -$objProcedimentoDTO2->retNumIdTipoProcedimento(); | ||
| 1135 | -$objProcedimentoDTO2->retStrStaNivelAcessoGlobalProtocolo(); | ||
| 1136 | -$objProcedimentoDTO2->retStrProtocoloProcedimentoFormatado(); | ||
| 1137 | -$objProcedimentoDTO2->retNumIdTipoProcedimento(); | ||
| 1138 | -$objProcedimentoDTO2->retStrNomeTipoProcedimento(); | ||
| 1139 | -$objProcedimentoDTO2->adicionarCriterio(array('IdProcedimento','ProtocoloProcedimentoFormatado','ProtocoloProcedimentoFormatadoPesquisa'), | ||
| 1140 | - array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL), | ||
| 1141 | - array($objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento(),$objDocumentoDTO->getDblIdProcedimento()), | ||
| 1142 | - array(InfraDTO::$OPER_LOGICO_OR,InfraDTO::$OPER_LOGICO_OR)); | ||
| 1143 | - | ||
| 1144 | -$objProcedimentoRN = new ProcedimentoRN(); | ||
| 1145 | -$objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO2); | ||
| 1146 | - | ||
| 1147 | -if ($objProcedimentoDTO==null){ | ||
| 1148 | - throw new InfraException('Processo ['.$objDocumentoDTO->getDblIdProcedimento().'] não encontrado.'); | ||
| 1149 | -} | 1134 | + $objProcedimentoRN = new ProcedimentoRN(); |
| 1135 | + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO2); | ||
| 1150 | 1136 | ||
| 1151 | -$objDocumentoDTO->setDblIdProcedimento($objProcedimentoDTO->getDblIdProcedimento()); | ||
| 1152 | -$objDocumentoDTO->setNumIdSerie($objSerieDTO->getNumIdSerie()); | ||
| 1153 | -$objDocumentoDTO->setStrNomeSerie($objSerieDTO->getStrNome()); | ||
| 1154 | - | ||
| 1155 | -$objDocumentoDTO->setDblIdDocumentoEdoc(null); | ||
| 1156 | -$objDocumentoDTO->setDblIdDocumentoEdocBase(null); | ||
| 1157 | -$objDocumentoDTO->setNumIdUnidadeResponsavel($objUnidadeDTO->getNumIdUnidade()); | ||
| 1158 | -$objDocumentoDTO->setNumIdTipoConferencia(null); | ||
| 1159 | -$objDocumentoDTO->setStrConteudo(null); | ||
| 1160 | -$objDocumentoDTO->setStrStaDocumento(DocumentoRN::$TD_EXTERNO); | ||
| 1161 | - // $objDocumentoDTO->setNumVersaoLock(0); | ||
| 1162 | - | ||
| 1163 | -$objProtocoloDTO = new ProtocoloDTO(); | ||
| 1164 | -$objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); | ||
| 1165 | -$objProtocoloDTO->setDblIdProtocolo(null); | ||
| 1166 | -$objProtocoloDTO->setStrStaProtocolo(ProtocoloRN::$TP_DOCUMENTO_RECEBIDO); | ||
| 1167 | - | ||
| 1168 | -if($objDocumento->descricao != '***'){ | ||
| 1169 | - $objProtocoloDTO->setStrDescricao(utf8_decode($objDocumento->descricao)); | ||
| 1170 | - $objDocumentoDTO->setStrNumero(utf8_decode($objDocumento->descricao)); | ||
| 1171 | -}else{ | ||
| 1172 | - $objProtocoloDTO->setStrDescricao(""); | ||
| 1173 | - $objDocumentoDTO->setStrNumero(""); | ||
| 1174 | -} | ||
| 1175 | - //TODO: Avaliar regra de formação do número do documento | 1137 | + if ($objProcedimentoDTO==null){ |
| 1138 | + throw new InfraException('Processo ['.$objDocumentoDTO->getDblIdProcedimento().'] não encontrado.'); | ||
| 1139 | + } | ||
| 1176 | 1140 | ||
| 1177 | -$objProtocoloDTO->setStrStaNivelAcessoLocal($this->obterNivelSigiloSEI($objDocumento->nivelDeSigilo)); | ||
| 1178 | -$objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($objDocumento->dataHoraDeProducao)); | ||
| 1179 | -$objProtocoloDTO->setArrObjAnexoDTO(array()); | ||
| 1180 | -$objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array()); | ||
| 1181 | -$objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array()); | ||
| 1182 | -$objProtocoloDTO->setArrObjParticipanteDTO(array()); | 1141 | + $objDocumentoDTO->setDblIdProcedimento($objProcedimentoDTO->getDblIdProcedimento()); |
| 1142 | + $objDocumentoDTO->setNumIdSerie($objSerieDTO->getNumIdSerie()); | ||
| 1143 | + $objDocumentoDTO->setStrNomeSerie($objSerieDTO->getStrNome()); | ||
| 1144 | + | ||
| 1145 | + $objDocumentoDTO->setDblIdDocumentoEdoc(null); | ||
| 1146 | + $objDocumentoDTO->setDblIdDocumentoEdocBase(null); | ||
| 1147 | + $objDocumentoDTO->setNumIdUnidadeResponsavel($objUnidadeDTO->getNumIdUnidade()); | ||
| 1148 | + $objDocumentoDTO->setNumIdTipoConferencia(null); | ||
| 1149 | + $objDocumentoDTO->setStrConteudo(null); | ||
| 1150 | + $objDocumentoDTO->setStrStaDocumento(DocumentoRN::$TD_EXTERNO); | ||
| 1151 | + | ||
| 1152 | + $objProtocoloDTO = new ProtocoloDTO(); | ||
| 1153 | + $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); | ||
| 1154 | + $objProtocoloDTO->setDblIdProtocolo(null); | ||
| 1155 | + $objProtocoloDTO->setStrStaProtocolo(ProtocoloRN::$TP_DOCUMENTO_RECEBIDO); | ||
| 1156 | + | ||
| 1157 | + if($objDocumento->descricao != '***'){ | ||
| 1158 | + $objProtocoloDTO->setStrDescricao(utf8_decode($objDocumento->descricao)); | ||
| 1159 | + $objDocumentoDTO->setStrNumero(utf8_decode($objDocumento->descricao)); | ||
| 1160 | + }else{ | ||
| 1161 | + $objProtocoloDTO->setStrDescricao(""); | ||
| 1162 | + $objDocumentoDTO->setStrNumero(""); | ||
| 1163 | + } | ||
| 1164 | + | ||
| 1165 | + //TODO: Avaliar regra de formação do número do documento | ||
| 1166 | + $objProtocoloDTO->setStrStaNivelAcessoLocal($this->obterNivelSigiloSEI($objDocumento->nivelDeSigilo)); | ||
| 1167 | + $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($objDocumento->dataHoraDeProducao)); | ||
| 1168 | + $objProtocoloDTO->setArrObjAnexoDTO(array()); | ||
| 1169 | + $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array()); | ||
| 1170 | + $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array()); | ||
| 1171 | + $objProtocoloDTO->setArrObjParticipanteDTO(array()); | ||
| 1183 | 1172 | ||
| 1184 | //TODO: Analisar se o modelo de dados do PEN possui destinatários específicos para os documentos | 1173 | //TODO: Analisar se o modelo de dados do PEN possui destinatários específicos para os documentos |
| 1185 | //caso não possua, analisar o repasse de tais informações via parãmetros adicionais | 1174 | //caso não possua, analisar o repasse de tais informações via parãmetros adicionais |
| 1175 | + $objObservacaoDTO = new ObservacaoDTO(); | ||
| 1176 | + $objObservacaoDTO->setStrDescricao("Número SEI do Documento na Origem: ".$objDocumento->produtor->numeroDeIdentificacao); | ||
| 1177 | + $objProtocoloDTO->setArrObjObservacaoDTO(array($objObservacaoDTO)); | ||
| 1186 | 1178 | ||
| 1187 | -$objObservacaoDTO = new ObservacaoDTO(); | ||
| 1188 | -$objObservacaoDTO->setStrDescricao("Número SEI do Documento na Origem: ".$objDocumento->produtor->numeroDeIdentificacao); | ||
| 1189 | -$objProtocoloDTO->setArrObjObservacaoDTO(array($objObservacaoDTO)); | ||
| 1190 | - | ||
| 1191 | - | ||
| 1192 | -$bolReabriuAutomaticamente = false; | ||
| 1193 | -if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) { | ||
| 1194 | - | ||
| 1195 | - $objAtividadeDTO = new AtividadeDTO(); | ||
| 1196 | - $objAtividadeDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1197 | - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | 1179 | + $bolReabriuAutomaticamente = false; |
| 1180 | + if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_PUBLICO || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) { | ||
| 1181 | + $objAtividadeDTO = new AtividadeDTO(); | ||
| 1182 | + $objAtividadeDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1183 | + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1198 | 1184 | ||
| 1199 | //TODO: Possivelmente, essa regra é desnecessária já que o processo pode ser enviado para outra unidade do órgão através da expedição | 1185 | //TODO: Possivelmente, essa regra é desnecessária já que o processo pode ser enviado para outra unidade do órgão através da expedição |
| 1200 | - $objAtividadeRN = new AtividadeRN(); | ||
| 1201 | - if ($objAtividadeRN->contarRN0035($objAtividadeDTO) == 0) { | ||
| 1202 | - throw new InfraException('Unidade '.$objUnidadeDTO->getStrSigla().' não possui acesso ao Procedimento '.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'.'); | ||
| 1203 | - } | ||
| 1204 | - | ||
| 1205 | - $objAtividadeDTO = new AtividadeDTO(); | ||
| 1206 | - $objAtividadeDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1207 | - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1208 | - $objAtividadeDTO->setDthConclusao(null); | ||
| 1209 | - | ||
| 1210 | - if ($objAtividadeRN->contarRN0035($objAtividadeDTO) == 0) { | ||
| 1211 | - //reabertura automática | ||
| 1212 | - $objReabrirProcessoDTO = new ReabrirProcessoDTO(); | ||
| 1213 | - $objReabrirProcessoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1214 | - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1215 | - $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1216 | - $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); | ||
| 1217 | - $bolReabriuAutomaticamente = true; | ||
| 1218 | - } | ||
| 1219 | -} | 1186 | + $objAtividadeRN = new AtividadeRN(); |
| 1187 | + if ($objAtividadeRN->contarRN0035($objAtividadeDTO) == 0) { | ||
| 1188 | + throw new InfraException('Unidade '.$objUnidadeDTO->getStrSigla().' não possui acesso ao Procedimento '.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'.'); | ||
| 1189 | + } | ||
| 1220 | 1190 | ||
| 1221 | - //$objOperacaoServicoDTO = new OperacaoServicoDTO(); | ||
| 1222 | - //$this->adicionarCriteriosUnidadeProcessoDocumento ($objOperacaoServicoDTO,$objUnidadeDTO,$objProcedimentoDTO,$objDocumentoDTO); | ||
| 1223 | - //$objOperacaoServicoDTO->setNumStaOperacaoServico(OperacaoServicoRN::$TS_INCLUIR_DOCUMENTO); | ||
| 1224 | - //$objOperacaoServicoDTO->setNumIdServico($objServicoDTO->getNumIdServico()); | ||
| 1225 | - | ||
| 1226 | - //$objOperacaoServicoRN = new OperacaoServicoRN(); | ||
| 1227 | - //if ($objOperacaoServicoRN->contar($objOperacaoServicoDTO)==0){ | ||
| 1228 | - // $objInfraException->lancarValidacao('Nenhuma operação configurada para inclusão de documento do Tipo ['.$objSerieDTO->getStrNome().'] no Tipo de Processo ['.$objProcedimentoDTO->getStrNomeTipoProcedimento().'] na Unidade ['.$objUnidadeDTO->getStrSigla().'] pelo Serviço ['.$objServicoDTO->getStrIdentificacao().'] do Sistema ['.$objServicoDTO->getStrSiglaUsuario().'].'); | ||
| 1229 | - //} | ||
| 1230 | - | ||
| 1231 | -$objTipoProcedimentoDTO = new TipoProcedimentoDTO(); | ||
| 1232 | -$objTipoProcedimentoDTO->retStrStaNivelAcessoSugestao(); | ||
| 1233 | -$objTipoProcedimentoDTO->retStrStaGrauSigiloSugestao(); | ||
| 1234 | -$objTipoProcedimentoDTO->retNumIdHipoteseLegalSugestao(); | ||
| 1235 | -$objTipoProcedimentoDTO->setNumIdTipoProcedimento($objProcedimentoDTO->getNumIdTipoProcedimento()); | ||
| 1236 | - | ||
| 1237 | -$objTipoProcedimentoRN = new TipoProcedimentoRN(); | ||
| 1238 | -$objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); | ||
| 1239 | - | ||
| 1240 | -if (InfraString::isBolVazia($objDocumentoDTO->getObjProtocoloDTO()->getStrStaNivelAcessoLocal()) || $objDocumentoDTO->getObjProtocoloDTO()->getStrStaNivelAcessoLocal()==$objTipoProcedimentoDTO->getStrStaNivelAcessoSugestao()) { | ||
| 1241 | - $objDocumentoDTO->getObjProtocoloDTO()->setStrStaNivelAcessoLocal($objTipoProcedimentoDTO->getStrStaNivelAcessoSugestao()); | ||
| 1242 | - $objDocumentoDTO->getObjProtocoloDTO()->setStrStaGrauSigilo($objTipoProcedimentoDTO->getStrStaGrauSigiloSugestao()); | ||
| 1243 | - $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($objTipoProcedimentoDTO->getNumIdHipoteseLegalSugestao()); | ||
| 1244 | -} | 1191 | + $objAtividadeDTO = new AtividadeDTO(); |
| 1192 | + $objAtividadeDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1193 | + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1194 | + $objAtividadeDTO->setDthConclusao(null); | ||
| 1195 | + | ||
| 1196 | + if ($objAtividadeRN->contarRN0035($objAtividadeDTO) == 0) { | ||
| 1197 | + $objReabrirProcessoDTO = new ReabrirProcessoDTO(); | ||
| 1198 | + $objReabrirProcessoDTO->setDblIdProcedimento($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1199 | + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1200 | + $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1201 | + $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); | ||
| 1202 | + $bolReabriuAutomaticamente = true; | ||
| 1203 | + } | ||
| 1204 | + } | ||
| 1245 | 1205 | ||
| 1246 | -if ($this->obterNivelSigiloSEI($objDocumento->nivelDeSigilo) == ProtocoloRN::$NA_RESTRITO) { | ||
| 1247 | - $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); | ||
| 1248 | - $objPenParametroRN = new PenParametroRN(); | ||
| 1249 | - $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); | 1206 | + $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); |
| 1207 | + $objTipoProcedimentoDTO->retStrStaNivelAcessoSugestao(); | ||
| 1208 | + $objTipoProcedimentoDTO->retStrStaGrauSigiloSugestao(); | ||
| 1209 | + $objTipoProcedimentoDTO->retNumIdHipoteseLegalSugestao(); | ||
| 1210 | + $objTipoProcedimentoDTO->setNumIdTipoProcedimento($objProcedimentoDTO->getNumIdTipoProcedimento()); | ||
| 1250 | 1211 | ||
| 1251 | - if (!isset($objDocumento->hipoteseLegal) || (isset($objDocumento->hipoteseLegal) && empty($objDocumento->hipoteseLegal->identificacao))) { | ||
| 1252 | - $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($numIdHipoteseLegalPadrao); | ||
| 1253 | - } else { | 1212 | + $objTipoProcedimentoRN = new TipoProcedimentoRN(); |
| 1213 | + $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); | ||
| 1254 | 1214 | ||
| 1255 | - $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($objDocumento->hipoteseLegal->identificacao); | ||
| 1256 | - if (empty($numIdHipoteseLegal)) { | ||
| 1257 | - $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($numIdHipoteseLegalPadrao); | ||
| 1258 | - } else { | ||
| 1259 | - $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($numIdHipoteseLegal); | ||
| 1260 | - } | ||
| 1261 | - } | ||
| 1262 | -} | 1215 | + if (InfraString::isBolVazia($objDocumentoDTO->getObjProtocoloDTO()->getStrStaNivelAcessoLocal()) || $objDocumentoDTO->getObjProtocoloDTO()->getStrStaNivelAcessoLocal()==$objTipoProcedimentoDTO->getStrStaNivelAcessoSugestao()) { |
| 1216 | + $objDocumentoDTO->getObjProtocoloDTO()->setStrStaNivelAcessoLocal($objTipoProcedimentoDTO->getStrStaNivelAcessoSugestao()); | ||
| 1217 | + $objDocumentoDTO->getObjProtocoloDTO()->setStrStaGrauSigilo($objTipoProcedimentoDTO->getStrStaGrauSigiloSugestao()); | ||
| 1218 | + $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($objTipoProcedimentoDTO->getNumIdHipoteseLegalSugestao()); | ||
| 1219 | + } | ||
| 1263 | 1220 | ||
| 1264 | -$objDocumentoDTO->getObjProtocoloDTO()->setArrObjParticipanteDTO($this->prepararParticipantes($objDocumentoDTO->getObjProtocoloDTO()->getArrObjParticipanteDTO())); | 1221 | + if ($this->obterNivelSigiloSEI($objDocumento->nivelDeSigilo) == ProtocoloRN::$NA_RESTRITO) { |
| 1222 | + $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); | ||
| 1223 | + $objPenParametroRN = new PenParametroRN(); | ||
| 1224 | + $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); | ||
| 1265 | 1225 | ||
| 1266 | -$objDocumentoRN = new DocumentoRN(); | 1226 | + if (!isset($objDocumento->hipoteseLegal) || (isset($objDocumento->hipoteseLegal) && empty($objDocumento->hipoteseLegal->identificacao))) { |
| 1227 | + $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($numIdHipoteseLegalPadrao); | ||
| 1228 | + } else { | ||
| 1267 | 1229 | ||
| 1268 | -$strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); | ||
| 1269 | -$objDocumentoDTO->setStrConteudo(null); | ||
| 1270 | - //$objDocumentoDTO->setStrSinFormulario('N'); | 1230 | + $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($objDocumento->hipoteseLegal->identificacao); |
| 1231 | + if (empty($numIdHipoteseLegal)) { | ||
| 1232 | + $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($numIdHipoteseLegalPadrao); | ||
| 1233 | + } else { | ||
| 1234 | + $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($numIdHipoteseLegal); | ||
| 1235 | + } | ||
| 1236 | + } | ||
| 1237 | + } | ||
| 1271 | 1238 | ||
| 1272 | -$objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1273 | -$objDocumentoDTO->setStrSinBloqueado('S'); | 1239 | + $objDocumentoDTO->getObjProtocoloDTO()->setArrObjParticipanteDTO($this->prepararParticipantes($objDocumentoDTO->getObjProtocoloDTO()->getArrObjParticipanteDTO())); |
| 1274 | 1240 | ||
| 1275 | - //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto | ||
| 1276 | -$this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); | ||
| 1277 | -$objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO); | 1241 | + $objDocumentoRN = new DocumentoRN(); |
| 1242 | + $strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); | ||
| 1243 | + $objDocumentoDTO->setStrConteudo(null); | ||
| 1244 | + $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1245 | + $objDocumentoDTO->setStrSinBloqueado('S'); | ||
| 1278 | 1246 | ||
| 1279 | -$objAtividadeDTOVisualizacao = new AtividadeDTO(); | ||
| 1280 | -$objAtividadeDTOVisualizacao->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1281 | -$objAtividadeDTOVisualizacao->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | 1247 | + //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto |
| 1248 | + $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); | ||
| 1249 | + $objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO); | ||
| 1282 | 1250 | ||
| 1283 | -if (!$bolReabriuAutomaticamente){ | ||
| 1284 | - $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_ATENCAO); | ||
| 1285 | -}else{ | ||
| 1286 | - $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO | AtividadeRN::$TV_ATENCAO); | ||
| 1287 | -} | 1251 | + $objAtividadeDTOVisualizacao = new AtividadeDTO(); |
| 1252 | + $objAtividadeDTOVisualizacao->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); | ||
| 1253 | + $objAtividadeDTOVisualizacao->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1288 | 1254 | ||
| 1289 | -$objAtividadeRN = new AtividadeRN(); | ||
| 1290 | -$objAtividadeRN->atualizarVisualizacaoUnidade($objAtividadeDTOVisualizacao); | 1255 | + if (!$bolReabriuAutomaticamente){ |
| 1256 | + $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_ATENCAO); | ||
| 1257 | + }else{ | ||
| 1258 | + $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO | AtividadeRN::$TV_ATENCAO); | ||
| 1259 | + } | ||
| 1291 | 1260 | ||
| 1292 | -$objDocumento->idDocumentoSEI = $objDocumentoDTO->getDblIdDocumento(); | ||
| 1293 | -$arrObjDocumentoDTO[] = $objDocumentoDTO; | 1261 | + $objAtividadeRN = new AtividadeRN(); |
| 1262 | + $objAtividadeRN->atualizarVisualizacaoUnidade($objAtividadeDTOVisualizacao); | ||
| 1294 | 1263 | ||
| 1295 | -if(isset($objDocumento->retirado) && $objDocumento->retirado === true) { | ||
| 1296 | - $this->documentosRetirados[] = $objDocumento->idDocumentoSEI; | ||
| 1297 | -} | 1264 | + $objDocumento->idDocumentoSEI = $objDocumentoDTO->getDblIdDocumento(); |
| 1265 | + $arrObjDocumentoDTO[] = $objDocumentoDTO; | ||
| 1298 | 1266 | ||
| 1299 | -} | 1267 | + if(isset($objDocumento->retirado) && $objDocumento->retirado === true) { |
| 1268 | + $this->documentosRetirados[] = $objDocumento->idDocumentoSEI; | ||
| 1269 | + } | ||
| 1270 | + } | ||
| 1300 | 1271 | ||
| 1301 | -foreach($this->documentosRetirados as $documentoCancelado){ | 1272 | + foreach($this->documentosRetirados as $documentoCancelado){ |
| 1302 | //Instancia o DTO do protocolo | 1273 | //Instancia o DTO do protocolo |
| 1303 | - $objEntradaCancelarDocumentoAPI = new EntradaCancelarDocumentoAPI(); | ||
| 1304 | - $objEntradaCancelarDocumentoAPI->setIdDocumento($documentoCancelado); | ||
| 1305 | - $objEntradaCancelarDocumentoAPI->setMotivo('Cancelado pelo remetente'); | ||
| 1306 | - $objSeiRN = new SeiRN(); | ||
| 1307 | - $objSeiRN->cancelarDocumento($objEntradaCancelarDocumentoAPI); | ||
| 1308 | -} | ||
| 1309 | - | ||
| 1310 | -$objProcedimentoDTO->setArrObjDocumentoDTO($arrObjDocumentoDTO); | 1274 | + $objEntradaCancelarDocumentoAPI = new EntradaCancelarDocumentoAPI(); |
| 1275 | + $objEntradaCancelarDocumentoAPI->setIdDocumento($documentoCancelado); | ||
| 1276 | + $objEntradaCancelarDocumentoAPI->setMotivo('Cancelado pelo remetente'); | ||
| 1277 | + $objSeiRN = new SeiRN(); | ||
| 1278 | + $objSeiRN->cancelarDocumento($objEntradaCancelarDocumentoAPI); | ||
| 1279 | + } | ||
| 1311 | 1280 | ||
| 1312 | - /* if($numIdUnidadeAtual != $numIdUnidadeGeradora){ | ||
| 1313 | - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $numIdUnidadeAtual); | ||
| 1314 | - } */ | 1281 | + $objProcedimentoDTO->setArrObjDocumentoDTO($arrObjDocumentoDTO); |
| 1315 | } | 1282 | } |
| 1316 | 1283 | ||
| 1317 | //TODO: Método deverá poderá ser transferido para a classe responsável por fazer o recebimento dos componentes digitais | 1284 | //TODO: Método deverá poderá ser transferido para a classe responsável por fazer o recebimento dos componentes digitais |
| 1318 | private function atribuirComponentesDigitais(DocumentoDTO $parObjDocumentoDTO, $parArrObjComponentesDigitais) | 1285 | private function atribuirComponentesDigitais(DocumentoDTO $parObjDocumentoDTO, $parArrObjComponentesDigitais) |
| 1319 | { | 1286 | { |
| 1320 | if(!isset($parArrObjComponentesDigitais)) { | 1287 | if(!isset($parArrObjComponentesDigitais)) { |
| 1321 | - throw new InfraException('Componentes digitais do documento não informado.'); | ||
| 1322 | - } | 1288 | + throw new InfraException('Componentes digitais do documento não informado.'); |
| 1289 | + } | ||
| 1323 | 1290 | ||
| 1324 | //TODO: Aplicar mesmas validações realizadas no momento do upload de um documento InfraPagina::processarUpload | 1291 | //TODO: Aplicar mesmas validações realizadas no momento do upload de um documento InfraPagina::processarUpload |
| 1325 | //TODO: Avaliar a refatoração do código abaixo para impedir a duplicação de regras de negócios | 1292 | //TODO: Avaliar a refatoração do código abaixo para impedir a duplicação de regras de negócios |
| 1326 | 1293 | ||
| 1327 | 1294 | ||
| 1328 | - $arrObjAnexoDTO = array(); | ||
| 1329 | - if($parObjDocumentoDTO->getObjProtocoloDTO()->isSetArrObjAnexoDTO()) { | ||
| 1330 | - $arrObjAnexoDTO = $parObjDocumentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO(); | ||
| 1331 | - } | 1295 | + $arrObjAnexoDTO = array(); |
| 1296 | + if($parObjDocumentoDTO->getObjProtocoloDTO()->isSetArrObjAnexoDTO()) { | ||
| 1297 | + $arrObjAnexoDTO = $parObjDocumentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO(); | ||
| 1298 | + } | ||
| 1332 | 1299 | ||
| 1333 | - if (!is_array($parArrObjComponentesDigitais)) { | ||
| 1334 | - $parArrObjComponentesDigitais = array($parArrObjComponentesDigitais); | ||
| 1335 | - } | 1300 | + if (!is_array($parArrObjComponentesDigitais)) { |
| 1301 | + $parArrObjComponentesDigitais = array($parArrObjComponentesDigitais); | ||
| 1302 | + } | ||
| 1336 | 1303 | ||
| 1337 | //TODO: Tratar a ordem dos componentes digitais | 1304 | //TODO: Tratar a ordem dos componentes digitais |
| 1338 | //... | 1305 | //... |
| 1339 | 1306 | ||
| 1307 | + $parObjDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO); | ||
| 1308 | + } | ||
| 1340 | 1309 | ||
| 1341 | - $parObjDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO); | ||
| 1342 | - } | ||
| 1343 | - | ||
| 1344 | - private function atribuirAssunto(ProtocoloDTO $objProtocoloDTO, $numIdAssunto) | ||
| 1345 | - { | ||
| 1346 | - //TODO: Removido. Serão utilizados os tipos de procedimento enviados atribuídos ao tipo de processo externo (PEN_TIPO_PROCESSO_EXTERNO) | ||
| 1347 | - } | ||
| 1348 | 1310 | ||
| 1349 | - private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $objProcedimento) | ||
| 1350 | - { | ||
| 1351 | - if(isset($objProcedimento->processoApensado)) { | ||
| 1352 | - if(!is_array($objProcedimento->processoApensado)){ | ||
| 1353 | - $objProcedimento->processoApensado = array($objProcedimento->processoApensado); | ||
| 1354 | - } | 1311 | + private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $objProcedimento) |
| 1312 | + { | ||
| 1313 | + if(isset($objProcedimento->processoApensado)) { | ||
| 1314 | + if(!is_array($objProcedimento->processoApensado)){ | ||
| 1315 | + $objProcedimento->processoApensado = array($objProcedimento->processoApensado); | ||
| 1316 | + } | ||
| 1355 | 1317 | ||
| 1356 | - $objProcedimentoDTOApensado = null; | ||
| 1357 | - foreach ($objProcedimento->processoApensado as $processoApensado) { | ||
| 1358 | - $objProcedimentoDTOApensado = $this->gerarProcedimento($objMetadadosProcedimento, $processoApensado); | ||
| 1359 | - $this->relacionarProcedimentos($objProcedimentoDTOPrincipal, $objProcedimentoDTOApensado); | ||
| 1360 | - $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado); | 1318 | + $objProcedimentoDTOApensado = null; |
| 1319 | + foreach ($objProcedimento->processoApensado as $processoApensado) { | ||
| 1320 | + $objProcedimentoDTOApensado = $this->gerarProcedimento($objMetadadosProcedimento, $processoApensado); | ||
| 1321 | + $this->relacionarProcedimentos($objProcedimentoDTOPrincipal, $objProcedimentoDTOApensado); | ||
| 1322 | + $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOApensado); | ||
| 1323 | + } | ||
| 1361 | } | 1324 | } |
| 1362 | } | 1325 | } |
| 1363 | -} | ||
| 1364 | 1326 | ||
| 1365 | 1327 | ||
| 1366 | -private function validarDadosDestinatario(InfraException $objInfraException, $objMetadadosProcedimento) | ||
| 1367 | -{ | ||
| 1368 | - if(isset($objDestinatario)){ | ||
| 1369 | - throw new InfraException("Parâmetro $objDestinatario não informado."); | ||
| 1370 | - } | 1328 | + private function validarDadosDestinatario(InfraException $objInfraException, $objMetadadosProcedimento) |
| 1329 | + { | ||
| 1330 | + if(isset($objDestinatario)){ | ||
| 1331 | + throw new InfraException("Parâmetro $objDestinatario não informado."); | ||
| 1332 | + } | ||
| 1371 | 1333 | ||
| 1372 | - $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; | 1334 | + $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; |
| 1373 | 1335 | ||
| 1374 | - $objPenParametroRN = new PenParametroRN(); | ||
| 1375 | - $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); | ||
| 1376 | - $numIdRepositorioDestinoProcesso = $objDestinatario->identificacaoDoRepositorioDeEstruturas; | ||
| 1377 | - $numeroDeIdentificacaoDaEstrutura = $objDestinatario->numeroDeIdentificacaoDaEstrutura; | 1336 | + $objPenParametroRN = new PenParametroRN(); |
| 1337 | + $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); | ||
| 1338 | + $numIdRepositorioDestinoProcesso = $objDestinatario->identificacaoDoRepositorioDeEstruturas; | ||
| 1339 | + $numeroDeIdentificacaoDaEstrutura = $objDestinatario->numeroDeIdentificacaoDaEstrutura; | ||
| 1378 | 1340 | ||
| 1379 | //Validação do repositório de destino do processo | 1341 | //Validação do repositório de destino do processo |
| 1380 | - if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem){ | ||
| 1381 | - $objInfraException->adicionarValidacao("Identificação do repositório de origem do processo [$numIdRepositorioDestinoProcesso] não reconhecida."); | ||
| 1382 | - } | 1342 | + if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem){ |
| 1343 | + $objInfraException->adicionarValidacao("Identificação do repositório de origem do processo [$numIdRepositorioDestinoProcesso] não reconhecida."); | ||
| 1344 | + } | ||
| 1383 | 1345 | ||
| 1384 | //Validação do unidade de destino do processo | 1346 | //Validação do unidade de destino do processo |
| 1385 | - $objUnidadeDTO = new PenUnidadeDTO(); | ||
| 1386 | - $objUnidadeDTO->setNumIdUnidadeRH($numeroDeIdentificacaoDaEstrutura); | ||
| 1387 | - $objUnidadeDTO->setStrSinAtivo('S'); | ||
| 1388 | - $objUnidadeDTO->retNumIdUnidade(); | 1347 | + $objUnidadeDTO = new PenUnidadeDTO(); |
| 1348 | + $objUnidadeDTO->setNumIdUnidadeRH($numeroDeIdentificacaoDaEstrutura); | ||
| 1349 | + $objUnidadeDTO->setStrSinAtivo('S'); | ||
| 1350 | + $objUnidadeDTO->retNumIdUnidade(); | ||
| 1389 | 1351 | ||
| 1390 | - $objUnidadeRN = new UnidadeRN(); | ||
| 1391 | - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); | 1352 | + $objUnidadeRN = new UnidadeRN(); |
| 1353 | + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); | ||
| 1392 | 1354 | ||
| 1393 | - if(!isset($objUnidadeDTO)){ | ||
| 1394 | - $objInfraException->adicionarValidacao("Unidade [Estrutura: {$numeroDeIdentificacaoDaEstrutura}] não configurada para receber processos externos no sistema de destino."); | ||
| 1395 | - } | ||
| 1396 | -} | 1355 | + if(!isset($objUnidadeDTO)){ |
| 1356 | + $objInfraException->adicionarValidacao("Unidade [Estrutura: {$numeroDeIdentificacaoDaEstrutura}] não configurada para receber processos externos no sistema de destino."); | ||
| 1357 | + } | ||
| 1358 | + } | ||
| 1397 | 1359 | ||
| 1398 | -private function validarDadosRemetente(InfraException $objInfraException, $objMetadadosProcedimento){ | 1360 | + private function validarDadosRemetente(InfraException $objInfraException, $objMetadadosProcedimento){ |
| 1399 | 1361 | ||
| 1400 | -} | 1362 | + } |
| 1401 | 1363 | ||
| 1402 | -private function validarDadosProcesso(InfraException $objInfraException, $objMetadadosProcedimento){ | 1364 | + private function validarDadosProcesso(InfraException $objInfraException, $objMetadadosProcedimento){ |
| 1403 | 1365 | ||
| 1404 | -} | 1366 | + } |
| 1405 | 1367 | ||
| 1406 | -private function validarDadosDocumentos(InfraException $objInfraException, $objMetadadosProcedimento){ | 1368 | + private function validarDadosDocumentos(InfraException $objInfraException, $objMetadadosProcedimento){ |
| 1407 | 1369 | ||
| 1408 | -} | 1370 | + } |
| 1409 | 1371 | ||
| 1410 | -private function obterNivelSigiloSEI($strNivelSigiloPEN) { | ||
| 1411 | - switch ($strNivelSigiloPEN) { | ||
| 1412 | - | ||
| 1413 | - case ProcessoEletronicoRN::$STA_SIGILO_PUBLICO: return ProtocoloRN::$NA_PUBLICO; | ||
| 1414 | - break; | ||
| 1415 | - case ProcessoEletronicoRN::$STA_SIGILO_RESTRITO: return ProtocoloRN::$NA_RESTRITO; | ||
| 1416 | - break; | ||
| 1417 | - case ProcessoEletronicoRN::$STA_SIGILO_SIGILOSO: return ProtocoloRN::$NA_SIGILOSO; | ||
| 1418 | - break; | ||
| 1419 | - default: | ||
| 1420 | - break; | ||
| 1421 | - } | ||
| 1422 | -} | 1372 | + private function obterNivelSigiloSEI($strNivelSigiloPEN) { |
| 1373 | + switch ($strNivelSigiloPEN) { | ||
| 1374 | + | ||
| 1375 | + case ProcessoEletronicoRN::$STA_SIGILO_PUBLICO: return ProtocoloRN::$NA_PUBLICO; | ||
| 1376 | + break; | ||
| 1377 | + case ProcessoEletronicoRN::$STA_SIGILO_RESTRITO: return ProtocoloRN::$NA_RESTRITO; | ||
| 1378 | + break; | ||
| 1379 | + case ProcessoEletronicoRN::$STA_SIGILO_SIGILOSO: return ProtocoloRN::$NA_SIGILOSO; | ||
| 1380 | + break; | ||
| 1381 | + default: | ||
| 1382 | + break; | ||
| 1383 | + } | ||
| 1384 | + } | ||
| 1423 | 1385 | ||
| 1424 | -private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN) { | 1386 | + private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN) { |
| 1425 | //Atribuí a hipótese legal | 1387 | //Atribuí a hipótese legal |
| 1426 | - $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); | ||
| 1427 | - $objPenParametroRN = new PenParametroRN(); | ||
| 1428 | - $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); | 1388 | + $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); |
| 1389 | + $objPenParametroRN = new PenParametroRN(); | ||
| 1390 | + $numIdHipoteseLegalPadrao = $objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); | ||
| 1429 | 1391 | ||
| 1430 | - $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($parNumIdHipoteseLegalPEN); | 1392 | + $numIdHipoteseLegal = $objHipoteseLegalRecebido->getIdHipoteseLegalSEI($parNumIdHipoteseLegalPEN); |
| 1431 | 1393 | ||
| 1432 | - if (empty($numIdHipoteseLegal)) { | ||
| 1433 | - return $numIdHipoteseLegalPadrao; | ||
| 1434 | - } else { | ||
| 1435 | - return $numIdHipoteseLegal; | 1394 | + if (empty($numIdHipoteseLegal)) { |
| 1395 | + return $numIdHipoteseLegalPadrao; | ||
| 1396 | + } else { | ||
| 1397 | + return $numIdHipoteseLegal; | ||
| 1398 | + } | ||
| 1436 | } | 1399 | } |
| 1437 | -} | ||
| 1438 | 1400 | ||
| 1439 | //TODO: Implementar o mapeamento entre as unidade do SEI e Barramento de Serviços (Secretaria de Saúde: 218794) | 1401 | //TODO: Implementar o mapeamento entre as unidade do SEI e Barramento de Serviços (Secretaria de Saúde: 218794) |
| 1440 | -private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) | ||
| 1441 | -{ | ||
| 1442 | - $objUnidadeDTO = new PenUnidadeDTO(); | ||
| 1443 | - $objUnidadeDTO->setNumIdUnidadeRH($numIdentificacaoDaEstrutura); | ||
| 1444 | - $objUnidadeDTO->setStrSinAtivo('S'); | ||
| 1445 | - $objUnidadeDTO->retNumIdUnidade(); | ||
| 1446 | - $objUnidadeDTO->retNumIdOrgao(); | ||
| 1447 | - $objUnidadeDTO->retStrSigla(); | ||
| 1448 | - $objUnidadeDTO->retStrDescricao(); | ||
| 1449 | - | ||
| 1450 | - $objUnidadeRN = new UnidadeRN(); | ||
| 1451 | - return $objUnidadeRN->consultarRN0125($objUnidadeDTO); | ||
| 1452 | -} | 1402 | + private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) |
| 1403 | + { | ||
| 1404 | + $objUnidadeDTO = new PenUnidadeDTO(); | ||
| 1405 | + $objUnidadeDTO->setNumIdUnidadeRH($numIdentificacaoDaEstrutura); | ||
| 1406 | + $objUnidadeDTO->setStrSinAtivo('S'); | ||
| 1407 | + $objUnidadeDTO->retNumIdUnidade(); | ||
| 1408 | + $objUnidadeDTO->retNumIdOrgao(); | ||
| 1409 | + $objUnidadeDTO->retStrSigla(); | ||
| 1410 | + $objUnidadeDTO->retStrDescricao(); | ||
| 1411 | + | ||
| 1412 | + $objUnidadeRN = new UnidadeRN(); | ||
| 1413 | + return $objUnidadeRN->consultarRN0125($objUnidadeDTO); | ||
| 1414 | + } | ||
| 1453 | 1415 | ||
| 1454 | 1416 | ||
| 1455 | - /** | ||
| 1456 | - * | ||
| 1457 | - * @return SerieDTO | ||
| 1458 | - */ | ||
| 1459 | - private function obterSerieMapeada($numCodigoEspecie) | ||
| 1460 | - { | 1417 | + private function obterSerieMapeada($numCodigoEspecie) |
| 1418 | + { | ||
| 1461 | $objSerieDTO = null; | 1419 | $objSerieDTO = null; |
| 1462 | 1420 | ||
| 1463 | $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); | 1421 | $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); |
| @@ -1468,377 +1426,368 @@ private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) | @@ -1468,377 +1426,368 @@ private function obterUnidadeMapeada($numIdentificacaoDaEstrutura) | ||
| 1468 | $objMapDTO = $objGenericoBD->consultar($objMapDTO); | 1426 | $objMapDTO = $objGenericoBD->consultar($objMapDTO); |
| 1469 | 1427 | ||
| 1470 | if(empty($objMapDTO)) { | 1428 | if(empty($objMapDTO)) { |
| 1471 | - $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); | ||
| 1472 | - $objMapDTO->retNumIdSerie(); | ||
| 1473 | - $objMapDTO->setStrPadrao('S'); | ||
| 1474 | - $objMapDTO->setNumMaxRegistrosRetorno(1); | ||
| 1475 | - $objMapDTO = $objGenericoBD->consultar($objMapDTO); | ||
| 1476 | - } | ||
| 1477 | - | ||
| 1478 | - if(!empty($objMapDTO)) { | ||
| 1479 | - $objSerieDTO = new SerieDTO(); | ||
| 1480 | - $objSerieDTO->retStrNome(); | ||
| 1481 | - $objSerieDTO->retNumIdSerie(); | ||
| 1482 | - $objSerieDTO->setNumIdSerie($objMapDTO->getNumIdSerie()); | ||
| 1483 | - | ||
| 1484 | - $objSerieRN = new SerieRN(); | ||
| 1485 | - $objSerieDTO = $objSerieRN->consultarRN0644($objSerieDTO); | ||
| 1486 | - } | ||
| 1487 | - | ||
| 1488 | - return $objSerieDTO; | ||
| 1489 | - } | ||
| 1490 | - | ||
| 1491 | - private function relacionarProcedimentos($objProcedimentoDTO1, $objProcedimentoDTO2) | ||
| 1492 | - { | ||
| 1493 | - if(!isset($objProcedimentoDTO1) || !isset($objProcedimentoDTO1)) { | ||
| 1494 | - throw new InfraException('Parâmetro $objProcedimentoDTO não informado.'); | ||
| 1495 | - } | ||
| 1496 | - | ||
| 1497 | - $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); | ||
| 1498 | - $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($objProcedimentoDTO2->getDblIdProcedimento()); | ||
| 1499 | - $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO1->getDblIdProcedimento()); | ||
| 1500 | - $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_RELACIONADO); | ||
| 1501 | - $objRelProtocoloProtocoloDTO->setStrMotivo(self::STR_APENSACAO_PROCEDIMENTOS); | ||
| 1502 | - | ||
| 1503 | - $objProcedimentoRN = new ProcedimentoRN(); | ||
| 1504 | - $objProcedimentoRN->relacionarProcedimentoRN1020($objRelProtocoloProtocoloDTO); | ||
| 1505 | -} | 1429 | + $objMapDTO = new PenRelTipoDocMapRecebidoDTO(); |
| 1430 | + $objMapDTO->retNumIdSerie(); | ||
| 1431 | + $objMapDTO->setStrPadrao('S'); | ||
| 1432 | + $objMapDTO->setNumMaxRegistrosRetorno(1); | ||
| 1433 | + $objMapDTO = $objGenericoBD->consultar($objMapDTO); | ||
| 1434 | + } | ||
| 1435 | + | ||
| 1436 | + if(!empty($objMapDTO)) { | ||
| 1437 | + $objSerieDTO = new SerieDTO(); | ||
| 1438 | + $objSerieDTO->retStrNome(); | ||
| 1439 | + $objSerieDTO->retNumIdSerie(); | ||
| 1440 | + $objSerieDTO->setNumIdSerie($objMapDTO->getNumIdSerie()); | ||
| 1441 | + | ||
| 1442 | + $objSerieRN = new SerieRN(); | ||
| 1443 | + $objSerieDTO = $objSerieRN->consultarRN0644($objSerieDTO); | ||
| 1444 | + } | ||
| 1445 | + | ||
| 1446 | + return $objSerieDTO; | ||
| 1447 | + } | ||
| 1448 | + | ||
| 1449 | + private function relacionarProcedimentos($objProcedimentoDTO1, $objProcedimentoDTO2) | ||
| 1450 | + { | ||
| 1451 | + if(!isset($objProcedimentoDTO1) || !isset($objProcedimentoDTO1)) { | ||
| 1452 | + throw new InfraException('Parâmetro $objProcedimentoDTO não informado.'); | ||
| 1453 | + } | ||
| 1454 | + | ||
| 1455 | + $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); | ||
| 1456 | + $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($objProcedimentoDTO2->getDblIdProcedimento()); | ||
| 1457 | + $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO1->getDblIdProcedimento()); | ||
| 1458 | + $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_RELACIONADO); | ||
| 1459 | + $objRelProtocoloProtocoloDTO->setStrMotivo(self::STR_APENSACAO_PROCEDIMENTOS); | ||
| 1460 | + | ||
| 1461 | + $objProcedimentoRN = new ProcedimentoRN(); | ||
| 1462 | + $objProcedimentoRN->relacionarProcedimentoRN1020($objRelProtocoloProtocoloDTO); | ||
| 1463 | + } | ||
| 1506 | 1464 | ||
| 1507 | //TODO: Método identico ao localizado na classe SeiRN:2214 | 1465 | //TODO: Método identico ao localizado na classe SeiRN:2214 |
| 1508 | //Refatorar código para evitar problemas de manutenção | 1466 | //Refatorar código para evitar problemas de manutenção |
| 1509 | -private function prepararParticipantes($arrObjParticipanteDTO) | ||
| 1510 | -{ | ||
| 1511 | - $objContatoRN = new ContatoRN(); | ||
| 1512 | - $objUsuarioRN = new UsuarioRN(); | 1467 | + private function prepararParticipantes($arrObjParticipanteDTO) |
| 1468 | + { | ||
| 1469 | + $objContatoRN = new ContatoRN(); | ||
| 1470 | + $objUsuarioRN = new UsuarioRN(); | ||
| 1471 | + | ||
| 1472 | + foreach($arrObjParticipanteDTO as $objParticipanteDTO) { | ||
| 1513 | 1473 | ||
| 1514 | - foreach($arrObjParticipanteDTO as $objParticipanteDTO) { | 1474 | + $objContatoDTO = new ContatoDTO(); |
| 1475 | + $objContatoDTO->retNumIdContato(); | ||
| 1515 | 1476 | ||
| 1516 | - $objContatoDTO = new ContatoDTO(); | ||
| 1517 | - $objContatoDTO->retNumIdContato(); | 1477 | + if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato()) && !InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { |
| 1478 | + $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); | ||
| 1479 | + $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); | ||
| 1518 | 1480 | ||
| 1519 | - if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato()) && !InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { | ||
| 1520 | - $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); | ||
| 1521 | - $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); | 1481 | + } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato())) { |
| 1482 | + $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); | ||
| 1522 | 1483 | ||
| 1523 | - } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrSiglaContato())) { | ||
| 1524 | - $objContatoDTO->setStrSigla($objParticipanteDTO->getStrSiglaContato()); | 1484 | + } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { |
| 1485 | + $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); | ||
| 1486 | + } else { | ||
| 1487 | + if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_INTERESSADO) { | ||
| 1488 | + throw new InfraException('Interessado vazio ou nulo.'); | ||
| 1489 | + } | ||
| 1490 | + else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_REMETENTE) { | ||
| 1491 | + throw new InfraException('Remetente vazio ou nulo.'); | ||
| 1492 | + } | ||
| 1493 | + else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_DESTINATARIO) { | ||
| 1494 | + throw new InfraException('Destinatário vazio ou nulo.'); | ||
| 1495 | + } | ||
| 1496 | + } | ||
| 1525 | 1497 | ||
| 1526 | - } else if (!InfraString::isBolVazia($objParticipanteDTO->getStrNomeContato())) { | ||
| 1527 | - $objContatoDTO->setStrNome($objParticipanteDTO->getStrNomeContato()); | ||
| 1528 | - } else { | ||
| 1529 | - if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_INTERESSADO) { | ||
| 1530 | - throw new InfraException('Interessado vazio ou nulo.'); | ||
| 1531 | - } | ||
| 1532 | - else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_REMETENTE) { | ||
| 1533 | - throw new InfraException('Remetente vazio ou nulo.'); | ||
| 1534 | - } | ||
| 1535 | - else if ($objParticipanteDTO->getStrStaParticipacao()==ParticipanteRN::$TP_DESTINATARIO) { | ||
| 1536 | - throw new InfraException('Destinatário vazio ou nulo.'); | ||
| 1537 | - } | ||
| 1538 | - } | 1498 | + $arrObjContatoDTO = $objContatoRN->listarRN0325($objContatoDTO); |
| 1499 | + if (count($arrObjContatoDTO)) { | ||
| 1500 | + $objContatoDTO = null; | ||
| 1539 | 1501 | ||
| 1540 | - $arrObjContatoDTO = $objContatoRN->listarRN0325($objContatoDTO); | 1502 | + //preferencia para contatos que representam usuarios |
| 1503 | + foreach($arrObjContatoDTO as $dto) { | ||
| 1504 | + $objUsuarioDTO = new UsuarioDTO(); | ||
| 1505 | + $objUsuarioDTO->setBolExclusaoLogica(false); | ||
| 1506 | + $objUsuarioDTO->setNumIdContato($dto->getNumIdContato()); | ||
| 1507 | + | ||
| 1508 | + if ($objUsuarioRN->contarRN0492($objUsuarioDTO)) { | ||
| 1509 | + $objContatoDTO = $dto; | ||
| 1510 | + break; | ||
| 1511 | + } | ||
| 1512 | + } | ||
| 1541 | 1513 | ||
| 1542 | - if (count($arrObjContatoDTO)) { | 1514 | + //nao achou contato de usuario pega o primeiro retornado |
| 1515 | + if ($objContatoDTO==null) { | ||
| 1516 | + $objContatoDTO = $arrObjContatoDTO[0]; | ||
| 1517 | + } | ||
| 1518 | + } else { | ||
| 1519 | + $objContatoDTO = $objContatoRN->cadastrarContextoTemporario($objContatoDTO); | ||
| 1520 | + } | ||
| 1543 | 1521 | ||
| 1544 | - $objContatoDTO = null; | 1522 | + $objParticipanteDTO->setNumIdContato($objContatoDTO->getNumIdContato()); |
| 1523 | + } | ||
| 1545 | 1524 | ||
| 1546 | - //preferencia para contatos que representam usuarios | ||
| 1547 | - foreach($arrObjContatoDTO as $dto) { | 1525 | + return $arrObjParticipanteDTO; |
| 1526 | + } | ||
| 1548 | 1527 | ||
| 1549 | - $objUsuarioDTO = new UsuarioDTO(); | ||
| 1550 | - $objUsuarioDTO->setBolExclusaoLogica(false); | ||
| 1551 | - $objUsuarioDTO->setNumIdContato($dto->getNumIdContato()); | 1528 | + private function registrarProcedimentoNaoVisualizado(ProcedimentoDTO $parObjProcedimentoDTO) |
| 1529 | + { | ||
| 1530 | + $objAtividadeDTOVisualizacao = new AtividadeDTO(); | ||
| 1531 | + $objAtividadeDTOVisualizacao->setDblIdProtocolo($parObjProcedimentoDTO->getDblIdProcedimento()); | ||
| 1532 | + $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO); | ||
| 1552 | 1533 | ||
| 1553 | - if ($objUsuarioRN->contarRN0492($objUsuarioDTO)) { | ||
| 1554 | - $objContatoDTO = $dto; | ||
| 1555 | - break; | 1534 | + $objAtividadeRN = new AtividadeRN(); |
| 1535 | + $objAtividadeRN->atualizarVisualizacao($objAtividadeDTOVisualizacao); | ||
| 1556 | } | 1536 | } |
| 1557 | -} | ||
| 1558 | 1537 | ||
| 1559 | - //nao achou contato de usuario pega o primeiro retornado | ||
| 1560 | -if ($objContatoDTO==null) { | ||
| 1561 | - $objContatoDTO = $arrObjContatoDTO[0]; | ||
| 1562 | -} | ||
| 1563 | -} else { | ||
| 1564 | - $objContatoDTO = $objContatoRN->cadastrarContextoTemporario($objContatoDTO); | ||
| 1565 | -} | 1538 | + private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDTO, $retransmissao = false) |
| 1539 | + { | ||
| 1540 | + $objAtividadeRN = new PenAtividadeRN(); | ||
| 1541 | + $objInfraException = new InfraException(); | ||
| 1566 | 1542 | ||
| 1567 | -$objParticipanteDTO->setNumIdContato($objContatoDTO->getNumIdContato()); | ||
| 1568 | -} | 1543 | + if(!$parObjProcedimentoDTO->isSetArrObjUnidadeDTO() || count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) == 0) { |
| 1544 | + $objInfraException->lancarValidacao('Unidade de destino do processo não informada.'); | ||
| 1545 | + } | ||
| 1569 | 1546 | ||
| 1570 | -return $arrObjParticipanteDTO; | ||
| 1571 | -} | 1547 | + $arrObjUnidadeDTO = $parObjProcedimentoDTO->getArrObjUnidadeDTO(); |
| 1572 | 1548 | ||
| 1573 | -private function registrarProcedimentoNaoVisualizado(ProcedimentoDTO $parObjProcedimentoDTO) | ||
| 1574 | -{ | ||
| 1575 | - $objAtividadeDTOVisualizacao = new AtividadeDTO(); | ||
| 1576 | - $objAtividadeDTOVisualizacao->setDblIdProtocolo($parObjProcedimentoDTO->getDblIdProcedimento()); | ||
| 1577 | - $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO); | 1549 | + if(count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) > 1) { |
| 1550 | + $objInfraException->lancarValidacao('Não permitido a indicação de múltiplas unidades de destino para um processo recebido externamente.'); | ||
| 1551 | + } | ||
| 1578 | 1552 | ||
| 1579 | - $objAtividadeRN = new AtividadeRN(); | ||
| 1580 | - $objAtividadeRN->atualizarVisualizacao($objAtividadeDTOVisualizacao); | ||
| 1581 | -} | 1553 | + $arrObjUnidadeDTO = array_values($parObjProcedimentoDTO->getArrObjUnidadeDTO()); |
| 1554 | + $objUnidadeDTO = $arrObjUnidadeDTO[0]; | ||
| 1582 | 1555 | ||
| 1583 | -private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDTO, $retransmissao = false) | ||
| 1584 | -{ | ||
| 1585 | - $objAtividadeRN = new PenAtividadeRN(); | ||
| 1586 | - $objInfraException = new InfraException(); | ||
| 1587 | - | ||
| 1588 | - if(!$parObjProcedimentoDTO->isSetArrObjUnidadeDTO() || count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) == 0) { | ||
| 1589 | - $objInfraException->lancarValidacao('Unidade de destino do processo não informada.'); | ||
| 1590 | - } | ||
| 1591 | - | ||
| 1592 | - $arrObjUnidadeDTO = $parObjProcedimentoDTO->getArrObjUnidadeDTO(); | ||
| 1593 | - | ||
| 1594 | - if(count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) > 1) { | ||
| 1595 | - $objInfraException->lancarValidacao('Não permitido a indicação de múltiplas unidades de destino para um processo recebido externamente.'); | ||
| 1596 | - } | ||
| 1597 | - | ||
| 1598 | - $arrObjUnidadeDTO = array_values($parObjProcedimentoDTO->getArrObjUnidadeDTO()); | ||
| 1599 | - $objUnidadeDTO = $arrObjUnidadeDTO[0]; | ||
| 1600 | - | ||
| 1601 | - $objProcedimentoDTO = new ProcedimentoDTO(); | ||
| 1602 | - $objProcedimentoDTO->retDblIdProcedimento(); | ||
| 1603 | - $objProcedimentoDTO->retNumIdTipoProcedimento(); | ||
| 1604 | - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); | ||
| 1605 | - $objProcedimentoDTO->retNumIdTipoProcedimento(); | ||
| 1606 | - $objProcedimentoDTO->retStrNomeTipoProcedimento(); | ||
| 1607 | - $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo(); | ||
| 1608 | -// $objProcedimentoDTO->retStrStaEstadoProtocolo(); | ||
| 1609 | - $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado()); | ||
| 1610 | - | ||
| 1611 | - $objProcedimentoRN = new ProcedimentoRN(); | ||
| 1612 | - $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); | ||
| 1613 | - | ||
| 1614 | - if ($objProcedimentoDTO == null || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_SIGILOSO) { | ||
| 1615 | - $objInfraException->lancarValidacao('Processo ['.$parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'] não encontrado.'); | ||
| 1616 | - } | ||
| 1617 | - | ||
| 1618 | - if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) { | ||
| 1619 | - $objAcessoDTO = new AcessoDTO(); | ||
| 1620 | - $objAcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); | ||
| 1621 | - $objAcessoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); | ||
| 1622 | - | ||
| 1623 | - $objAcessoRN = new AcessoRN(); | ||
| 1624 | - if ($objAcessoRN->contar($objAcessoDTO)==0) { | ||
| 1625 | - // AVALIAR $objInfraException->adicionarValidacao('Unidade ['.$objUnidadeDTO->getStrSigla().'] não possui acesso ao processo ['.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'].'); | ||
| 1626 | - } | ||
| 1627 | - } | ||
| 1628 | - | ||
| 1629 | - $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO(); | ||
| 1630 | - $objPesquisaPendenciaDTO->setDblIdProtocolo(array($objProcedimentoDTO->getDblIdProcedimento())); | ||
| 1631 | - $objPesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1632 | - $objPesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1633 | - | ||
| 1634 | - if($retransmissao){ | ||
| 1635 | - $objAtividadeRN->setStatusPesquisa(false); | 1556 | + $objProcedimentoDTO = new ProcedimentoDTO(); |
| 1557 | + $objProcedimentoDTO->retDblIdProcedimento(); | ||
| 1558 | + $objProcedimentoDTO->retNumIdTipoProcedimento(); | ||
| 1559 | + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); | ||
| 1560 | + $objProcedimentoDTO->retNumIdTipoProcedimento(); | ||
| 1561 | + $objProcedimentoDTO->retStrNomeTipoProcedimento(); | ||
| 1562 | + $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo(); | ||
| 1563 | + $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado($parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado()); | ||
| 1636 | 1564 | ||
| 1637 | -} | 1565 | + $objProcedimentoRN = new ProcedimentoRN(); |
| 1566 | + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); | ||
| 1638 | 1567 | ||
| 1639 | -$objAtividadeDTO2 = new AtividadeDTO(); | ||
| 1640 | -$objAtividadeDTO2->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); | ||
| 1641 | -$objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1642 | -$objAtividadeDTO2->setDthConclusao(null); | 1568 | + if ($objProcedimentoDTO == null || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_SIGILOSO) { |
| 1569 | + $objInfraException->lancarValidacao('Processo ['.$parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'] não encontrado.'); | ||
| 1570 | + } | ||
| 1643 | 1571 | ||
| 1572 | + if ($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo()==ProtocoloRN::$NA_RESTRITO) { | ||
| 1573 | + $objAcessoDTO = new AcessoDTO(); | ||
| 1574 | + $objAcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); | ||
| 1575 | + $objAcessoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); | ||
| 1644 | 1576 | ||
| 1645 | -if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) { | ||
| 1646 | - //reabertura automática | ||
| 1647 | - $objReabrirProcessoDTO = new ReabrirProcessoDTO(); | ||
| 1648 | - $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); | ||
| 1649 | - $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1650 | - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1651 | - $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); | ||
| 1652 | -} | 1577 | + $objAcessoRN = new AcessoRN(); |
| 1578 | + if ($objAcessoRN->contar($objAcessoDTO)==0) { | ||
| 1579 | + // AVALIAR $objInfraException->adicionarValidacao('Unidade ['.$objUnidadeDTO->getStrSigla().'] não possui acesso ao processo ['.$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado().'].'); | ||
| 1580 | + } | ||
| 1581 | + } | ||
| 1582 | + | ||
| 1583 | + $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO(); | ||
| 1584 | + $objPesquisaPendenciaDTO->setDblIdProtocolo(array($objProcedimentoDTO->getDblIdProcedimento())); | ||
| 1585 | + $objPesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1586 | + $objPesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1587 | + | ||
| 1588 | + if($retransmissao){ | ||
| 1589 | + $objAtividadeRN->setStatusPesquisa(false); | ||
| 1590 | + } | ||
| 1591 | + | ||
| 1592 | + $objAtividadeDTO2 = new AtividadeDTO(); | ||
| 1593 | + $objAtividadeDTO2->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); | ||
| 1594 | + $objAtividadeDTO2->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1595 | + $objAtividadeDTO2->setDthConclusao(null); | ||
| 1596 | + | ||
| 1597 | + if ($objAtividadeRN->contarRN0035($objAtividadeDTO2) == 0) { | ||
| 1598 | + //reabertura automática | ||
| 1599 | + $objReabrirProcessoDTO = new ReabrirProcessoDTO(); | ||
| 1600 | + $objReabrirProcessoDTO->setDblIdProcedimento($objAtividadeDTO2->getDblIdProtocolo()); | ||
| 1601 | + $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1602 | + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1603 | + $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); | ||
| 1604 | + } | ||
| 1653 | 1605 | ||
| 1654 | //$objPenAtividadeRN = new PenAtividadeRN(); | 1606 | //$objPenAtividadeRN = new PenAtividadeRN(); |
| 1655 | -$arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO); | 1607 | + $arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO); |
| 1656 | 1608 | ||
| 1657 | -$objInfraException->lancarValidacoes(); | 1609 | + $objInfraException->lancarValidacoes(); |
| 1658 | 1610 | ||
| 1659 | 1611 | ||
| 1660 | -$objEnviarProcessoDTO = new EnviarProcessoDTO(); | ||
| 1661 | -$objEnviarProcessoDTO->setArrAtividadesOrigem($arrObjProcedimentoDTO[0]->getArrObjAtividadeDTO()); | 1612 | + $objEnviarProcessoDTO = new EnviarProcessoDTO(); |
| 1613 | + $objEnviarProcessoDTO->setArrAtividadesOrigem($arrObjProcedimentoDTO[0]->getArrObjAtividadeDTO()); | ||
| 1662 | 1614 | ||
| 1663 | -$objAtividadeDTO = new AtividadeDTO(); | ||
| 1664 | -$objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); | ||
| 1665 | -$objAtividadeDTO->setNumIdUsuario(null); | ||
| 1666 | -$objAtividadeDTO->setNumIdUsuarioOrigem(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1667 | -$objAtividadeDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); | ||
| 1668 | -$objAtividadeDTO->setNumIdUnidadeOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1669 | -$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)); | ||
| 1670 | 1622 | ||
| 1671 | -$objPenParametroRN = new PenParametroRN(); | 1623 | + $objPenParametroRN = new PenParametroRN(); |
| 1672 | 1624 | ||
| 1673 | -$objEnviarProcessoDTO->setStrSinManterAberto('N'); | ||
| 1674 | -$strEnviaEmailNotificacao = $objPenParametroRN->getParametro('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO'); | ||
| 1675 | -$objEnviarProcessoDTO->setStrSinEnviarEmailNotificacao($strEnviaEmailNotificacao); | ||
| 1676 | -$objEnviarProcessoDTO->setStrSinRemoverAnotacoes('S'); | ||
| 1677 | -$objEnviarProcessoDTO->setDtaPrazo(null); | ||
| 1678 | -$objEnviarProcessoDTO->setNumDias(null); | ||
| 1679 | -$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'); | ||
| 1680 | 1632 | ||
| 1681 | -$objAtividadeRN->enviarRN0023($objEnviarProcessoDTO); | 1633 | + $objAtividadeRN->enviarRN0023($objEnviarProcessoDTO); |
| 1682 | 1634 | ||
| 1683 | -} | 1635 | + } |
| 1684 | 1636 | ||
| 1685 | -/* Essa é a função estática de comparação */ | ||
| 1686 | -static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2) | ||
| 1687 | -{ | ||
| 1688 | - $numOrdemDocumento1 = strtolower($parDocumento1->ordem); | ||
| 1689 | - $numOrdemDocumento2 = strtolower($parDocumento2->ordem); | ||
| 1690 | - return $numOrdemDocumento1 - $numOrdemDocumento2; | ||
| 1691 | -} | 1637 | + /* Essa é a função estática de comparação */ |
| 1638 | + static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2) | ||
| 1639 | + { | ||
| 1640 | + $numOrdemDocumento1 = strtolower($parDocumento1->ordem); | ||
| 1641 | + $numOrdemDocumento2 = strtolower($parDocumento2->ordem); | ||
| 1642 | + return $numOrdemDocumento1 - $numOrdemDocumento2; | ||
| 1643 | + } | ||
| 1692 | 1644 | ||
| 1693 | 1645 | ||
| 1694 | -protected function receberTramitesRecusadosControlado($parNumIdentificacaoTramite) | ||
| 1695 | -{ | ||
| 1696 | - try { | ||
| 1697 | - if (empty($parNumIdentificacaoTramite)) { | ||
| 1698 | - throw new InfraException('Parâmetro $parNumIdentificacaoTramite não informado.'); | ||
| 1699 | - } | 1646 | + protected function receberTramitesRecusadosControlado($parNumIdentificacaoTramite) |
| 1647 | + { | ||
| 1648 | + try { | ||
| 1649 | + if (empty($parNumIdentificacaoTramite)) { | ||
| 1650 | + throw new InfraException('Parâmetro $parNumIdentificacaoTramite não informado.'); | ||
| 1651 | + } | ||
| 1700 | 1652 | ||
| 1701 | //Busca os dados do trâmite no barramento | 1653 | //Busca os dados do trâmite no barramento |
| 1702 | - $tramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); | 1654 | + $tramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); |
| 1703 | 1655 | ||
| 1704 | - if(!isset($tramite[0])){ | ||
| 1705 | - throw new InfraException("Não foi encontrado no PEN o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa"); | ||
| 1706 | - } | 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 | + } | ||
| 1707 | 1659 | ||
| 1708 | - $tramite = $tramite[0]; | 1660 | + $tramite = $tramite[0]; |
| 1661 | + | ||
| 1662 | + $objTramiteDTO = new TramiteDTO(); | ||
| 1663 | + $objTramiteDTO->setNumIdTramite($parNumIdentificacaoTramite); | ||
| 1664 | + $objTramiteDTO->retNumIdUnidade(); | ||
| 1665 | + | ||
| 1666 | + $objTramiteBD = new TramiteBD(BancoSEI::getInstance()); | ||
| 1667 | + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); | ||
| 1668 | + | ||
| 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 | + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); | ||
| 1672 | + | ||
| 1673 | + //Busca os dados do procedimento | ||
| 1674 | + $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2); | ||
| 1675 | + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); | ||
| 1676 | + $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE); | ||
| 1677 | + $objProcessoEletronicoDTO->retDblIdProcedimento(); | ||
| 1678 | + $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); | ||
| 1679 | + $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); | ||
| 1680 | + | ||
| 1681 | + //Busca a última atividade de trâmite externo | ||
| 1682 | + $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2); | ||
| 1683 | + $objAtividadeDTO = new AtividadeDTO(); | ||
| 1684 | + $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); | ||
| 1685 | + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); | ||
| 1686 | + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | ||
| 1687 | + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); | ||
| 1688 | + $objAtividadeDTO->retNumIdAtividade(); | ||
| 1689 | + $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco()); | ||
| 1690 | + $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO); | ||
| 1691 | + | ||
| 1692 | + //Busca a unidade de destino | ||
| 1693 | + $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2); | ||
| 1694 | + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); | ||
| 1695 | + $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade()); | ||
| 1696 | + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); | ||
| 1697 | + $objAtributoAndamentoDTO->retStrValor(); | ||
| 1698 | + $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco()); | ||
| 1699 | + $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO); | ||
| 1700 | + | ||
| 1701 | + //Monta o DTO de receber tramite recusado | ||
| 1702 | + $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2); | ||
| 1703 | + $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO(); | ||
| 1704 | + $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite); | ||
| 1705 | + $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); | ||
| 1706 | + $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null); | ||
| 1707 | + $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO)); | ||
| 1708 | + $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa)); | ||
| 1709 | + $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor()); | ||
| 1710 | + | ||
| 1711 | + //Faz o tratamento do processo e do trâmite recusado | ||
| 1712 | + $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2); | ||
| 1713 | + $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO); | ||
| 1714 | + } | ||
| 1709 | 1715 | ||
| 1710 | - $objTramiteDTO = new TramiteDTO(); | ||
| 1711 | - $objTramiteDTO->setNumIdTramite($parNumIdentificacaoTramite); | ||
| 1712 | - $objTramiteDTO->retNumIdUnidade(); | 1716 | + $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $parNumIdentificacaoTramite, 4); |
| 1717 | + $this->objProcessoEletronicoRN->cienciaRecusa($parNumIdentificacaoTramite); | ||
| 1713 | 1718 | ||
| 1714 | - $objTramiteBD = new TramiteBD(BancoSEI::getInstance()); | ||
| 1715 | - $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); | 1719 | + } catch (Exception $e) { |
| 1720 | + $mensagemErro = InfraException::inspecionar($e); | ||
| 1721 | + $this->gravarLogDebug($mensagemErro); | ||
| 1722 | + LogSEI::getInstance()->gravar($mensagemErro); | ||
| 1723 | + throw $e; | ||
| 1724 | + } | ||
| 1725 | + } | ||
| 1716 | 1726 | ||
| 1717 | - if(isset($objTramiteDTO)){ | ||
| 1718 | - //throw new InfraException("Não foi encontrado no sistema o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa"); | ||
| 1719 | - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); | ||
| 1720 | 1727 | ||
| 1721 | - //Busca os dados do procedimento | ||
| 1722 | - $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2); | ||
| 1723 | - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); | ||
| 1724 | - $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE); | ||
| 1725 | - $objProcessoEletronicoDTO->retDblIdProcedimento(); | ||
| 1726 | - $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); | ||
| 1727 | - $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); | 1728 | + protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO) |
| 1729 | + { | ||
| 1730 | + //Verifica se processo está fechado, reabrindo-o caso necessário | ||
| 1731 | + $objAtividadeDTO = new AtividadeDTO(); | ||
| 1732 | + $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1733 | + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1734 | + $objAtividadeDTO->setDthConclusao(null); | ||
| 1735 | + $objAtividadeRN = new AtividadeRN(); | ||
| 1736 | + if ($objAtividadeRN->contarRN0035($objAtividadeDTO) == 0) { | ||
| 1737 | + $this->gravarLogDebug("Reabrindo automaticamente o processo", 4); | ||
| 1738 | + $objReabrirProcessoDTO = new ReabrirProcessoDTO(); | ||
| 1739 | + $objReabrirProcessoDTO->setDblIdProcedimento($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1740 | + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1741 | + $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1742 | + $objProcedimentoRN = new ProcedimentoRN(); | ||
| 1743 | + $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); | ||
| 1744 | + } | ||
| 1728 | 1745 | ||
| 1729 | - //Busca a última atividade de trâmite externo | ||
| 1730 | - $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2); | ||
| 1731 | - $objAtividadeDTO = new AtividadeDTO(); | ||
| 1732 | - $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); | ||
| 1733 | - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); | ||
| 1734 | - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | ||
| 1735 | - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); | ||
| 1736 | - $objAtividadeDTO->retNumIdAtividade(); | ||
| 1737 | - $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco()); | ||
| 1738 | - $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO); | ||
| 1739 | - | ||
| 1740 | - //Busca a unidade de destino | ||
| 1741 | - $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2); | ||
| 1742 | - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); | ||
| 1743 | - $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade()); | ||
| 1744 | - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); | ||
| 1745 | - $objAtributoAndamentoDTO->retStrValor(); | ||
| 1746 | - $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco()); | ||
| 1747 | - $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO); | ||
| 1748 | - | ||
| 1749 | - //Monta o DTO de receber tramite recusado | ||
| 1750 | - $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2); | ||
| 1751 | - $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO(); | ||
| 1752 | - $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite); | ||
| 1753 | - $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); | ||
| 1754 | - $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null); | ||
| 1755 | - $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO)); | ||
| 1756 | - $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa)); | ||
| 1757 | - $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor()); | ||
| 1758 | - | ||
| 1759 | - //Faz o tratamento do processo e do trâmite recusado | ||
| 1760 | - $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2); | ||
| 1761 | - $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO); | 1746 | + //Realiza o desbloqueio do processo |
| 1747 | + $this->gravarLogDebug("Realizando o desbloqueio do processo", 4); | ||
| 1748 | + $objProtocoloDTO = new ProtocoloDTO(); | ||
| 1749 | + $objProtocoloDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1750 | + $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO); | ||
| 1751 | + $objProtocoloRN = new ProtocoloRN(); | ||
| 1752 | + if($objProtocoloRN->contarRN0667($objProtocoloDTO) != 0) { | ||
| 1753 | + ProcessoEletronicoRN::desbloquearProcesso($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1754 | + } else { | ||
| 1755 | + $this->gravarLogDebug("Processo " . $objReceberTramiteRecusadoDTO->getNumIdProtocolo() . " já se encontra desbloqueado!", 6); | ||
| 1762 | } | 1756 | } |
| 1763 | 1757 | ||
| 1764 | - $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $parNumIdentificacaoTramite, 4); | ||
| 1765 | - $this->objProcessoEletronicoRN->cienciaRecusa($parNumIdentificacaoTramite); | 1758 | + //Adiciona um andamento para o trâmite recusado |
| 1759 | + $this->gravarLogDebug("Adicionando andamento para registro da recusa do trâmite", 4); | ||
| 1760 | + $arrObjAtributoAndamentoDTO = array(); | ||
| 1761 | + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); | ||
| 1762 | + $objAtributoAndamentoDTO->setStrNome('MOTIVO'); | ||
| 1763 | + $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrMotivoRecusa()); | ||
| 1764 | + $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); | ||
| 1765 | + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; | ||
| 1766 | 1766 | ||
| 1767 | - } catch (Exception $e) { | ||
| 1768 | - $mensagemErro = InfraException::inspecionar($e); | ||
| 1769 | - $this->gravarLogDebug($mensagemErro); | ||
| 1770 | - LogSEI::getInstance()->gravar($mensagemErro); | ||
| 1771 | - throw $e; | ||
| 1772 | - } | ||
| 1773 | -} | 1767 | + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); |
| 1768 | + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); | ||
| 1769 | + $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrNomeUnidadeDestino()); | ||
| 1770 | + $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); | ||
| 1771 | + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; | ||
| 1774 | 1772 | ||
| 1773 | + $objAtividadeDTO = new AtividadeDTO(); | ||
| 1774 | + $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1775 | + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1776 | + $objAtividadeDTO->setNumIdTarefa($objReceberTramiteRecusadoDTO->getNumIdTarefa()); | ||
| 1777 | + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); | ||
| 1775 | 1778 | ||
| 1776 | -protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusadoDTO $objReceberTramiteRecusadoDTO) | ||
| 1777 | -{ | ||
| 1778 | - //Verifica se processo está fechado, reabrindo-o caso necessário | ||
| 1779 | - $objAtividadeDTO = new AtividadeDTO(); | ||
| 1780 | - $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1781 | - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1782 | - $objAtividadeDTO->setDthConclusao(null); | ||
| 1783 | - $objAtividadeRN = new AtividadeRN(); | ||
| 1784 | - if ($objAtividadeRN->contarRN0035($objAtividadeDTO) == 0) { | ||
| 1785 | - $this->gravarLogDebug("Reabrindo automaticamente o processo", 4); | ||
| 1786 | - $objReabrirProcessoDTO = new ReabrirProcessoDTO(); | ||
| 1787 | - $objReabrirProcessoDTO->setDblIdProcedimento($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1788 | - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1789 | - $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); | ||
| 1790 | - $objProcedimentoRN = new ProcedimentoRN(); | ||
| 1791 | - $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); | ||
| 1792 | - } | 1779 | + $objAtividadeRN = new AtividadeRN(); |
| 1780 | + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); | ||
| 1793 | 1781 | ||
| 1794 | - //Realiza o desbloqueio do processo | ||
| 1795 | - $this->gravarLogDebug("Realizando o desbloqueio do processo", 4); | ||
| 1796 | - $objProtocoloDTO = new ProtocoloDTO(); | ||
| 1797 | - $objProtocoloDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1798 | - $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO); | ||
| 1799 | - $objProtocoloRN = new ProtocoloRN(); | ||
| 1800 | - if($objProtocoloRN->contarRN0667($objProtocoloDTO) != 0) { | ||
| 1801 | - $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); | ||
| 1802 | - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1803 | - $objSeiRN = new SeiRN(); | ||
| 1804 | - $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); | ||
| 1805 | - } else { | ||
| 1806 | - $this->gravarLogDebug("Processo " . $objReceberTramiteRecusadoDTO->getNumIdProtocolo() . " já se encontra desbloqueado!", 6); | 1782 | + //Sinaliza na PenProtocolo que o processo obteve recusa |
| 1783 | + $this->gravarLogDebug("Atualizando protocolo sobre obtenção da ciência de recusa", 4); | ||
| 1784 | + $objProtocolo = new PenProtocoloDTO(); | ||
| 1785 | + $objProtocolo->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1786 | + $objProtocolo->setStrSinObteveRecusa('S'); | ||
| 1787 | + $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); | ||
| 1788 | + $objProtocoloBD->alterar($objProtocolo); | ||
| 1807 | } | 1789 | } |
| 1808 | 1790 | ||
| 1809 | - //Adiciona um andamento para o trâmite recusado | ||
| 1810 | - $this->gravarLogDebug("Adicionando andamento para registro da recusa do trâmite", 4); | ||
| 1811 | - $arrObjAtributoAndamentoDTO = array(); | ||
| 1812 | - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); | ||
| 1813 | - $objAtributoAndamentoDTO->setStrNome('MOTIVO'); | ||
| 1814 | - $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrMotivoRecusa()); | ||
| 1815 | - $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); | ||
| 1816 | - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; | ||
| 1817 | - | ||
| 1818 | - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); | ||
| 1819 | - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); | ||
| 1820 | - $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrNomeUnidadeDestino()); | ||
| 1821 | - $objAtributoAndamentoDTO->setStrIdOrigem($objReceberTramiteRecusadoDTO->getNumIdUnidadeOrigem()); | ||
| 1822 | - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; | ||
| 1823 | - | ||
| 1824 | - $objAtividadeDTO = new AtividadeDTO(); | ||
| 1825 | - $objAtividadeDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1826 | - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
| 1827 | - $objAtividadeDTO->setNumIdTarefa($objReceberTramiteRecusadoDTO->getNumIdTarefa()); | ||
| 1828 | - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); | ||
| 1829 | - | ||
| 1830 | - $objAtividadeRN = new AtividadeRN(); | ||
| 1831 | - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); | ||
| 1832 | - | ||
| 1833 | - //Sinaliza na PenProtocolo que o processo obteve recusa | ||
| 1834 | - $this->gravarLogDebug("Atualizando protocolo sobre obtenção da ciência de recusa", 4); | ||
| 1835 | - $objProtocolo = new PenProtocoloDTO(); | ||
| 1836 | - $objProtocolo->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); | ||
| 1837 | - $objProtocolo->setStrSinObteveRecusa('S'); | ||
| 1838 | - $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); | ||
| 1839 | - $objProtocoloBD->alterar($objProtocolo); | ||
| 1840 | -} | ||
| 1841 | - | ||
| 1842 | 1791 | ||
| 1843 | /** | 1792 | /** |
| 1844 | * Método que realiza a validação da extensão dos componentes digitais a serem recebidos | 1793 | * Método que realiza a validação da extensão dos componentes digitais a serem recebidos |
| @@ -1875,8 +1824,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad | @@ -1875,8 +1824,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad | ||
| 1875 | $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO); | 1824 | $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'Componentes digitais com formato inválido no destinatário. ', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_FORMATO); |
| 1876 | throw new InfraException("Processo recusado devido a existência de documento em formato {$extDocumento} não permitido pelo sistema. "); | 1825 | throw new InfraException("Processo recusado devido a existência de documento em formato {$extDocumento} não permitido pelo sistema. "); |
| 1877 | } | 1826 | } |
| 1878 | - | ||
| 1879 | - | ||
| 1880 | } | 1827 | } |
| 1881 | } | 1828 | } |
| 1882 | 1829 |