Commit a6016a7f5744ec5f6ff217e13585f58d83d656cf
1 parent
e4fa2a7c
Exists in
master
and in
7 other branches
Correções na validação de assinatura digital, cancelar trâmite e validação de ta…
…manho de arquivo na expedição
Showing
4 changed files
with
84 additions
and
98 deletions
Show diff stats
rn/ExpedirProcedimentoRN.php
| ... | ... | @@ -173,12 +173,9 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 173 | 173 | |
| 174 | 174 | $objTramite = $novoTramite->dadosTramiteDeProcessoCriado; |
| 175 | 175 | |
| 176 | - | |
| 177 | 176 | $this->objProcedimentoAndamentoRN->setOpts($dblIdProcedimento, $objTramite->IDT, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)); |
| 178 | - | |
| 179 | 177 | try { |
| 180 | 178 | |
| 181 | - | |
| 182 | 179 | $this->objProcedimentoAndamentoRN->cadastrar('Envio do metadados do processo', 'S'); |
| 183 | 180 | |
| 184 | 181 | $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI); |
| ... | ... | @@ -239,7 +236,7 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 239 | 236 | } |
| 240 | 237 | catch (\Exception $e) { |
| 241 | 238 | $this->desbloquearProcessoExpedicao($objProcesso->idProcedimentoSEI); |
| 242 | - $this->registrarAndamentoExpedicaoAbortada($objProtocolo->idProcedimentoSEI); | |
| 239 | + $this->registrarAndamentoExpedicaoAbortada($objProcesso->idProcedimentoSEI); | |
| 243 | 240 | |
| 244 | 241 | // @join_tec US008.06 (#23092) |
| 245 | 242 | $this->objProcedimentoAndamentoRN->cadastrar('Concluído envio dos componentes do processo', 'N'); |
| ... | ... | @@ -1046,6 +1043,11 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 1046 | 1043 | if(!isset($objAnexoDTO)){ |
| 1047 | 1044 | throw new InfraException("Componente digital do documento {$strProtocoloDocumentoFormatado} não pode ser localizado."); |
| 1048 | 1045 | } |
| 1046 | + | |
| 1047 | + //VALIDAÇÃO DE TAMANHO DE DOCUMENTOS EXTERNOS PARA A EXPEDIÇÃO | |
| 1048 | + if($objAnexoDTO->getNumTamanho() > ($objInfraParametro->getValor('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO') * 1024 * 1024) ){ | |
| 1049 | + throw new InfraException("O tamanho do documento {$objAnexoDTO->getStrProtocoloFormatadoProtocolo()} é maior que os {$objInfraParametro->getValor('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO')} MB permitidos para a expedição de documentos externos."); | |
| 1050 | + } | |
| 1049 | 1051 | |
| 1050 | 1052 | //Obtenção do conteudo do documento externo |
| 1051 | 1053 | //TODO: Particionar o documento em tamanho menor caso ultrapasse XX megabytes |
| ... | ... | @@ -1251,6 +1253,7 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 1251 | 1253 | $objAnexoDTO->retDblIdProtocolo(); |
| 1252 | 1254 | $objAnexoDTO->retDthInclusao(); |
| 1253 | 1255 | $objAnexoDTO->retNumTamanho(); |
| 1256 | + $objAnexoDTO->retStrProtocoloFormatadoProtocolo(); | |
| 1254 | 1257 | $objAnexoDTO->setDblIdProtocolo($dblIdDocumento); |
| 1255 | 1258 | |
| 1256 | 1259 | return $this->objAnexoRN->consultarRN0736($objAnexoDTO); |
| ... | ... | @@ -2024,99 +2027,98 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 2024 | 2027 | */ |
| 2025 | 2028 | public function cancelarTramite($dblIdProcedimento) { |
| 2026 | 2029 | |
| 2027 | - $objDTOFiltro = new ProcessoEletronicoDTO(); | |
| 2028 | - $objDTOFiltro->setDblIdProcedimento($dblIdProcedimento); | |
| 2029 | - $objDTOFiltro->retStrNumeroRegistro(); | |
| 2030 | - $objDTOFiltro->setNumMaxRegistrosRetorno(1); | |
| 2031 | - | |
| 2032 | - $objBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); | |
| 2033 | - $objProcessoEletronicoDTO = $objBD->consultar($objDTOFiltro); | |
| 2034 | - | |
| 2035 | - if(empty($objProcessoEletronicoDTO)) { | |
| 2036 | - throw new InfraException('Não foi Encontrado o Processo pelo ID '. $dblIdProcedimento); | |
| 2037 | - } | |
| 2038 | - | |
| 2030 | + //Busca os dados do protocolo | |
| 2039 | 2031 | $objDtoProtocolo = new ProtocoloDTO(); |
| 2040 | 2032 | $objDtoProtocolo->retStrProtocoloFormatado(); |
| 2033 | + $objDtoProtocolo->retDblIdProtocolo(); | |
| 2041 | 2034 | $objDtoProtocolo->setDblIdProtocolo($dblIdProcedimento); |
| 2042 | 2035 | |
| 2043 | 2036 | $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); |
| 2044 | 2037 | $objDtoProtocolo = $objProtocoloBD->consultar($objDtoProtocolo); |
| 2045 | - | |
| 2046 | 2038 | |
| 2047 | -// $objDTOFiltro = new TramiteDTO(); | |
| 2048 | -// $objDTOFiltro->setStrNumeroRegistro($objProcessoEletronicoDTO->getStrNumeroRegistro()); | |
| 2049 | -// $objDTOFiltro->setNumMaxRegistrosRetorno(1); | |
| 2050 | -// $objDTOFiltro->setOrdNumIdTramite(InfraDTO::$TIPO_ORDENACAO_DESC); | |
| 2051 | -// $objDTOFiltro->retTodos(); | |
| 2052 | -// | |
| 2053 | -// $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); | |
| 2054 | -// $objTramiteDTO = $objTramiteBD->consultar($objDTOFiltro); | |
| 2055 | -// | |
| 2056 | -// if(empty($objTramiteDTO)) { | |
| 2057 | -// throw new InfraException('Não foi Encontrado Trâmite para Esse Processo!'); | |
| 2058 | -// } | |
| 2039 | + $this->cancelarTramiteInternoControlado($objDtoProtocolo); | |
| 2059 | 2040 | |
| 2060 | - | |
| 2061 | - $arrObjMetaTramite = $this->objProcessoEletronicoRN->consultarTramitesProtocolo($objDtoProtocolo->getStrProtocoloFormatado()); | |
| 2041 | + } | |
| 2042 | + | |
| 2043 | + protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocolo) { | |
| 2062 | 2044 | |
| 2063 | - if(empty($arrObjMetaTramite)) { | |
| 2064 | - throw new InfraException('Não foi Encontrado Trâmite para Esse Processo!'); | |
| 2045 | + //Armazena o id do protocolo | |
| 2046 | + $dblIdProcedimento = $objDtoProtocolo->getDblIdProtocolo(); | |
| 2047 | + | |
| 2048 | + $tramites = $this->objProcessoEletronicoRN->consultarTramitesProtocolo($objDtoProtocolo->getStrProtocoloFormatado()); | |
| 2049 | + $tramite = $tramites ? array_pop($tramites) : null; | |
| 2050 | + | |
| 2051 | + if (!$tramite) { | |
| 2052 | + throw new InfraException('Trâmite não encontrado para esse processo. '); | |
| 2065 | 2053 | } |
| 2066 | - | |
| 2067 | - $numSituacaoAtual = 0; | |
| 2068 | - | |
| 2069 | - // Se o barramento possui alguma situação do tramite verificamos se o precedimento | |
| 2070 | - // já esta em recebimento | |
| 2071 | - if(!empty($arrObjMetaTramite)) { | |
| 2072 | - | |
| 2073 | - $objMetaTramite = array_pop($arrObjMetaTramite); | |
| 2074 | - | |
| 2075 | - switch($objMetaTramite->situacaoAtual) { | |
| 2076 | - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: | |
| 2077 | - throw new InfraException("O sistema destinatário já iniciou o recebimento desse processo, portanto não é possivel realizar o cancelamento"); | |
| 2078 | - break; | |
| 2079 | - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: | |
| 2080 | - throw new InfraException("O sistema destinatário já recebeu esse processo, portanto não é possivel realizar o cancelamento"); | |
| 2081 | - break; | |
| 2082 | - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO: | |
| 2083 | - throw new InfraException("O processo já se encontra cancelado"); | |
| 2084 | - break; | |
| 2085 | - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: | |
| 2086 | - throw new InfraException("O processo se encontra recusado"); | |
| 2087 | - break; | |
| 2088 | - } | |
| 2089 | - $numSituacaoAtual = $objMetaTramite->situacaoAtual; | |
| 2054 | + | |
| 2055 | + //Verifica se o trâmite está com o status de iniciado | |
| 2056 | + if ($tramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { | |
| 2057 | + $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT); | |
| 2058 | + | |
| 2059 | + return true; | |
| 2090 | 2060 | } |
| 2091 | 2061 | |
| 2092 | - $this->objProcessoEletronicoRN->cancelarTramite($objMetaTramite->IDT); | |
| 2062 | + //Busca o processo eletrônico | |
| 2063 | + $objDTOFiltro = new ProcessoEletronicoDTO(); | |
| 2064 | + $objDTOFiltro->setDblIdProcedimento($dblIdProcedimento); | |
| 2065 | + $objDTOFiltro->retStrNumeroRegistro(); | |
| 2066 | + $objDTOFiltro->setNumMaxRegistrosRetorno(1); | |
| 2067 | + | |
| 2068 | + $objBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); | |
| 2069 | + $objProcessoEletronicoDTO = $objBD->consultar($objDTOFiltro); | |
| 2070 | + | |
| 2071 | + if (empty($objProcessoEletronicoDTO)) { | |
| 2072 | + throw new InfraException('Não foi Encontrado o Processo pelo ID ' . $dblIdProcedimento); | |
| 2073 | + } | |
| 2074 | + | |
| 2075 | + //Armazena a situação atual | |
| 2076 | + $numSituacaoAtual = $tramite->situacaoAtual; | |
| 2077 | + | |
| 2078 | + //Valida os status | |
| 2079 | + switch ($numSituacaoAtual) { | |
| 2080 | + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: | |
| 2081 | + throw new InfraException("O sistema destinatário já iniciou o recebimento desse processo, portanto não é possivel realizar o cancelamento"); | |
| 2082 | + break; | |
| 2083 | + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: | |
| 2084 | + throw new InfraException("O sistema destinatário já recebeu esse processo, portanto não é possivel realizar o cancelamento"); | |
| 2085 | + break; | |
| 2086 | + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO: | |
| 2087 | + throw new InfraException("O processo já se encontra cancelado"); | |
| 2088 | + break; | |
| 2089 | + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: | |
| 2090 | + throw new InfraException("O processo se encontra recusado"); | |
| 2091 | + break; | |
| 2092 | + } | |
| 2093 | + | |
| 2094 | + $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT); | |
| 2093 | 2095 | |
| 2094 | 2096 | //Desbloqueia o processo |
| 2095 | 2097 | $objEntradaDesbloquearProcessoAPI = new EntradaDesbloquearProcessoAPI(); |
| 2096 | - $objEntradaDesbloquearProcessoAPI->setIdProcedimento($dblIdProcedimento); | |
| 2098 | + $objEntradaDesbloquearProcessoAPI->setIdProcedimento($dblIdProcedimento); | |
| 2099 | + | |
| 2097 | 2100 | $objSeiRN = new SeiRN(); |
| 2098 | 2101 | $objSeiRN->desbloquearProcesso($objEntradaDesbloquearProcessoAPI); |
| 2099 | - | |
| 2102 | + | |
| 2100 | 2103 | $objDTOFiltro = new TramiteDTO(); |
| 2101 | - $objDTOFiltro->setNumIdTramite($objMetaTramite->IDT); | |
| 2104 | + $objDTOFiltro->setNumIdTramite($tramite->IDT); | |
| 2102 | 2105 | $objDTOFiltro->setNumMaxRegistrosRetorno(1); |
| 2103 | 2106 | $objDTOFiltro->setOrdNumIdTramite(InfraDTO::$TIPO_ORDENACAO_DESC); |
| 2104 | 2107 | $objDTOFiltro->retNumIdTramite(); |
| 2105 | 2108 | $objDTOFiltro->retStrNumeroRegistro(); |
| 2106 | - | |
| 2109 | + | |
| 2107 | 2110 | $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); |
| 2108 | 2111 | $objTramiteDTO = $objTramiteBD->consultar($objDTOFiltro); |
| 2109 | 2112 | |
| 2110 | 2113 | $objTramiteDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); |
| 2111 | 2114 | $objTramiteDTO = $objTramiteBD->alterar($objTramiteDTO); |
| 2112 | - | |
| 2115 | + | |
| 2113 | 2116 | //Cria o Objeto que registrará a Atividade de cancelamento |
| 2114 | 2117 | $objAtividadeDTO = new AtividadeDTO(); |
| 2115 | 2118 | $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); |
| 2116 | 2119 | $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); |
| 2117 | 2120 | $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO)); |
| 2118 | 2121 | |
| 2119 | - | |
| 2120 | 2122 | //Seta os atributos do tamplate de descrição dessa atividade |
| 2121 | 2123 | $objAtributoAndamentoDTOHora = new AtributoAndamentoDTO(); |
| 2122 | 2124 | $objAtributoAndamentoDTOHora->setStrNome('DATA_HORA'); |
| ... | ... | @@ -2132,13 +2134,8 @@ class ExpedirProcedimentoRN extends InfraRN { |
| 2132 | 2134 | |
| 2133 | 2135 | $objAtividadeRN = new AtividadeRN(); |
| 2134 | 2136 | $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); |
| 2135 | - | |
| 2136 | - | |
| 2137 | 2137 | } |
| 2138 | 2138 | |
| 2139 | - | |
| 2140 | - | |
| 2141 | - | |
| 2142 | 2139 | // // private function validarStrSinGerarPendenciaRN0901(ProcedimentoDTO $objProcedimentoDTO, InfraException $objInfraException){ |
| 2143 | 2140 | // // if (InfraString::isBolVazia($objProcedimentoDTO->getStrSinGerarPendencia())){ |
| 2144 | 2141 | // // $objInfraException->adicionarValidacao('Sinalizador de geração de andamento automático não informado.'); | ... | ... |
rn/PenAtualizadorRN.php
rn/PenAtualizarSeiRN.php
| ... | ... | @@ -893,4 +893,11 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { |
| 893 | 893 | $fnAtualizar('PEN_PROCESSO_RECEBIDO', 'Processo recebido da unidade externa @ENTIDADE_ORIGEM@ - @ENTIDADE_ORIGEM_HIRARQUIA@ - @REPOSITORIO_ORIGEM@'); |
| 894 | 894 | $fnAtualizar('PEN_OPERACAO_EXTERNA', 'Tramitação externa do processo @PROTOCOLO_FORMATADO@ concluída com sucesso. Recebido em @UNIDADE_DESTINO@ - @UNIDADE_DESTINO_HIRARQUIA@ - @REPOSITORIO_DESTINO@'); |
| 895 | 895 | } |
| 896 | + | |
| 897 | + protected function instalarV006R004S004WI001() { | |
| 898 | + $objInfraParametro = new InfraParametro($this->getObjInfraIBanco()); | |
| 899 | + $objInfraParametro->setValor('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO', 50); | |
| 900 | + | |
| 901 | + } | |
| 902 | + | |
| 896 | 903 | } |
| 897 | 904 | \ No newline at end of file | ... | ... |
rn/ProcedimentoAndamentoRN.php
| ... | ... | @@ -75,36 +75,17 @@ class ProcedimentoAndamentoRN extends InfraRN { |
| 75 | 75 | $hash = md5($this->dblIdProcedimento.$strMensagem); |
| 76 | 76 | |
| 77 | 77 | $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); |
| 78 | + $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 79 | + $objProcedimentoAndamentoDTO->setDthData(date('d/m/Y H:i:s')); | |
| 80 | + $objProcedimentoAndamentoDTO->setDblIdProcedimento($this->dblIdProcedimento); | |
| 81 | + $objProcedimentoAndamentoDTO->setDblIdTramite($this->dblIdTramit); | |
| 82 | + $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 83 | + $objProcedimentoAndamentoDTO->setStrMensagem($strMensagem); | |
| 78 | 84 | $objProcedimentoAndamentoDTO->setStrHash($hash); |
| 79 | - $objProcedimentoAndamentoDTO->retTodos(); | |
| 80 | - | |
| 81 | - $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($objInfraIBanco); | |
| 82 | - $objProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->consultar($objProcedimentoAndamentoDTO); | |
| 83 | - | |
| 85 | + $objProcedimentoAndamentoDTO->setNumTarefa($this->numTarefa); | |
| 84 | 86 | |
| 85 | - // achou um registro, então atualiza o log | |
| 86 | - /* if(!empty($objProcedimentoAndamentoDTO)) { | |
| 87 | - | |
| 88 | - $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 89 | - $objProcedimentoAndamentoDTO->setDthData(date('d/m/Y H:i:s')); | |
| 90 | - | |
| 91 | - $objProcedimentoAndamentoBD->alterar($objProcedimentoAndamentoDTO); | |
| 92 | - } | |
| 93 | - // Senão cadastra um novo log | |
| 94 | - else { */ | |
| 95 | - | |
| 96 | - $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); | |
| 97 | - $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 98 | - $objProcedimentoAndamentoDTO->setDthData(date('d/m/Y H:i:s')); | |
| 99 | - $objProcedimentoAndamentoDTO->setDblIdProcedimento($this->dblIdProcedimento); | |
| 100 | - $objProcedimentoAndamentoDTO->setDblIdTramite($this->dblIdTramit); | |
| 101 | - $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); | |
| 102 | - $objProcedimentoAndamentoDTO->setStrMensagem($strMensagem); | |
| 103 | - $objProcedimentoAndamentoDTO->setStrHash($hash); | |
| 104 | - $objProcedimentoAndamentoDTO->setNumTarefa($this->numTarefa); | |
| 105 | - | |
| 106 | - $objProcedimentoAndamentoBD->cadastrar($objProcedimentoAndamentoDTO); | |
| 107 | - // } | |
| 87 | + $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($objInfraIBanco); | |
| 88 | + $objProcedimentoAndamentoBD->cadastrar($objProcedimentoAndamentoDTO); | |
| 108 | 89 | |
| 109 | 90 | $objInfraIBanco->confirmarTransacao(); |
| 110 | 91 | } | ... | ... |