~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Relatório da Situação do Envio da Frequência ====== Esse caso de uso tem por finalidade exibir o relatório da situação do envio da frequência. Esse relatório com opção de impressão é gerado utilizando um filtro por mês e ano. O administrador do departamento de pessoal é o responsável por essa funcionalidade. ===== Descrição do Caso de Uso ===== Este caso de uso inicia-se quando o usuário acessa a opção: O usuário entra com os seguintes dados: * **Mês***: Tipo - TEXTO. São apresentadas opções: ''Janeiro, Fevereiro, ..., Dezembro''. * **Ano***: Formato - AAAA, Tipo - DATA. O sistema gera o relatório, com opção de impressão, separando em três tabelas as unidades ([[#principais_regras_de_negócio|RN01]]) que enviaram a frequência integralmente, as que enviaram parcialmente e as que não enviaram. São exibidos os seguintes dados: * As três tabelas listam as unidades, cada uma exibindo: * **__Unidade__**: Formato - CÓDIGO - NOME DA UNIDADE, Tipo - NUMÉRICO e TEXTO. Modelo de Relatório: Situação do Envio da Frequência - Fevereiro de 2010 As unidades apresentadas abaixo são aquelas que possuem servidores ativos no mês/ano informado. | **Unidades que Enviaram a Frequência Integralmente (99)** | ^Unidade de Exercício^ |999999 - NOME DA UNIDADE 1| |999999 - NOME DA UNIDADE 2| | **Unidades que Enviaram a Frequência Parcialmente (99)** | ^Unidade de Exercício^ |999999 - NOME DA UNIDADE 3| |999999 - NOME DA UNIDADE 4| | **Unidades que não Enviaram a Frequência (3)** | ^Unidade de Exercício^ |999999 - NOME DA UNIDADE 5| |999999 - NOME DA UNIDADE 6| |999999 - NOME DA UNIDADE 7| O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01**: Todas as unidades listadas são aquelas que possuem servidores ativos no mês/ano informado. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela ^ | br.ufrn.sigrh.dominio.Unidade | administrativo.comum.unidade | | br.ufrn.sigrh.funcional.dominio.Servidor | administrativo.rh.servidor | | br.ufrn.sigrh.frequencia.negativa.dominio.Frequencia | administrativo.funcional.frequencia | ====== Plano de Teste ====== Sistema: SIGRH Módulo: Frequência Link(s): Frequência -> Relatório de Frequência -> Situação do Envio da Frequência Usuário: mirian Papel que usuário deve ter: SigrhPapeis.ADMINISTRADOR_DAP, SigrhPapeis.GESTOR_DAP ===== Cenários de Teste ===== Para lançar frequência, entrar no sistema como gestor de unidade e acessar o caso de uso SIGRH → Portal do Servidor → Chefia de Unidade → Frequência → Ponto Eletrônico → Homologar Frequência. (https://docs.info.ufrn.br/doku.php?id=desenvolvimento:especificacoes:sigrh:portal_do_servidor:casos_de_uso:chefia_de_unidade:frequencia:ponto_eletronico:homologar_frequencia) ===== Dados para o Teste ===== Consulta de unidades COM frequência integral: SELECT DISTINCT unidade1_.codigo_unidade AS codigo7_91_, unidade1_.nome AS nome91_ FROM rh.servidor servidor0_ INNER JOIN comum.unidade unidade1_ ON servidor0_.id_unidade_lotacao = unidade1_.id_unidade WHERE ( unidade1_.id_unidade NOT IN (SELECT DISTINCT unidade3_.id_unidade FROM rh.servidor servidor2_ INNER JOIN comum.unidade unidade3_ ON servidor2_.id_unidade_lotacao = unidade3_.id_unidade WHERE servidor2_.id_servidor NOT IN (SELECT servidor6_.id_servidor FROM funcional.frequencia frequencia4_ INNER JOIN comum.unidade unidade5_ ON frequencia4_.id_unidade = unidade5_.id_unidade INNER JOIN rh.servidor servidor6_ ON frequencia4_.id_servidor = servidor6_.id_servidor WHERE servidor6_.id_unidade_lotacao = unidade5_.id_unidade AND frequencia4_.mes = ? AND frequencia4_.ano = ?)) ) AND ( servidor0_.id_ativo NOT IN ( 8, 9, 6 ) ) AND ( servidor0_.data_desligamento IS NULL OR Extract(year FROM servidor0_.data_desligamento) >? AND Extract(month FROM servidor0_.data_desligamento) >? ) AND Extract(year FROM servidor0_.admissao) Consulta de unidades com frequência PARCIAL: SELECT DISTINCT unidade1_.codigo_unidade AS codigo7_91_, unidade1_.nome AS nome91_ FROM funcional.frequencia frequencia0_ INNER JOIN comum.unidade unidade1_ ON frequencia0_.id_unidade = unidade1_.id_unidade WHERE frequencia0_.mes = ? AND frequencia0_.ano = ? AND ( frequencia0_.data_inativacao IS NULL ) AND ( unidade1_.id_unidade NOT IN (SELECT DISTINCT unidade3_.id_unidade FROM rh.servidor servidor2_ INNER JOIN comum.unidade unidade3_ ON servidor2_.id_unidade_lotacao = unidade3_.id_unidade WHERE ( unidade3_.id_unidade NOT IN (SELECT DISTINCT unidade5_.id_unidade FROM rh.servidor servidor4_ INNER JOIN comum.unidade unidade5_ ON servidor4_.id_unidade_lotacao = unidade5_.id_unidade WHERE servidor4_.id_servidor NOT IN (SELECT servidor8_.id_servidor FROM funcional.frequencia frequencia6_ INNER JOIN comum.unidade unidade7_ ON frequencia6_.id_unidade = unidade7_.id_unidade INNER JOIN rh.servidor servidor8_ ON frequencia6_.id_servidor = servidor8_.id_servidor WHERE servidor8_.id_unidade_lotacao = unidade7_.id_unidade AND frequencia6_.mes = ? AND frequencia6_.ano = ?)) ) AND ( servidor2_.id_ativo NOT IN ( 8, 9, 6 ) ) AND ( servidor2_.data_desligamento IS NULL OR Extract(year FROM servidor2_.data_desligamento) >? AND Extract(month FROM servidor2_.data_desligamento) >? ) AND Extract(year FROM servidor2_.admissao) Consulta de unidades SEM frequência: SELECT DISTINCT unidade1_.codigo_unidade AS codigo7_91_, unidade1_.nome AS nome91_ FROM rh.servidor servidor0_ INNER JOIN comum.unidade unidade1_ ON servidor0_.id_unidade = unidade1_.id_unidade WHERE ( unidade1_.id_unidade NOT IN (SELECT DISTINCT unidade3_.id_unidade FROM funcional.frequencia frequencia2_ INNER JOIN comum.unidade unidade3_ ON frequencia2_.id_unidade = unidade3_.id_unidade WHERE frequencia2_.mes = ? AND frequencia2_.ano = ? AND ( frequencia2_.data_inativacao IS NULL ) ) ) AND ( servidor0_.id_ativo NOT IN ( 8, 9, 6 ) ) AND ( servidor0_.data_desligamento IS NULL OR Extract(year FROM servidor0_.data_desligamento) >? AND Extract(month FROM servidor0_.data_desligamento) >? ) AND Extract(year FROM servidor0_.admissao)