~~ODT~~

Última atualização: 2017/04/03 18:19 (edição externa)

Total de servidores aposentados e pensionistas X ativos

Esse caso de uso tem por finalidade gerar um relatório com a quantidade total de aposentados da UFRN e dos hospitais. Esse relatório é gerado utilizando uma consulta por período e é utilizado por qualquer usuário do sistema.

Descrição do Caso de Uso

Este caso de uso inicia quando o usuário acessa a opção: SIGRH → Portal Público → Relatórios Estatísticos → Entrar na página de Relatórios Estatísticos → Total de servidores aposentados e pensionistas X ativos.

Para realizar uma consulta, deve-se entrar com os seguintes dados:

Então o sistema exibe um relatório.

TOTAL DE APOSENTADOS - UFRN e HOSPITAIS

MESES
Servidores Jan FevMarAbrMaiJunJulAgoSetOutNovDez
UFRN 999999999999999999999999999999999999
Hospitais 999999999999999999999999999999999999
TOTAL 999999999999999999999999999999999999

O gráfico deve seguir o seguinte modelo:

O caso de uso é finalizado.

Principais Regras de Negócio

Não se aplica.

Classes Persistentes e Tabelas Envolvidas

Classe Tabela
br.ufrn.rh.dominio.Servidor administrativo.rh.servidor
br.ufrn.sigrh.dominio.Unidade administrativo.comum.unidade

Plano de Teste

Sistema: SIGRH

Módulo: Portal Público

Link(s): Este caso de uso inicia quando o usuário acessa a opção: SIGRH → Portal Público → Relatórios Estatísticos → Entrar na página de Relatórios Estatísticos → Total de servidores aposentados e pensionistas X ativos.

Cenários de Teste

http://homologacao.info.ufrn.br/sigrh/public/home.jsf

http://testes.info.ufrn.br/sigrh/public/home.jsf

http://www.sigrh.ufrn.br/sigrh/public/home.jsf

Realizar as consultas no banco de dados e comparar com os resultados mostrados no relatório.

Dados para o Teste

Script para consultar os aposentados:

SELECT 'UFRN' AS DENOMINACAO,
     1 AS ORDEM,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-01-31') THEN 1 ELSE NULL END) AS JANEIRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-02-28') THEN 1 ELSE NULL END) AS FEVEREIRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-03-31') THEN 1 ELSE NULL END) AS MARCO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-04-30') THEN 1 ELSE NULL END) AS ABRIL,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-05-31') THEN 1 ELSE NULL END) AS MAIO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-06-30') THEN 1 ELSE NULL END) AS JUNHO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-07-31') THEN 1 ELSE NULL END) AS JULHO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-08-31') THEN 1 ELSE NULL END) AS AGOSTO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-09-30') THEN 1 ELSE NULL END) AS SETEMBRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-10-31') THEN 1 ELSE NULL END) AS OUTUBRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-11-30') THEN 1 ELSE NULL END) AS NOVEMBRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-12-31') THEN 1 ELSE NULL END) AS DEZEMBRO
  FROM RH.servidor AS rs
    INNER JOIN COMUM.unidade AS cu ON cu.id_unidade = rs.id_unidade
  WHERE rs.id_categoria IN (1,2)
        AND rs.id_situacao = 2
        AND (cu.id_classificacao_unidade IS NULL OR cu.id_classificacao_unidade != 2)
UNION
SELECT 'Hospitais' AS DENOMINACAO,
     2 AS ORDEM,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-01-31') THEN 1 ELSE NULL END) AS JANEIRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-02-28') THEN 1 ELSE NULL END) AS FEVEREIRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-03-31') THEN 1 ELSE NULL END) AS MARCO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-04-30') THEN 1 ELSE NULL END) AS ABRIL,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-05-31') THEN 1 ELSE NULL END) AS MAIO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-06-30') THEN 1 ELSE NULL END) AS JUNHO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-07-31') THEN 1 ELSE NULL END) AS JULHO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-08-31') THEN 1 ELSE NULL END) AS AGOSTO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-09-30') THEN 1 ELSE NULL END) AS SETEMBRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-10-31') THEN 1 ELSE NULL END) AS OUTUBRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-11-30') THEN 1 ELSE NULL END) AS NOVEMBRO,
     COUNT(CASE WHEN (rs.data_desligamento IS NULL OR rs.data_desligamento >= '2010-12-31') THEN 1 ELSE NULL END) AS DEZEMBRO
  FROM RH.servidor AS rs
    INNER JOIN COMUM.unidade AS cu ON cu.id_unidade = rs.id_unidade
  WHERE rs.id_categoria IN (1,2)
        AND rs.id_situacao = 2
        AND cu.id_classificacao_unidade = 2
ORDER BY ORDEM