Tabela de conteúdos

~~ODT~~

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

Relatório Docentes Ativos por Faixa Etária

Este é um relatório gerado mensalmente, e tem por objetivo exibir um quantitativo dos docentes ativos, separados por faixa etária e sexo. Está disponibilizado no portal público do SIGRH podendo ser acessador por qualquer pessoa.

Descrição do Caso de Uso

O Caso de Uso inicia-se quando o usuário acessa a opção: SIGRH → Portal Público → Quantitativos → Relatórios Mensais → Docentes Ativos por Faixa Etária

Após acessar a referida opção, o usuário é encaminhado para uma tela onde será possível selecionar um mês e ano para filtragem do relatório.

Ao acessar a opção Consultar, será gerado um relatório em formato PDF com os seguintes dados juntamente com sua disposição em tela:

Faixa Etária Masculino Feminino Total
0 a 24 anos 9999 9999 9999
25 a 29 anos 9999 9999 9999
30 a 34 anos 9999 9999 9999
35 a 39 anos 9999 9999 9999
40 a 44 anos 9999 9999 9999
45 a 49 anos 9999 9999 9999
50 a 54 anos 9999 9999 9999
55 a 59 anos 9999 9999 9999
60 a 64 anos 9999 9999 9999
65 anos ou mais 9999 9999 9999

Abaixo da tabela é exibido um gráfico com os mesmos dados exibidos na tabela

Então o caso de uso é finalizado.

Principais Regras de Negócio

Não se aplica.

Resoluções/Legislações Associadas

Não se aplica.

Plano de Teste

Sistema: SIGRH

Módulo: Portal Público

Link(s): Quantitativos → Relatórios Mensais → Docentes Ativos por Faixa Etária

Usuário: Não se aplica.

Papel que usuário deve ter: Não se aplica.

Cenários de Teste

Utilizar a consulta abaixo para validar os dados do relatório, lembrando de substituir os parâmetros indicados na consulta pelos dados usados na filtragem do relatório.

ex.: Mes = 09, Ano = 2011, Primeiro Dia do Mês = '01-09-2011', e a data de exclusão será gerada sempre como o último dia do Mês selecionado, '30-09-2011'.

Dados para o Teste

  SELECT *, CAST (MASCULINO+FEMININO AS FLOAT ) AS TOTAL FROM (              
	 SELECT A.DESCRICAO,                                                        
	       (                                                                    
	        SELECT CAST (COUNT(*) AS FLOAT )                                    
	          FROM FUNCIONAL.HISTORICO_SERVIDOR H                               
	         INNER JOIN RH.SERVIDOR S ON S.ID_SERVIDOR=H.ID_SERVIDOR            
		 INNER JOIN COMUM.PESSOA  P ON P.ID_PESSOA=S.ID_PESSOA                   
	         INNER JOIN RH.FORMACAO F ON F.ID_FORMACAO=P.ID_TIPO_FORMACAO       
		 WHERE H.ANO=:ano AND H.MES=:mes                                         
	           AND (((S.ID_CATEGORIA=1 AND S.ID_CARGO IN (60001,60011,702001)) AND S.ID_SITUACAO IN (1,8,12,20)) 
	                OR (S.ID_CARGO IN (60012,702003))                           
	                OR (S.ID_CARGO = 60002)                                     
	               )                                                            
	           AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao)  
	           AND P.SEXO='M'                                                   
	           AND date_part('YEAR', age(:primeiroDiaDoMes, P.DATA_NASCIMENTO)) BETWEEN A.MINIMO AND A.MAXIMO    
	       ) AS MASCULINO,                                                      
	       (                                                                    
	        SELECT CAST (COUNT(*) AS FLOAT )                                    
	          FROM FUNCIONAL.HISTORICO_SERVIDOR H                               
	         INNER JOIN RH.SERVIDOR S ON S.ID_SERVIDOR=H.ID_SERVIDOR            
		 INNER JOIN COMUM.PESSOA  P ON P.ID_PESSOA=S.ID_PESSOA                   
	         INNER JOIN RH.FORMACAO F ON F.ID_FORMACAO=P.ID_TIPO_FORMACAO       
		 WHERE H.ANO=:ano AND H.MES=:mes                                         
	           AND (((S.ID_CATEGORIA=1 AND S.ID_CARGO IN (60001,60011,702001)) AND S.ID_SITUACAO IN (1,8,12,20)) 
	                OR (S.ID_CARGO IN (60012,702003))                           
	                OR (S.ID_CARGO = 60002)                                     
	               )                                                            
	           AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao)  
	           AND P.SEXO='F'                                                   
	           AND date_part('YEAR', age(:primeiroDiaDoMes, P.DATA_NASCIMENTO)) BETWEEN A.MINIMO AND A.MAXIMO    
	       ) AS FEMININO,MINIMO                                       
	 FROM (                                                           
	 SELECT 'MENOR QUE 24 ANOS' AS DESCRICAO,0 AS MINIMO,24 AS MAXIMO 
	 UNION                          
	 SELECT 'DE 25 A 29 ANOS',25,29 
	 UNION                          
	 SELECT 'DE 30 A 34 ANOS',30,34 
	 UNION                          
	 SELECT 'DE 35 A 39 ANOS',35,39 
	 UNION                          
	 SELECT 'DE 40 A 44 ANOS',40,44 
	 UNION                          
	 SELECT 'DE 45 A 49 ANOS',45,49 
	 UNION                          
	 SELECT 'DE 50 A 54 ANOS',50,54 
	 UNION                          
	 SELECT 'DE 55 A 59 ANOS',55,59 
	 UNION                          
	 SELECT 'DE 60 A 64 ANOS',60,64 
	 UNION                          
	 SELECT '65 ANOS OU MAIS',65,999 
	 ) A      
	 ORDER BY A.MINIMO 
	 ) B