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