Commit a6016a7f5744ec5f6ff217e13585f58d83d656cf
1 parent
e4fa2a7c
Exists in
master
and in
21 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 | } | ... | ... |