Commit c536a3da9a333e1112f040d812bac2ee92a3113c

Authored by eduardo.batista
1 parent 2cc3d19e
Exists in master and in 1 other branch desenv

[FEAT] Alterando lógica de exibição de retorno programado na listagem de processos.

Estava implementado conforme WSSEI antigo feito pela MBA porém usava a última atividade que não é necessáriamente a atividade de envio. Com isso não retornava corretamente os retornos programados.

Foi criado um novo objeto para busca direta entre retorno programado e protocolo. Com isto retorna os retornos programados que ainda não tenham sido concluídos.
dto/MdWsSeiRetornoProgramadoDTO.php 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +<?
  2 +
  3 +class MdWsSeiRetornoProgramadoDTO extends RetornoProgramadoDTO{
  4 +
  5 + public function montar(){
  6 + parent::montar();
  7 +
  8 + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DBL,
  9 + 'IdProtocolo',
  10 + 'e.id_protocolo',
  11 + 'atividade e');
  12 +
  13 + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH,
  14 + 'Conclusao',
  15 + 'e.dth_conclusao',
  16 + 'atividade e');
  17 + }
  18 +
  19 +}
... ...
rn/MdWsSeiProcedimentoRN.php
... ... @@ -328,15 +328,17 @@ class MdWsSeiProcedimentoRN extends InfraRN {
328 328 $atividadeDTO = $arrAtividades[0];
329 329 $documentoNovo = $atividadeDTO->getNumIdTarefa() == 1 ? 'S' : 'N';
330 330 $usuarioAtribuido = $atividadeDTO->getStrNomeUsuarioAtribuicao();
331   - $dadosRetornoProgramado = $this->checaRetornoProgramado($atividadeDTO);
332   - $retornoProgramado = $dadosRetornoProgramado['retornoProgramado'];
333   - $retornoAtrasado = $dadosRetornoProgramado['expirado'];
334   - $retornoData = $dadosRetornoProgramado['data'];
335 331 $tipoVisualizacao = $atividadeDTO->getNumTipoVisualizacao() == 0 ? 'S' : 'N';
336 332 if($atividadeDTO->getNumIdUsuarioVisualizacao() == $usuarioAtribuicaoAtividade){
337 333 $usuarioVisualizacao = 'S';
338 334 }
339 335 }
  336 + $dadosRetornoProgramado = $this->checaRetornoProgramado($protocoloDTO);
  337 + if($dadosRetornoProgramado){
  338 + $retornoProgramado = $dadosRetornoProgramado['retornoProgramado'];
  339 + $retornoAtrasado = $dadosRetornoProgramado['expirado'];
  340 + $retornoData = $dadosRetornoProgramado['data'];
  341 + }
340 342 $documentoRN = new DocumentoRN();
341 343 $documentoDTOConsulta = new DocumentoDTO();
342 344 $documentoDTOConsulta->setDblIdProcedimento($protocoloDTO->getDblIdProtocolo());
... ... @@ -432,26 +434,33 @@ class MdWsSeiProcedimentoRN extends InfraRN {
432 434 return $result;
433 435 }
434 436  
435   - private function checaRetornoProgramado(AtividadeDTO $atividadeDTO){
  437 + private function checaRetornoProgramado(ProtocoloDTO $protocoloDTO){
436 438 $retProgramado = 'N';
437 439 $expirado = 'N';
  440 + $dataRetorno = null;
438 441 $retornoProgramadoRN = new RetornoProgramadoRN();
439   - $retornoProgramadoDTO = new RetornoProgramadoDTO();
440   - $retornoProgramadoDTO->retDtaProgramada();
441   - $retornoProgramadoDTO->adicionarCriterio(
442   - array('IdAtividadeEnvio', 'IdAtividadeRetorno'),
  442 + $retornoProgramadoDTOConsulta = new MdWsSeiRetornoProgramadoDTO();
  443 + $retornoProgramadoDTOConsulta->retDtaProgramada();
  444 + $retornoProgramadoDTOConsulta->retNumIdAtividadeEnvio();
  445 +
  446 + $retornoProgramadoDTOConsulta->adicionarCriterio(
  447 + array('IdProtocolo', 'Conclusao'),
443 448 array(InfraDTO::$OPER_IGUAL, InfraDTO::$OPER_IGUAL),
444   - array($atividadeDTO->getNumIdAtividade(), null),
  449 + array($protocoloDTO->getDblIdProtocolo(), null),
445 450 array(InfraDTO::$OPER_LOGICO_AND)
446 451 );
447   - $retornoProgramadoDTO = $retornoProgramadoRN->consultar($retornoProgramadoDTO);
  452 + $retornoProgramadoDTOConsulta->setNumMaxRegistrosRetorno(1);
  453 + $retornoProgramadoDTOConsulta->setOrdNumIdRetornoProgramado(InfraDTO::$TIPO_ORDENACAO_DESC);
  454 + $ret = $retornoProgramadoRN->listar($retornoProgramadoDTOConsulta);
448 455  
449   - if ($retornoProgramadoDTO) {
  456 + if ($ret) {
  457 + $retornoProgramadoDTO = $ret[0];
450 458 $expirado = ($retornoProgramadoDTO->getDtaProgramada() < new Datetime());
451 459 $retProgramado = 'S';
  460 + $dataRetorno = $retornoProgramadoDTO->getDtaProgramada();
452 461 }
453 462  
454   - return ['retornoProgramado' => $retProgramado, 'expirado' => $expirado];
  463 + return ['retornoProgramado' => $retProgramado, 'expirado' => $expirado, 'data' => $dataRetorno];
455 464 }
456 465  
457 466 /**
... ...