Commit f1cd004f37de163bc3f7500189f87586530e7c56
1 parent
7d9fa19d
Exists in
master
and in
7 other branches
Ajuste parcial para adaptação do recebimento de processos no SEI 3.1
Showing
4 changed files
with
159 additions
and
118 deletions
Show diff stats
rn/ProcessarPendenciasRN.php
| ... | ... | @@ -114,7 +114,8 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa |
| 114 | 114 | LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); |
| 115 | 115 | |
| 116 | 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)) { | |
| 117 | + $bolDeveRecusarTramite = !($e instanceof InfraException && $e->getObjException() != null && $e->getObjException() instanceof ProcessoNaoPodeSerDesbloqueadoException); | |
| 118 | + if($bolDeveRecusarTramite) { | |
| 118 | 119 | $objProcessoEletronicoRN = new ProcessoEletronicoRN(); |
| 119 | 120 | $strMensagem = ($e instanceof InfraException) ? $e->__toString() : $e->getMessage(); |
| 120 | 121 | $objProcessoEletronicoRN->recusarTramite($numIdentificacaoTramite, $strMensagem, ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); | ... | ... |
rn/ProcessoEletronicoRN.php
| ... | ... | @@ -1435,6 +1435,33 @@ class ProcessoEletronicoRN extends InfraRN { |
| 1435 | 1435 | throw new ProcessoNaoPodeSerDesbloqueadoException("Erro ao desbloquear processo", 1, $e); |
| 1436 | 1436 | } |
| 1437 | 1437 | } |
| 1438 | + | |
| 1439 | + /** | |
| 1440 | + * Busca a unidade ao qual o processo foi anteriormente expedido. | |
| 1441 | + * Caso seja o primeiro trâmite, considera a unidade atual | |
| 1442 | + * | |
| 1443 | + * @return integer Id da unidade | |
| 1444 | + */ | |
| 1445 | + public static function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) | |
| 1446 | + { | |
| 1447 | + $objAtividadeDTO = new AtividadeDTO(); | |
| 1448 | + $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); | |
| 1449 | + $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); | |
| 1450 | + $objAtividadeDTO->setOrd('Conclusao', InfraDTO::$TIPO_ORDENACAO_DESC); | |
| 1451 | + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | |
| 1452 | + $objAtividadeDTO->retNumIdUnidade(); | |
| 1453 | + | |
| 1454 | + $objAtividadeRN = new AtividadeRN(); | |
| 1455 | + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | |
| 1456 | + $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); | |
| 1457 | + | |
| 1458 | + //if(!empty($arrObjAtividadeDTO)){ | |
| 1459 | + // $objAtividadeDTO = $arrObjAtividadeDTO[0]; | |
| 1460 | + // $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); | |
| 1461 | + //} | |
| 1462 | + | |
| 1463 | + return $numIdUnidade; | |
| 1464 | + } | |
| 1438 | 1465 | } |
| 1439 | 1466 | |
| 1440 | 1467 | ... | ... |
rn/ReceberComponenteDigitalRN.php
| ... | ... | @@ -142,15 +142,8 @@ class ReceberComponenteDigitalRN extends InfraRN |
| 142 | 142 | |
| 143 | 143 | $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); |
| 144 | 144 | $objProtocoloDTO->setArrObjAnexoDTO(array($parObjAnexoDTO)); |
| 145 | - $objDocumentoDTO = $objDocumentoRN->alterarRN0004($objDocumentoDTO); | |
| 146 | - | |
| 147 | - // @join_tec US029 (#3790) | |
| 148 | - /*$objObservacaoDTO = new ObservacaoDTO(); | |
| 149 | - $objObservacaoDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); | |
| 150 | - $objObservacaoDTO->setStrDescricao(sprintf('Número SEI do Documento na Origem: %s', $strProtocoloFormatado)); | |
| 151 | - $objObservacaoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | |
| 152 | 145 | |
| 153 | - $objObservacaoBD = new ObservacaoRN(); | |
| 154 | - $objObservacaoBD->cadastrarRN0222($objObservacaoDTO);*/ | |
| 146 | + $objDocumentoDTO->setStrSinBloqueado('S'); | |
| 147 | + $objDocumentoDTO = $objDocumentoRN->alterarRN0004($objDocumentoDTO); | |
| 155 | 148 | } |
| 156 | 149 | } | ... | ... |
rn/ReceberProcedimentoRN.php
| ... | ... | @@ -17,6 +17,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 17 | 17 | $this->objInfraParametro = new InfraParametro(BancoSEI::getInstance()); |
| 18 | 18 | $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); |
| 19 | 19 | $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); |
| 20 | + $this->objReceberComponenteDigitalRN = new ReceberComponenteDigitalRN(); | |
| 20 | 21 | } |
| 21 | 22 | |
| 22 | 23 | protected function inicializarObjInfraIBanco() |
| ... | ... | @@ -91,8 +92,6 @@ class ReceberProcedimentoRN extends InfraRN |
| 91 | 92 | $this->verificarPermissoesDiretorios($parNumIdentificacaoTramite); |
| 92 | 93 | |
| 93 | 94 | $this->gravarLogDebug("Obtendo metadados dos componentes digitais do processo", 4); |
| 94 | - $arrStrNomeDocumento = $this->listarMetaDadosComponentesDigitais($objProcesso); | |
| 95 | - $receberComponenteDigitalRN = new ReceberComponenteDigitalRN(); | |
| 96 | 95 | $arrAnexosComponentes = array(); |
| 97 | 96 | $arrayHash = array(); |
| 98 | 97 | $arrayHashPendentes = array(); |
| ... | ... | @@ -127,12 +126,12 @@ class ReceberProcedimentoRN extends InfraRN |
| 127 | 126 | //Obter os dados do componente digital |
| 128 | 127 | $this->gravarLogDebug("Baixando componente digital $numOrdemComponente", 6); |
| 129 | 128 | $objComponenteDigital = $this->objProcessoEletronicoRN->receberComponenteDigital($parNumIdentificacaoTramite, $componentePendente, $objTramite->protocolo); |
| 130 | - $arrAnexosComponentes[$key][$componentePendente] = $receberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital); | |
| 129 | + $arrAnexosComponentes[$key][$componentePendente] = $this->objReceberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital); | |
| 131 | 130 | $arrAnexosComponentes[$key]['recebido'] = false; |
| 132 | 131 | |
| 133 | 132 | //Valida a integridade do hash |
| 134 | 133 | $this->gravarLogDebug("Validando integridade de componente digital $numOrdemComponente", 6); |
| 135 | - $receberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente], $componentePendente, $parNumIdentificacaoTramite); | |
| 134 | + $this->objReceberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente], $componentePendente, $parNumIdentificacaoTramite); | |
| 136 | 135 | } else { |
| 137 | 136 | $this->gravarLogDebug("Componente digital $numOrdemComponente desconsiderado por já fazer parte do processo", 6); |
| 138 | 137 | } |
| ... | ... | @@ -140,7 +139,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 140 | 139 | } |
| 141 | 140 | |
| 142 | 141 | if(count($arrAnexosComponentes) > 0){ |
| 143 | - $receberComponenteDigitalRN->setArrAnexos($arrAnexosComponentes); | |
| 142 | + $this->objReceberComponenteDigitalRN->setArrAnexos($arrAnexosComponentes); | |
| 144 | 143 | } |
| 145 | 144 | |
| 146 | 145 | #############################TERMINA O RECEBIMENTO DOS COMPONENTES DIGITAIS US010################################################ |
| ... | ... | @@ -155,7 +154,13 @@ class ReceberProcedimentoRN extends InfraRN |
| 155 | 154 | } |
| 156 | 155 | |
| 157 | 156 | $this->gravarLogDebug("Persistindo/atualizando dados do processo com NRE " . $strNumeroRegistro, 4); |
| 158 | - $objProcedimentoDTO = $this->registrarProcesso($strNumeroRegistro, $parNumIdentificacaoTramite, $objProcesso, $objMetadadosProcedimento); | |
| 157 | + $objProcedimentoDTO = $this->registrarProcesso( | |
| 158 | + $strNumeroRegistro, | |
| 159 | + $parNumIdentificacaoTramite, | |
| 160 | + $objProcesso, | |
| 161 | + $objMetadadosProcedimento, | |
| 162 | + $arrayHash, | |
| 163 | + $arrayHashPendentes); | |
| 159 | 164 | |
| 160 | 165 | // @join_tec US008.08 (#23092) |
| 161 | 166 | $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), $objProcedimentoDTO->getDblIdProcedimento()); |
| ... | ... | @@ -185,70 +190,20 @@ class ReceberProcedimentoRN extends InfraRN |
| 185 | 190 | throw new InfraException("Desconsiderando recebimento do processo devido a situação de trâmite inconsistente: " . $objTramite->situacaoAtual); |
| 186 | 191 | } |
| 187 | 192 | |
| 188 | -//return ; | |
| 189 | - | |
| 190 | - if(count($arrayHashPendentes) > 0){ | |
| 191 | - //Obter dados dos componetes digitais | |
| 192 | - $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); | |
| 193 | - $objComponenteDigitalDTO = new ComponenteDigitalDTO(); | |
| 194 | - $objComponenteDigitalDTO->setStrNumeroRegistro($strNumeroRegistro); | |
| 195 | - $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); | |
| 196 | - $objComponenteDigitalDTO->setStrHashConteudo($arrayHash, InfraDTO::$OPER_IN); | |
| 197 | - $objComponenteDigitalDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_ASC); | |
| 198 | - $objComponenteDigitalDTO->retDblIdDocumento(); | |
| 199 | - $objComponenteDigitalDTO->retNumTicketEnvioComponentes(); | |
| 200 | - $objComponenteDigitalDTO->retStrProtocoloDocumentoFormatado(); | |
| 201 | - $objComponenteDigitalDTO->retStrHashConteudo(); | |
| 202 | - $objComponenteDigitalDTO->retStrProtocolo(); | |
| 203 | - $objComponenteDigitalDTO->retStrNumeroRegistro(); | |
| 204 | - $objComponenteDigitalDTO->retNumIdTramite(); | |
| 205 | - $objComponenteDigitalDTO->retStrNome(); | |
| 206 | - $objComponenteDigitalDTO->retStrStaEstadoProtocolo(); | |
| 207 | - | |
| 208 | - $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); | |
| 209 | - $arrObjComponentesDigitaisDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); | |
| 210 | - | |
| 211 | - if ($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0) { | |
| 212 | - $objReceberComponenteDigitalRN = $receberComponenteDigitalRN; | |
| 213 | - | |
| 214 | - //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
| 215 | - $numIdUnidade = $this->obterUnidadeParaRegistroDocumento($objProcedimentoDTO->getDblIdProcedimento()); | |
| 216 | - SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
| 217 | - | |
| 218 | - try{ | |
| 219 | - foreach($arrObjComponentesDigitaisDTO as $objComponenteDigitalDTOEnviado) { | |
| 220 | - if($objComponenteDigitalDTOEnviado->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ | |
| 221 | - $strHash = $objComponenteDigitalDTOEnviado->getStrHashConteudo(); | |
| 222 | - $strNomeDocumento = (array_key_exists($strHash, $arrStrNomeDocumento)) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; | |
| 223 | - $objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); | |
| 224 | - | |
| 225 | - $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); | |
| 226 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); | |
| 227 | - $this->gravarLogDebug($strMensagemRecebimento, 6); | |
| 228 | - } | |
| 229 | - } | |
| 230 | - } finally { | |
| 231 | - $objPenParametroRN = new PenParametroRN(); | |
| 232 | - $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
| 233 | - SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
| 234 | - } | |
| 235 | - | |
| 236 | - // @join_tec US008.10 (#23092) | |
| 237 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); | |
| 238 | - }else{ | |
| 239 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); | |
| 240 | - } | |
| 241 | - } | |
| 242 | - } | |
| 193 | + //Atribui componentes digitais baixados anteriormente aos documentos do processo | |
| 194 | + $this->atribuirComponentesDigitaisAosDocumentos($objProcedimentoDTO, $strNumeroRegistro, $parNumIdentificacaoTramite, $arrayHash, $arrayHashPendentes); | |
| 243 | 195 | |
| 244 | - $this->gravarLogDebug("Enviando recibo de conclusão do trâmite $parNumIdentificacaoTramite", 6); | |
| 245 | - $objEnviarReciboTramiteRN = new EnviarReciboTramiteRN(); | |
| 246 | - $objEnviarReciboTramiteRN->enviarReciboTramiteProcesso($parNumIdentificacaoTramite, $arrayHash); | |
| 196 | + //Finalizar o envio do documento para a respectiva unidade | |
| 197 | + $this->enviarProcedimentoUnidade($objProcedimentoDTO); | |
| 247 | 198 | |
| 248 | - $this->gravarLogDebug("Registrando a conclusão do recebimento do trâmite $parNumIdentificacaoTramite", 6); | |
| 249 | - $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO); | |
| 250 | - $objPenTramiteProcessadoRN->setRecebido($parNumIdentificacaoTramite); | |
| 199 | + $this->gravarLogDebug("Enviando recibo de conclusão do trâmite $parNumIdentificacaoTramite", 6); | |
| 200 | + $objEnviarReciboTramiteRN = new EnviarReciboTramiteRN(); | |
| 201 | + $objEnviarReciboTramiteRN->enviarReciboTramiteProcesso($parNumIdentificacaoTramite, $arrayHash); | |
| 251 | 202 | |
| 203 | + $this->gravarLogDebug("Registrando a conclusão do recebimento do trâmite $parNumIdentificacaoTramite", 6); | |
| 204 | + $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO); | |
| 205 | + $objPenTramiteProcessadoRN->setRecebido($parNumIdentificacaoTramite); | |
| 206 | + } | |
| 252 | 207 | } catch (Exception $e) { |
| 253 | 208 | $mensagemErro = InfraException::inspecionar($e); |
| 254 | 209 | $this->gravarLogDebug($mensagemErro); |
| ... | ... | @@ -258,6 +213,71 @@ class ReceberProcedimentoRN extends InfraRN |
| 258 | 213 | } |
| 259 | 214 | |
| 260 | 215 | /** |
| 216 | + * Método responsável por atribuir a lista de componentes digitais baixados do PEN aos seus respectivos documentos no SEI | |
| 217 | + * | |
| 218 | + * @param ProcedimentoDTO $parObjProcedimentoDTO Protocolo que está sendo recebido pelo SEI | |
| 219 | + * @param Array $parArrHashComponentesPendentes Lista de componentes pendentes para vinculação aos documentos | |
| 220 | + * @return [type] [description] | |
| 221 | + */ | |
| 222 | + private function atribuirComponentesDigitaisAosDocumentos(ProcedimentoDTO $parObjProcedimentoDTO, $parStrNumeroRegistro, $parNumIdentificacaoTramite, | |
| 223 | + $parArrHashComponentes, $parArrHashComponentesPendentes) | |
| 224 | + { | |
| 225 | + if(count($parArrHashComponentesPendentes) > 0){ | |
| 226 | + //Obter dados dos componetes digitais | |
| 227 | + $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); | |
| 228 | + $objComponenteDigitalDTO = new ComponenteDigitalDTO(); | |
| 229 | + $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); | |
| 230 | + $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); | |
| 231 | + $objComponenteDigitalDTO->setStrHashConteudo($parArrHashComponentes, InfraDTO::$OPER_IN); | |
| 232 | + $objComponenteDigitalDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_ASC); | |
| 233 | + $objComponenteDigitalDTO->retDblIdDocumento(); | |
| 234 | + $objComponenteDigitalDTO->retNumTicketEnvioComponentes(); | |
| 235 | + $objComponenteDigitalDTO->retStrProtocoloDocumentoFormatado(); | |
| 236 | + $objComponenteDigitalDTO->retStrHashConteudo(); | |
| 237 | + $objComponenteDigitalDTO->retStrProtocolo(); | |
| 238 | + $objComponenteDigitalDTO->retStrNumeroRegistro(); | |
| 239 | + $objComponenteDigitalDTO->retNumIdTramite(); | |
| 240 | + $objComponenteDigitalDTO->retStrNome(); | |
| 241 | + $objComponenteDigitalDTO->retStrStaEstadoProtocolo(); | |
| 242 | + | |
| 243 | + $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); | |
| 244 | + $arrObjComponentesDigitaisDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); | |
| 245 | + | |
| 246 | + if ($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0) { | |
| 247 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
| 248 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parObjProcedimentoDTO->getDblIdProcedimento()); | |
| 249 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
| 250 | + | |
| 251 | + try{ | |
| 252 | + $arrStrNomeDocumento = $this->listarMetaDadosComponentesDigitais($objProcesso); | |
| 253 | + foreach($arrObjComponentesDigitaisDTO as $objComponenteDigitalDTOEnviado) { | |
| 254 | + if($objComponenteDigitalDTOEnviado->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ | |
| 255 | + $strHash = $objComponenteDigitalDTOEnviado->getStrHashConteudo(); | |
| 256 | + $strNomeDocumento = array_key_exists($strHash, $arrStrNomeDocumento) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; | |
| 257 | + | |
| 258 | + //Todo: Parei aqui: Verificar se documento já foi recebido anteriormente para poder registrar | |
| 259 | + //Alterar somente de documentos não bloqueados | |
| 260 | + $this->objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); | |
| 261 | + $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); | |
| 262 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); | |
| 263 | + $this->gravarLogDebug($strMensagemRecebimento, 6); | |
| 264 | + } | |
| 265 | + } | |
| 266 | + } finally { | |
| 267 | + $objPenParametroRN = new PenParametroRN(); | |
| 268 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
| 269 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
| 270 | + } | |
| 271 | + | |
| 272 | + // @join_tec US008.10 (#23092) | |
| 273 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); | |
| 274 | + }else{ | |
| 275 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); | |
| 276 | + } | |
| 277 | + } | |
| 278 | + } | |
| 279 | + | |
| 280 | + /** | |
| 261 | 281 | * Método para recuperar a lista de todos os hashs dos componentes digitais presentes no protocolo recebido |
| 262 | 282 | * |
| 263 | 283 | * @return Array Lista de hashs dos componentes digitais |
| ... | ... | @@ -418,7 +438,8 @@ class ReceberProcedimentoRN extends InfraRN |
| 418 | 438 | } |
| 419 | 439 | |
| 420 | 440 | |
| 421 | - private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjMetadadosProcedimento) | |
| 441 | + private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjMetadadosProcedimento, | |
| 442 | + $parArrHashComponentes, $parArrHashComponentesPendentes) | |
| 422 | 443 | { |
| 423 | 444 | // Validação dos dados do processo recebido |
| 424 | 445 | $objInfraException = new InfraException(); |
| ... | ... | @@ -434,10 +455,10 @@ class ReceberProcedimentoRN extends InfraRN |
| 434 | 455 | $dblIdProcedimento = $this->consultarProcedimentoExistente($parStrNumeroRegistro, $parObjProcesso->protocolo); |
| 435 | 456 | |
| 436 | 457 | if(isset($dblIdProcedimento)){ |
| 437 | - $objProcedimentoDTO = $this->atualizarProcedimento($dblIdProcedimento, $parObjMetadadosProcedimento, $parObjProcesso); | |
| 458 | + $objProcedimentoDTO = $this->atualizarProcedimento($dblIdProcedimento, $parObjMetadadosProcedimento, $parObjProcesso, $parNumIdentificacaoTramite, $parArrHashComponentes, $parArrHashComponentesPendentes); | |
| 438 | 459 | } |
| 439 | 460 | else { |
| 440 | - $objProcedimentoDTO = $this->gerarProcedimento($parObjMetadadosProcedimento, $parObjProcesso); | |
| 461 | + $objProcedimentoDTO = $this->gerarProcedimento($parObjMetadadosProcedimento, $parObjProcesso, $parNumIdentificacaoTramite, $parArrHashComponentes, $parArrHashComponentesPendentes); | |
| 441 | 462 | } |
| 442 | 463 | |
| 443 | 464 | //TODO: Fazer o envio de cada um dos procedimentos apensados (Processo principal e seus apensados, caso exista) |
| ... | ... | @@ -499,7 +520,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 499 | 520 | return $dblIdProcedimento; |
| 500 | 521 | } |
| 501 | 522 | |
| 502 | - private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProcedimento, $objProcesso) | |
| 523 | + private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProcedimento, $objProcesso, $parNumIdTramite, $parArrHashComponentes, $parArrHashComponentesPendentes) | |
| 503 | 524 | { |
| 504 | 525 | if(!isset($parDblIdProcedimento)){ |
| 505 | 526 | throw new InfraException('Parâmetro $parDblIdProcedimento não informado.'); |
| ... | ... | @@ -518,7 +539,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 518 | 539 | |
| 519 | 540 | //Busca a unidade em ao qual o processo foi anteriormente expedido |
| 520 | 541 | //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura |
| 521 | - $numIdUnidade = $this->obterUnidadeParaRegistroDocumento($parDblIdProcedimento); | |
| 542 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parDblIdProcedimento); | |
| 522 | 543 | SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); |
| 523 | 544 | |
| 524 | 545 | try { |
| ... | ... | @@ -565,6 +586,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 565 | 586 | $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); |
| 566 | 587 | |
| 567 | 588 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); |
| 589 | + | |
| 568 | 590 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTO); |
| 569 | 591 | |
| 570 | 592 | //TODO: Avaliar necessidade de restringir referência circular entre processos |
| ... | ... | @@ -576,7 +598,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 576 | 598 | $this->alterarMetadadosProcedimento($objProcedimentoDTO->getDblIdProcedimento(), $objProcesso); |
| 577 | 599 | |
| 578 | 600 | //Finaliza o envio do documento para a respectiva unidade |
| 579 | - $this->enviarProcedimentoUnidade($objProcedimentoDTO, true); | |
| 601 | + //$this->enviarProcedimentoUnidade($objProcedimentoDTO, true); | |
| 580 | 602 | |
| 581 | 603 | return $objProcedimentoDTO; |
| 582 | 604 | |
| ... | ... | @@ -588,32 +610,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 588 | 610 | } |
| 589 | 611 | |
| 590 | 612 | |
| 591 | - /** | |
| 592 | - * Busca a unidade ao qual o processo foi anteriormente expedido. | |
| 593 | - * Caso seja o primeiro trâmite, considera a unidade atual | |
| 594 | - * | |
| 595 | - * @return integer Id da unidade | |
| 596 | - */ | |
| 597 | - private function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) | |
| 598 | - { | |
| 599 | - $objAtividadeDTO = new AtividadeDTO(); | |
| 600 | - $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); | |
| 601 | - $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); | |
| 602 | - $objAtividadeDTO->setOrd('Conclusao', InfraDTO::$TIPO_ORDENACAO_DESC); | |
| 603 | - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | |
| 604 | - $objAtividadeDTO->retNumIdUnidade(); | |
| 605 | - | |
| 606 | - $objAtividadeRN = new AtividadeRN(); | |
| 607 | - $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | |
| 608 | - $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); | |
| 609 | 613 | |
| 610 | - if(!empty($arrObjAtividadeDTO)){ | |
| 611 | - $objAtividadeDTO = $arrObjAtividadeDTO[0]; | |
| 612 | - $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); | |
| 613 | - } | |
| 614 | - | |
| 615 | - return $numIdUnidade; | |
| 616 | - } | |
| 617 | 614 | |
| 618 | 615 | private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) |
| 619 | 616 | { |
| ... | ... | @@ -646,7 +643,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 646 | 643 | $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); |
| 647 | 644 | } |
| 648 | 645 | |
| 649 | - private function gerarProcedimento($objMetadadosProcedimento, $objProcesso) | |
| 646 | + private function gerarProcedimento($objMetadadosProcedimento, $objProcesso, $parNumIdTramite, $parArrHashComponentes, $parArrHashComponentesPendentes) | |
| 650 | 647 | { |
| 651 | 648 | if(!isset($objMetadadosProcedimento)){ |
| 652 | 649 | throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); |
| ... | ... | @@ -769,14 +766,15 @@ class ReceberProcedimentoRN extends InfraRN |
| 769 | 766 | |
| 770 | 767 | $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); |
| 771 | 768 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); |
| 769 | + | |
| 772 | 770 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOGerado); |
| 773 | 771 | |
| 774 | 772 | //TODO: Avaliar necessidade de restringir referência circular entre processos |
| 775 | 773 | //TODO: Registrar que o processo foi recebido com outros apensados. Necessário para posterior reenvio |
| 776 | 774 | $this->atribuirProcessosApensados($objProcedimentoDTO, $objProcesso->processoApensado); |
| 777 | 775 | |
| 778 | - //TODO: Finalizar o envio do documento para a respectiva unidade | |
| 779 | - $this->enviarProcedimentoUnidade($objProcedimentoDTO); | |
| 776 | + //Finalizar o envio do documento para a respectiva unidade | |
| 777 | + //$this->enviarProcedimentoUnidade($objProcedimentoDTO); | |
| 780 | 778 | |
| 781 | 779 | //$this->removerAndamentosProcedimento($objProcedimentoDTO); |
| 782 | 780 | return $objProcedimentoDTO; |
| ... | ... | @@ -793,11 +791,22 @@ class ReceberProcedimentoRN extends InfraRN |
| 793 | 791 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoProcedimento->hipoteseLegal->identificacao)); |
| 794 | 792 | } |
| 795 | 793 | |
| 796 | - $objProtocoloRN = new ProtocoloRN(); | |
| 797 | - $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
| 794 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
| 795 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parNumIdProcedimento); | |
| 796 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
| 797 | + | |
| 798 | + try{ | |
| 799 | + $objProtocoloRN = new ProtocoloRN(); | |
| 800 | + $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
| 801 | + } finally { | |
| 802 | + $objPenParametroRN = new PenParametroRN(); | |
| 803 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
| 804 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
| 805 | + } | |
| 798 | 806 | } |
| 799 | 807 | |
| 800 | - private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento){ | |
| 808 | + private function alterarMetadadosDocumento($parNumIdProcedimento, $parNumIdDocumento, $parObjMetadadoDocumento) | |
| 809 | + { | |
| 801 | 810 | //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal) |
| 802 | 811 | $objProtocoloDTO = new ProtocoloDTO(); |
| 803 | 812 | $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento); |
| ... | ... | @@ -807,8 +816,18 @@ class ReceberProcedimentoRN extends InfraRN |
| 807 | 816 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoDocumento->hipoteseLegal->identificacao)); |
| 808 | 817 | } |
| 809 | 818 | |
| 810 | - $objProtocoloRN = new ProtocoloRN(); | |
| 811 | - $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
| 819 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | |
| 820 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parNumIdProcedimento); | |
| 821 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | |
| 822 | + | |
| 823 | + try{ | |
| 824 | + $objProtocoloRN = new ProtocoloRN(); | |
| 825 | + $objProtocoloRN->alterarRN0203($objProtocoloDTO); | |
| 826 | + } finally { | |
| 827 | + $objPenParametroRN = new PenParametroRN(); | |
| 828 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | |
| 829 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | |
| 830 | + } | |
| 812 | 831 | } |
| 813 | 832 | |
| 814 | 833 | |
| ... | ... | @@ -1051,6 +1070,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 1051 | 1070 | //Obter dados dos documentos já registrados no sistema |
| 1052 | 1071 | $objComponenteDigitalDTO = new ComponenteDigitalDTO(); |
| 1053 | 1072 | $objComponenteDigitalDTO->retNumOrdem(); |
| 1073 | + $objComponenteDigitalDTO->retDblIdProcedimento(); | |
| 1054 | 1074 | $objComponenteDigitalDTO->retDblIdDocumento(); |
| 1055 | 1075 | $objComponenteDigitalDTO->retStrHashConteudo(); |
| 1056 | 1076 | $objComponenteDigitalDTO->setStrNumeroRegistro($strNumeroRegistro); |
| ... | ... | @@ -1094,7 +1114,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 1094 | 1114 | |
| 1095 | 1115 | if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)){ |
| 1096 | 1116 | $objComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; |
| 1097 | - $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); | |
| 1117 | + $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdProcedimento(), $objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); | |
| 1098 | 1118 | $objDocumento->idDocumentoSEI = $objComponenteDigitalDTO->getDblIdDocumento(); |
| 1099 | 1119 | continue; |
| 1100 | 1120 | } |
| ... | ... | @@ -1242,7 +1262,7 @@ class ReceberProcedimentoRN extends InfraRN |
| 1242 | 1262 | $strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); |
| 1243 | 1263 | $objDocumentoDTO->setStrConteudo(null); |
| 1244 | 1264 | $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); |
| 1245 | - $objDocumentoDTO->setStrSinBloqueado('S'); | |
| 1265 | + $objDocumentoDTO->setStrSinBloqueado('N'); | |
| 1246 | 1266 | |
| 1247 | 1267 | //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto |
| 1248 | 1268 | $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); | ... | ... |