~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Relatório Docentes por Categoria Funcional ====== Este relatório tem por objetivo exibir um quantitativo dos docentes ativos, separados por categoria funcional 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 Por Categoria Funcional// 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. * **__Mês/Ano__**: tipo TEXTO com as opções dos meses do ano em um combobox, e outro combobox com os anos a partir de 2005. 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: ^Categoria Funcional ^Masculino ^Feminino ^Total | | Professor de 3º grau | 9999 | 9999 | 9999 | | Professor de 3º grau Substituto | 9999 | 9999 | 9999 | | Professor de 1º e 2º grau | 9999 | 9999 | 9999 | | Professor de 1º e 2º grau Substituto| 9999 | 9999 | 9999 | Abaixo da tabela é exibido um gráfico com os mesmos dados exibidos na tabela {{:desenvolvimento:especificacoes:sigrh:publico:casos_de_uso:quantitativos:relatorios_mensais:docentes_por_categoria_funcional.png|}} 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): Portal Público → Quantitativos → Relatórios Mensais → Docentes Por Categoria Funcional 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 DESCRICAO,MASCULINO,FEMININO,(MASCULINOFEMININO) AS TOTAL FROM ( SELECT 1 AS ORDEM,'PROFESSOR 3º GRAU' AS 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='M' AND S.ID_SITUACAO IN (1,8,12,20) /*ATIVO/CELETISTA*/ AND S.ID_CARGO = 60001 AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='F' AND S.ID_SITUACAO IN (1,8,12,20) /*ATIVO/CELETISTA*/ AND S.ID_CARGO= 60001 AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) AS FEMININO UNION SELECT 2 AS ORDEM,'PROFESSOR 3º GRAU SUBSTITUTO' AS 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='M' AND S.ID_SITUACAO IN (1,8,12,20) /*ATIVO/CELETISTA*/ AND S.ID_CARGO = 60002 AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='F' AND S.ID_SITUACAO IN (1,8,12,20) /*ATIVO/CELETISTA*/ AND S.ID_CARGO = 60002 AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) AS FEMININO UNION SELECT 3 AS ORDEM,'PROFESSOR 1º E 2º GRAUS' AS 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='M' AND S.ID_SITUACAO IN (1,8,12,20) AND S.ID_CARGO IN (60011,702001) AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='F' AND S.ID_SITUACAO IN (1,8,12,20) /*ATIVO/CELETISTA*/ AND S.ID_CARGO IN (60011,702001) AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) AS FEMININO UNION SELECT 3 AS ORDEM,'PROFESSOR 1º E 2º GRAUS SUBSTITUTO' AS 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='M' AND S.ID_SITUACAO IN (1,8,12,20) AND S.ID_CARGO IN (60012,702003) AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) 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 LEFT JOIN COMUM.UNIDADE U ON U.ID_UNIDADE=S.ID_UNIDADE WHERE H.ANO=:ano AND H.MES=:mes AND S.ID_CATEGORIA=1 /*DOCENTE*/ AND P.SEXO='F' AND S.ID_SITUACAO IN (1,8,12,20) AND S.ID_CARGO IN (60012,702003) AND (S.DATA_EXCLUSAO IS NULL OR S.DATA_EXCLUSAO>=:dataExclusao) ) AS FEMININO ) A ORDER BY ORDEM