From c536a3da9a333e1112f040d812bac2ee92a3113c Mon Sep 17 00:00:00 2001 From: eduardo.batista Date: Wed, 19 Apr 2017 17:17:24 -0300 Subject: [PATCH] [FEAT] Alterando lógica de exibição de retorno programado na listagem de processos. --- dto/MdWsSeiRetornoProgramadoDTO.php | 19 +++++++++++++++++++ rn/MdWsSeiProcedimentoRN.php | 35 ++++++++++++++++++++++------------- 2 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 dto/MdWsSeiRetornoProgramadoDTO.php diff --git a/dto/MdWsSeiRetornoProgramadoDTO.php b/dto/MdWsSeiRetornoProgramadoDTO.php new file mode 100644 index 0000000..56bcec0 --- /dev/null +++ b/dto/MdWsSeiRetornoProgramadoDTO.php @@ -0,0 +1,19 @@ +adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DBL, + 'IdProtocolo', + 'e.id_protocolo', + 'atividade e'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, + 'Conclusao', + 'e.dth_conclusao', + 'atividade e'); + } + +} diff --git a/rn/MdWsSeiProcedimentoRN.php b/rn/MdWsSeiProcedimentoRN.php index a20c27e..4b0a948 100644 --- a/rn/MdWsSeiProcedimentoRN.php +++ b/rn/MdWsSeiProcedimentoRN.php @@ -328,15 +328,17 @@ class MdWsSeiProcedimentoRN extends InfraRN { $atividadeDTO = $arrAtividades[0]; $documentoNovo = $atividadeDTO->getNumIdTarefa() == 1 ? 'S' : 'N'; $usuarioAtribuido = $atividadeDTO->getStrNomeUsuarioAtribuicao(); - $dadosRetornoProgramado = $this->checaRetornoProgramado($atividadeDTO); - $retornoProgramado = $dadosRetornoProgramado['retornoProgramado']; - $retornoAtrasado = $dadosRetornoProgramado['expirado']; - $retornoData = $dadosRetornoProgramado['data']; $tipoVisualizacao = $atividadeDTO->getNumTipoVisualizacao() == 0 ? 'S' : 'N'; if($atividadeDTO->getNumIdUsuarioVisualizacao() == $usuarioAtribuicaoAtividade){ $usuarioVisualizacao = 'S'; } } + $dadosRetornoProgramado = $this->checaRetornoProgramado($protocoloDTO); + if($dadosRetornoProgramado){ + $retornoProgramado = $dadosRetornoProgramado['retornoProgramado']; + $retornoAtrasado = $dadosRetornoProgramado['expirado']; + $retornoData = $dadosRetornoProgramado['data']; + } $documentoRN = new DocumentoRN(); $documentoDTOConsulta = new DocumentoDTO(); $documentoDTOConsulta->setDblIdProcedimento($protocoloDTO->getDblIdProtocolo()); @@ -432,26 +434,33 @@ class MdWsSeiProcedimentoRN extends InfraRN { return $result; } - private function checaRetornoProgramado(AtividadeDTO $atividadeDTO){ + private function checaRetornoProgramado(ProtocoloDTO $protocoloDTO){ $retProgramado = 'N'; $expirado = 'N'; + $dataRetorno = null; $retornoProgramadoRN = new RetornoProgramadoRN(); - $retornoProgramadoDTO = new RetornoProgramadoDTO(); - $retornoProgramadoDTO->retDtaProgramada(); - $retornoProgramadoDTO->adicionarCriterio( - array('IdAtividadeEnvio', 'IdAtividadeRetorno'), + $retornoProgramadoDTOConsulta = new MdWsSeiRetornoProgramadoDTO(); + $retornoProgramadoDTOConsulta->retDtaProgramada(); + $retornoProgramadoDTOConsulta->retNumIdAtividadeEnvio(); + + $retornoProgramadoDTOConsulta->adicionarCriterio( + array('IdProtocolo', 'Conclusao'), array(InfraDTO::$OPER_IGUAL, InfraDTO::$OPER_IGUAL), - array($atividadeDTO->getNumIdAtividade(), null), + array($protocoloDTO->getDblIdProtocolo(), null), array(InfraDTO::$OPER_LOGICO_AND) ); - $retornoProgramadoDTO = $retornoProgramadoRN->consultar($retornoProgramadoDTO); + $retornoProgramadoDTOConsulta->setNumMaxRegistrosRetorno(1); + $retornoProgramadoDTOConsulta->setOrdNumIdRetornoProgramado(InfraDTO::$TIPO_ORDENACAO_DESC); + $ret = $retornoProgramadoRN->listar($retornoProgramadoDTOConsulta); - if ($retornoProgramadoDTO) { + if ($ret) { + $retornoProgramadoDTO = $ret[0]; $expirado = ($retornoProgramadoDTO->getDtaProgramada() < new Datetime()); $retProgramado = 'S'; + $dataRetorno = $retornoProgramadoDTO->getDtaProgramada(); } - return ['retornoProgramado' => $retProgramado, 'expirado' => $expirado]; + return ['retornoProgramado' => $retProgramado, 'expirado' => $expirado, 'data' => $dataRetorno]; } /** -- libgit2 0.21.2