Commit a88d67fd325a954fa3c7b7b0268f4188f9d153c6

Authored by Eduardo Heinske
1 parent 31274e05

Correção no e-mail e adaptação nas chamadas do serviço de consultar trâmite, pre…

…sentes no cancelamento do processo
dto/TramiteDTO.php
... ... @@ -18,11 +18,13 @@ class TramiteDTO extends InfraDTO {
18 18  
19 19 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuario', 'nome', 'usuario');
20 20 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUnidade', 'nome', 'unidade');
  21 + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdProcedimento', 'id_procedimento', 'md_pen_processo_eletronico');
21 22  
22 23 $this->configurarPK('NumeroRegistro', InfraDTO::$TIPO_PK_INFORMADO);
23 24 $this->configurarPK('IdTramite', InfraDTO::$TIPO_PK_INFORMADO);
24 25  
25 26 $this->configurarFK('NumeroRegistro', 'md_pen_tramite', 'numero_registro', InfraDTO::$TIPO_FK_OBRIGATORIA);
  27 + $this->configurarFK('NumeroRegistro', 'md_pen_processo_eletronico pe', 'pe.numero_registro');
26 28 $this->configurarFK('IdUsuario', 'usuario u', 'u.id_usuario');
27 29 $this->configurarFK('IdUnidade', 'unidade u', 'u.id_unidade');
28 30 }
... ...
rn/ExpedirProcedimentoRN.php
... ... @@ -1016,7 +1016,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1016 1016 $idSerieEmail = $objInfraParametro->getValor('ID_SERIE_EMAIL');
1017 1017 $docEmailEnviado = $objDocumentoDTO->getNumIdSerie() == $idSerieEmail && $objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_FORMULARIO_AUTOMATICO ? true : false;
1018 1018  
1019   - if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_GERADO && !$docEmailEnviado) {
  1019 + if($objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_INTERNO) {
1020 1020  
1021 1021 $objEditorDTO = new EditorDTO();
1022 1022 $objEditorDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
... ... @@ -1036,8 +1036,8 @@ class ExpedirProcedimentoRN extends InfraRN {
1036 1036 $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';
1037 1037 $arrInformacaoArquivo['ID_ANEXO'] = null;
1038 1038  
1039   - } else if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO || $docEmailEnviado) {
1040   -
  1039 + } else if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO) {
  1040 +
1041 1041 $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento());
1042 1042  
1043 1043 if(!isset($objAnexoDTO)){
... ... @@ -1086,8 +1086,23 @@ class ExpedirProcedimentoRN extends InfraRN {
1086 1086 $arrInformacaoArquivo['ID_ANEXO'] = $objAnexoDTO->getNumIdAnexo();
1087 1087 $arrInformacaoArquivo['dadosComplementaresDoTipoDeArquivo'] = $strDadosComplementaresDoTipoDeArquivo;
1088 1088  
1089   - } else {
1090   - throw new InfraException('Procedência do documento inválida.');
  1089 + }
  1090 + else {
  1091 +
  1092 + $objDocumentoDTO2 = new DocumentoDTO();
  1093 + $objDocumentoDTO2->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
  1094 + $objDocumentoDTO2->setObjInfraSessao(SessaoSEI::getInstance());
  1095 + $objDocumentoDTO2->setStrLinkDownload('controlador.php?acao=documento_download_anexo');
  1096 +
  1097 + $objDocumentoRN = new DocumentoRN();
  1098 + $strResultado = $objDocumentoRN->consultarHtmlFormulario($objDocumentoDTO2);
  1099 +
  1100 + $arrInformacaoArquivo['NOME'] = $strProtocoloDocumentoFormatado . ".html";
  1101 + $arrInformacaoArquivo['CONTEUDO'] = $strResultado;
  1102 + $arrInformacaoArquivo['TAMANHO'] = strlen($strResultado);
  1103 + $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';
  1104 + $arrInformacaoArquivo['ID_ANEXO'] = null;
  1105 +
1091 1106 }
1092 1107  
1093 1108 return $arrInformacaoArquivo;
... ... @@ -2043,11 +2058,38 @@ class ExpedirProcedimentoRN extends InfraRN {
2043 2058  
2044 2059 protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocolo) {
2045 2060  
  2061 + //Obtem o id_rh que representa a unidade no barramento
  2062 + $objInfraParametro = new InfraParametro($this->inicializarObjInfraIBanco());
  2063 + $numIdRespositorio = $objInfraParametro->getValor('PEN_ID_REPOSITORIO_ORIGEM');
  2064 +
  2065 + //Obtem os dados da unidade
  2066 + $objPenUnidadeDTO = new PenUnidadeDTO();
  2067 + $objPenUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  2068 + $objPenUnidadeDTO->retNumIdUnidadeRH();
  2069 +
  2070 + $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco());
  2071 + $objPenUnidadeDTO = $objGenericoBD->consultar($objPenUnidadeDTO);
  2072 +
  2073 + $objTramiteDTO = new TramiteDTO();
  2074 + $objTramiteDTO->setNumIdProcedimento($objDtoProtocolo->retDblIdProtocolo());
  2075 + $objTramiteDTO->setOrd('Registro', InfraDTO::$TIPO_ORDENACAO_DESC);
  2076 + $objTramiteDTO->setNumMaxRegistrosRetorno(1);
  2077 + $objTramiteDTO->retNumIdTramite();
  2078 +
  2079 + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco());
  2080 + $arrObjTramiteDTO = $objTramiteBD->listar($objTramiteDTO);
  2081 +
  2082 + if(!$arrObjTramiteDTO){
  2083 + return false;
  2084 + }
  2085 +
  2086 + $objTramiteDTO = $arrObjTramiteDTO[0];
  2087 +
2046 2088 //Armazena o id do protocolo
2047 2089 $dblIdProcedimento = $objDtoProtocolo->getDblIdProtocolo();
2048 2090  
2049   - $tramites = $this->objProcessoEletronicoRN->consultarTramitesProtocolo($objDtoProtocolo->getStrProtocoloFormatado());
2050   - $tramite = $tramites ? array_pop($tramites) : null;
  2091 + $tramites = $this->objProcessoEletronicoRN->consultarTramites($objTramiteDTO->getNumIdTramite(), null, $objPenUnidadeDTO->getNumIdUnidadeRH(), null, null, $numIdRespositorio);
  2092 + $tramite = $tramites ? $tramites[0] : null;
2051 2093  
2052 2094 if (!$tramite) {
2053 2095 throw new InfraException('Trâmite não encontrado para esse processo. ');
... ...
rn/ProcessoEletronicoRN.php
... ... @@ -861,46 +861,7 @@ class ProcessoEletronicoRN extends InfraRN {
861 861 }
862 862 }
863 863  
864   - /**
865   - * Consulta os tramites recusados
866   - *
867   - * @return array
868   - */
869   - public function consultarTramitesRecusados($parNumIdRespositorio, $parNumIdEstrutura) {
870   - try {
871   -
872   - $parametro = (object)array(
873   - 'filtroDeConsultaDeTramites' => (object)array(
874   - 'situacaoAtual' => 9,
875   - 'remetente' => (object)array(
876   - 'identificacaoDoRepositorioDeEstruturas' => $parNumIdRespositorio,
877   - 'numeroDeIdentificacaoDaEstrutura' => $parNumIdEstrutura
878   - )
879   - )
880   - );
881   -
882   - $objTramitesEncontrados = $this->getObjPenWs()->consultarTramites($parametro);
883   -
884   - $arrObjTramite = array();
885   -
886   - if (isset($objTramitesEncontrados->tramitesEncontrados)) {
887   -
888   - $arrObjTramite = $objTramitesEncontrados->tramitesEncontrados->tramite;
889   -
890   - if(!is_array($arrObjTramite)) {
891   - $arrObjTramite = array($objTramitesEncontrados->tramitesEncontrados->tramite);
892   - }
893   - }
894   -
895   - return $arrObjTramite;
896   - }
897   - catch (\SoapFault $fault) {
898   - throw new InfraException(InfraString::formatarJavaScript($this->tratarFalhaWebService($fault)), $fault);
899   - }
900   - catch (\Exception $e) {
901   - throw new InfraException("Error Processing Request", $e);
902   - }
903   - }
  864 +
904 865  
905 866 public function consultarTramites($parNumIdTramite = null, $parNumeroRegistro = null, $parNumeroUnidadeRemetente = null, $parNumeroUnidadeDestino = null, $parProtocolo = null, $parNumeroRepositorioEstruturas = null)
906 867 {
... ... @@ -916,11 +877,13 @@ class ProcessoEletronicoRN extends InfraRN {
916 877 }
917 878  
918 879 if(!is_null($parNumeroUnidadeRemetente) && !is_null($parNumeroRepositorioEstruturas)){
  880 + $parametro->filtroDeConsultaDeTramites->remetente = new stdClass();
919 881 $parametro->filtroDeConsultaDeTramites->remetente->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas;
920 882 $parametro->filtroDeConsultaDeTramites->remetente->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeRemetente;
921 883 }
922 884  
923 885 if(!is_null($parNumeroUnidadeDestino) && !is_null($parNumeroRepositorioEstruturas)){
  886 + $parametro->filtroDeConsultaDeTramites->destinatario = new stdClass();
924 887 $parametro->filtroDeConsultaDeTramites->destinatario->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas;
925 888 $parametro->filtroDeConsultaDeTramites->destinatario->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeDestino;
926 889 }
... ... @@ -1027,9 +990,24 @@ class ProcessoEletronicoRN extends InfraRN {
1027 990 throw new InfraException(utf8_encode('O processo não esta com o estado com "Em Processamento" ou "Bloqueado"'));
1028 991 }
1029 992  
  993 + $objTramiteDTO = new TramiteDTO();
  994 + $objTramiteDTO->setNumIdProcedimento($objProtocoloDTO->retDblIdProtocolo());
  995 + $objTramiteDTO->setOrd('Registro', InfraDTO::$TIPO_ORDENACAO_DESC);
  996 + $objTramiteDTO->setNumMaxRegistrosRetorno(1);
  997 + $objTramiteDTO->retNumIdTramite();
  998 +
  999 + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco());
  1000 + $arrObjTramiteDTO = $objTramiteBD->listar($objTramiteDTO);
  1001 +
  1002 + if(!$arrObjTramiteDTO){
  1003 + throw new InfraException('Trâmite não encontrado');
  1004 + }
  1005 +
  1006 + $objTramiteDTO = $arrObjTramiteDTO[0];
  1007 +
1030 1008 $objFiltro = new stdClass();
1031 1009 $objFiltro->filtroDeConsultaDeTramites = new stdClass();
1032   - $objFiltro->filtroDeConsultaDeTramites->protocolo = $objProtocoloDTO->getStrProtocoloFormatado();
  1010 + $objFiltro->filtroDeConsultaDeTramites->IDT = $objTramiteDTO->getNumIdTramite();
1033 1011  
1034 1012 $objResultado = $this->getObjPenWs()->consultarTramites($objFiltro);
1035 1013  
... ... @@ -1392,9 +1370,11 @@ class ProcessoEletronicoRN extends InfraRN {
1392 1370  
1393 1371 public function isDisponivelCancelarTramite($strProtocolo = ''){
1394 1372  
  1373 + //Obtem o id_rh que representa a unidade no barramento
1395 1374 $objInfraParametro = new InfraParametro($this->inicializarObjInfraIBanco());
1396 1375 $numIdRespositorio = $objInfraParametro->getValor('PEN_ID_REPOSITORIO_ORIGEM');
1397 1376  
  1377 + //Obtem os dados da unidade
1398 1378 $objPenUnidadeDTO = new PenUnidadeDTO();
1399 1379 $objPenUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
1400 1380 $objPenUnidadeDTO->retNumIdUnidadeRH();
... ... @@ -1402,15 +1382,38 @@ class ProcessoEletronicoRN extends InfraRN {
1402 1382 $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco());
1403 1383 $objPenUnidadeDTO = $objGenericoBD->consultar($objPenUnidadeDTO);
1404 1384  
  1385 + //Obtem os dados do último trâmite desse processo no barramento
  1386 + $objProtocoloDTO = new ProtocoloDTO();
  1387 + $objProtocoloDTO->setStrProtocoloFormatado($strProtocolo);
  1388 + $objProtocoloDTO->retDblIdProtocolo();
  1389 +
  1390 + $objProtocoloRN = new ProtocoloRN();
  1391 + $objProtocoloDTO = $objProtocoloRN->consultarRN0186($objProtocoloDTO);
  1392 +
  1393 + $objTramiteDTO = new TramiteDTO();
  1394 + $objTramiteDTO->setNumIdProcedimento($objProtocoloDTO->retDblIdProtocolo());
  1395 + $objTramiteDTO->setOrd('Registro', InfraDTO::$TIPO_ORDENACAO_DESC);
  1396 + $objTramiteDTO->setNumMaxRegistrosRetorno(1);
  1397 + $objTramiteDTO->retNumIdTramite();
  1398 +
  1399 + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco());
  1400 + $arrObjTramiteDTO = $objTramiteBD->listar($objTramiteDTO);
  1401 +
  1402 + if(!$arrObjTramiteDTO){
  1403 + return false;
  1404 + }
  1405 +
  1406 + $objTramiteDTO = $arrObjTramiteDTO[0];
  1407 +
1405 1408 try {
1406 1409  
1407 1410 $parametro = (object)array(
1408 1411 'filtroDeConsultaDeTramites' => (object)array(
  1412 + 'IDT' => $objTramiteDTO->getNumIdTramite(),
1409 1413 'remetente' => (object)array(
1410 1414 'identificacaoDoRepositorioDeEstruturas' => $numIdRespositorio,
1411 1415 'numeroDeIdentificacaoDaEstrutura' => $objPenUnidadeDTO->getNumIdUnidadeRH()
1412 1416 ),
1413   - 'protocolo' => $strProtocolo
1414 1417 )
1415 1418 );
1416 1419  
... ... @@ -1422,7 +1425,7 @@ class ProcessoEletronicoRN extends InfraRN {
1422 1425  
1423 1426 $arrObjMetaTramite = !is_array($objMeta->tramitesEncontrados->tramite) ? array($objMeta->tramitesEncontrados->tramite) : $objMeta->tramitesEncontrados->tramite;
1424 1427  
1425   - $objMetaTramite = array_pop($arrObjMetaTramite);
  1428 + $objMetaTramite = $arrObjMetaTramite[0];
1426 1429  
1427 1430 switch($objMetaTramite->situacaoAtual){
1428 1431  
... ...