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,11 +18,13 @@ class TramiteDTO extends InfraDTO {
18 18
19 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuario', 'nome', 'usuario'); 19 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuario', 'nome', 'usuario');
20 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUnidade', 'nome', 'unidade'); 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 $this->configurarPK('NumeroRegistro', InfraDTO::$TIPO_PK_INFORMADO); 23 $this->configurarPK('NumeroRegistro', InfraDTO::$TIPO_PK_INFORMADO);
23 $this->configurarPK('IdTramite', InfraDTO::$TIPO_PK_INFORMADO); 24 $this->configurarPK('IdTramite', InfraDTO::$TIPO_PK_INFORMADO);
24 25
25 $this->configurarFK('NumeroRegistro', 'md_pen_tramite', 'numero_registro', InfraDTO::$TIPO_FK_OBRIGATORIA); 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 $this->configurarFK('IdUsuario', 'usuario u', 'u.id_usuario'); 28 $this->configurarFK('IdUsuario', 'usuario u', 'u.id_usuario');
27 $this->configurarFK('IdUnidade', 'unidade u', 'u.id_unidade'); 29 $this->configurarFK('IdUnidade', 'unidade u', 'u.id_unidade');
28 } 30 }
rn/ExpedirProcedimentoRN.php
@@ -1016,7 +1016,7 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1016,7 +1016,7 @@ class ExpedirProcedimentoRN extends InfraRN {
1016 $idSerieEmail = $objInfraParametro->getValor('ID_SERIE_EMAIL'); 1016 $idSerieEmail = $objInfraParametro->getValor('ID_SERIE_EMAIL');
1017 $docEmailEnviado = $objDocumentoDTO->getNumIdSerie() == $idSerieEmail && $objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_FORMULARIO_AUTOMATICO ? true : false; 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 $objEditorDTO = new EditorDTO(); 1021 $objEditorDTO = new EditorDTO();
1022 $objEditorDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); 1022 $objEditorDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
@@ -1036,8 +1036,8 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1036,8 +1036,8 @@ class ExpedirProcedimentoRN extends InfraRN {
1036 $arrInformacaoArquivo['MIME_TYPE'] = 'text/html'; 1036 $arrInformacaoArquivo['MIME_TYPE'] = 'text/html';
1037 $arrInformacaoArquivo['ID_ANEXO'] = null; 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 $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento()); 1041 $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento());
1042 1042
1043 if(!isset($objAnexoDTO)){ 1043 if(!isset($objAnexoDTO)){
@@ -1086,8 +1086,23 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -1086,8 +1086,23 @@ class ExpedirProcedimentoRN extends InfraRN {
1086 $arrInformacaoArquivo['ID_ANEXO'] = $objAnexoDTO->getNumIdAnexo(); 1086 $arrInformacaoArquivo['ID_ANEXO'] = $objAnexoDTO->getNumIdAnexo();
1087 $arrInformacaoArquivo['dadosComplementaresDoTipoDeArquivo'] = $strDadosComplementaresDoTipoDeArquivo; 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 return $arrInformacaoArquivo; 1108 return $arrInformacaoArquivo;
@@ -2043,11 +2058,38 @@ class ExpedirProcedimentoRN extends InfraRN { @@ -2043,11 +2058,38 @@ class ExpedirProcedimentoRN extends InfraRN {
2043 2058
2044 protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocolo) { 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 //Armazena o id do protocolo 2088 //Armazena o id do protocolo
2047 $dblIdProcedimento = $objDtoProtocolo->getDblIdProtocolo(); 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 if (!$tramite) { 2094 if (!$tramite) {
2053 throw new InfraException('Trâmite não encontrado para esse processo. '); 2095 throw new InfraException('Trâmite não encontrado para esse processo. ');
rn/ProcessoEletronicoRN.php
@@ -861,46 +861,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -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 public function consultarTramites($parNumIdTramite = null, $parNumeroRegistro = null, $parNumeroUnidadeRemetente = null, $parNumeroUnidadeDestino = null, $parProtocolo = null, $parNumeroRepositorioEstruturas = null) 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,11 +877,13 @@ class ProcessoEletronicoRN extends InfraRN {
916 } 877 }
917 878
918 if(!is_null($parNumeroUnidadeRemetente) && !is_null($parNumeroRepositorioEstruturas)){ 879 if(!is_null($parNumeroUnidadeRemetente) && !is_null($parNumeroRepositorioEstruturas)){
  880 + $parametro->filtroDeConsultaDeTramites->remetente = new stdClass();
919 $parametro->filtroDeConsultaDeTramites->remetente->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas; 881 $parametro->filtroDeConsultaDeTramites->remetente->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas;
920 $parametro->filtroDeConsultaDeTramites->remetente->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeRemetente; 882 $parametro->filtroDeConsultaDeTramites->remetente->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeRemetente;
921 } 883 }
922 884
923 if(!is_null($parNumeroUnidadeDestino) && !is_null($parNumeroRepositorioEstruturas)){ 885 if(!is_null($parNumeroUnidadeDestino) && !is_null($parNumeroRepositorioEstruturas)){
  886 + $parametro->filtroDeConsultaDeTramites->destinatario = new stdClass();
924 $parametro->filtroDeConsultaDeTramites->destinatario->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas; 887 $parametro->filtroDeConsultaDeTramites->destinatario->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas;
925 $parametro->filtroDeConsultaDeTramites->destinatario->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeDestino; 888 $parametro->filtroDeConsultaDeTramites->destinatario->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeDestino;
926 } 889 }
@@ -1027,9 +990,24 @@ class ProcessoEletronicoRN extends InfraRN { @@ -1027,9 +990,24 @@ class ProcessoEletronicoRN extends InfraRN {
1027 throw new InfraException(utf8_encode('O processo não esta com o estado com "Em Processamento" ou "Bloqueado"')); 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 $objFiltro = new stdClass(); 1008 $objFiltro = new stdClass();
1031 $objFiltro->filtroDeConsultaDeTramites = new stdClass(); 1009 $objFiltro->filtroDeConsultaDeTramites = new stdClass();
1032 - $objFiltro->filtroDeConsultaDeTramites->protocolo = $objProtocoloDTO->getStrProtocoloFormatado(); 1010 + $objFiltro->filtroDeConsultaDeTramites->IDT = $objTramiteDTO->getNumIdTramite();
1033 1011
1034 $objResultado = $this->getObjPenWs()->consultarTramites($objFiltro); 1012 $objResultado = $this->getObjPenWs()->consultarTramites($objFiltro);
1035 1013
@@ -1392,9 +1370,11 @@ class ProcessoEletronicoRN extends InfraRN { @@ -1392,9 +1370,11 @@ class ProcessoEletronicoRN extends InfraRN {
1392 1370
1393 public function isDisponivelCancelarTramite($strProtocolo = ''){ 1371 public function isDisponivelCancelarTramite($strProtocolo = ''){
1394 1372
  1373 + //Obtem o id_rh que representa a unidade no barramento
1395 $objInfraParametro = new InfraParametro($this->inicializarObjInfraIBanco()); 1374 $objInfraParametro = new InfraParametro($this->inicializarObjInfraIBanco());
1396 $numIdRespositorio = $objInfraParametro->getValor('PEN_ID_REPOSITORIO_ORIGEM'); 1375 $numIdRespositorio = $objInfraParametro->getValor('PEN_ID_REPOSITORIO_ORIGEM');
1397 1376
  1377 + //Obtem os dados da unidade
1398 $objPenUnidadeDTO = new PenUnidadeDTO(); 1378 $objPenUnidadeDTO = new PenUnidadeDTO();
1399 $objPenUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); 1379 $objPenUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
1400 $objPenUnidadeDTO->retNumIdUnidadeRH(); 1380 $objPenUnidadeDTO->retNumIdUnidadeRH();
@@ -1402,15 +1382,38 @@ class ProcessoEletronicoRN extends InfraRN { @@ -1402,15 +1382,38 @@ class ProcessoEletronicoRN extends InfraRN {
1402 $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco()); 1382 $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco());
1403 $objPenUnidadeDTO = $objGenericoBD->consultar($objPenUnidadeDTO); 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 try { 1408 try {
1406 1409
1407 $parametro = (object)array( 1410 $parametro = (object)array(
1408 'filtroDeConsultaDeTramites' => (object)array( 1411 'filtroDeConsultaDeTramites' => (object)array(
  1412 + 'IDT' => $objTramiteDTO->getNumIdTramite(),
1409 'remetente' => (object)array( 1413 'remetente' => (object)array(
1410 'identificacaoDoRepositorioDeEstruturas' => $numIdRespositorio, 1414 'identificacaoDoRepositorioDeEstruturas' => $numIdRespositorio,
1411 'numeroDeIdentificacaoDaEstrutura' => $objPenUnidadeDTO->getNumIdUnidadeRH() 1415 'numeroDeIdentificacaoDaEstrutura' => $objPenUnidadeDTO->getNumIdUnidadeRH()
1412 ), 1416 ),
1413 - 'protocolo' => $strProtocolo  
1414 ) 1417 )
1415 ); 1418 );
1416 1419
@@ -1422,7 +1425,7 @@ class ProcessoEletronicoRN extends InfraRN { @@ -1422,7 +1425,7 @@ class ProcessoEletronicoRN extends InfraRN {
1422 1425
1423 $arrObjMetaTramite = !is_array($objMeta->tramitesEncontrados->tramite) ? array($objMeta->tramitesEncontrados->tramite) : $objMeta->tramitesEncontrados->tramite; 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 switch($objMetaTramite->situacaoAtual){ 1430 switch($objMetaTramite->situacaoAtual){
1428 1431