Commit c536a3da9a333e1112f040d812bac2ee92a3113c
1 parent
2cc3d19e
Exists in
master
and in
1 other branch
[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.
Showing
2 changed files
with
41 additions
and
13 deletions
Show diff stats
... | ... | @@ -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 | /** | ... | ... |