~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Consultar Ocorrências Funcionais ====== A consulta de //Ocorrências Funcionais// serve para consultar fatos (de caráter benéfico ou não) referentes aos servidores da instituição. Os gestores do Departamento de Administração de Pessoal são os responsáveis pelo consulta e [[desenvolvimento:especificacoes:sigrh:administracao_de_pessoal:casos_de_uso:cadastros:registros_para_o_servidor:ocorrencias_funcionais|cadastro]] de ocorrências de todos os servidores da instituição ([[#principais_regras_de_negócio|RN02]]). ===== Descrição do Caso de Uso ===== O caso de uso inicia quando o usuário acessa //SIGRH -> Administração de Pessoal -> Consultas/Relatórios -> Funcionais -> Consultas Gerais -> Ocorrências Funcionais//. A partir desse caso é possível consultar ocorrências do servidor durante a sua carreira no serviço público. O usuário faz a consulta com as seguintes opções de filtros: * **Servidor**: Formato - NOME DO SERVIDOR(SIAPE), Tipo - AUTOCOMPLETE, Entrada de Dados: Matrícula SIAPE, NOME DO SERVIDOR, CPF ou Nome de Identificação. * **Unidade de Lotação**: Tipo - TEXTO, AUTOCOMPLETE UNIDADE. Representa a unidade de lotação a qual o usuário deseja realizar a busca.([[#principais_regras_de_negócio|RN03]]) Caso a Unidade de Lotação seja selecionada, será habilitada a opção de busca por unidades vinculadas: * **Considerar Unidades Vinculadas à Unidade de Lotação**: TIPO LÓGICO. * **Unidade de Exercício**: Tipo - TEXTO, AUTOCOMPLETE UNIDADE. Representa a unidade de exercício a qual o usuário deseja realizar a busca. Caso a Unidade de Exercício seja selecionada, será habilitada a opção de busca por unidades vinculadas: * **Considerar Unidades Vinculadas à Unidade de Exercício**: TIPO LÓGICO. * **Período(Início a fim)**: Tipo - DATA. Período da ocorrência compreendida entre a data de início e término da ocorrência. * **Exibir em Formato de Impressão**: TIPO LÓGICO. Os seguintes dados são exibidos como resultado de busca caso esta tenha encontrado registros no banco de dados: * **__Servidor__**: Tipo - TEXTO.([[#principais_regras_de_negócio|RN01]]) * **__Data de Cadastro__**: Formato - DD/MM/AAAA, Tipo - Data. Data em que foi comunicado o fato. * **__Período__**: Formato DD/MM/AAAA a DD/MM/AAAA, Tipo - Data. * **__Ocorrência__**: Tipo - TEXTO. * **__Origem__**: Tipo - TEXTO. * **__Observação__**: Tipo - TEXTO. É possível alterar Dados da Ocorrência Funcional ou excluir a ocorrência: ([[#principais_regras_de_negócio|RN04]]) * **__Servidor__***: Tipo - TEXTO. * **Tipo de publicação**: Tipo - TEXTO. * **Data de publicação**: Tipo - TEXTO. * **Ocorrência***: Tipo - TEXTO. * **Data de Início***: Tipo - TEXTO. * **Data de Término**: Tipo - TEXTO. * **Classe Funcional***: Tipo - TEXTO. * **Ref./Nível/Padrão***: Tipo - TEXTO. * **Processo***: Tipo - NUMÉRICO. * **Observação**: Tipo - TEXTO. * **Quantidade máxima de caracteres**: Tipo - NUMÉRICO. * **Quantidade de caracteres digitados**: Tipo - NUMÉRICO. Documento de Regulamentação * **Tipo do Documento***: Tipo - TEXTO. * **Número***: Tipo - NUMÉRICO. * **Data***: Tipo - DATA. O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01**: Se um dos filtros selecionados seja Servidor, o dado **Servidor** não será exibido na tabela. * **RN02** - Quando o usuário logado possuir papel com exigência de vinculação a uma unidade, todas as operações somente podem ser realizadas para servidores lotados na unidade que foi vinculada ao papel. Caso contrário, as operações podem ser realizadas para servidores lotados em qualquer unidade. * **RN03** - A opção de filtro ''Unidade de Lotação'' só será exibida se no sistema, o parâmetro ''UTILIZA CONCEITO EXERCÍCIO'' estiver ativo. * **RN04** - Caso seja alterado o período da ocorrência de ''MUDANÇA DE JORNADA DE TRABALHO'' e caso o parâmetro de Frequência ''TIPO_CONTROLE_FREQUENCIA'' tenha valor ''2'', ao realizar alteração de carga horária, o sistema verifica se há folhas de ponto homologadas a partir da data de início da ocorrência e, caso haja, emite a mensagem informativa: ''Há folhas de ponto homologadas a partir da data de alteração de jornada de trabalho realizada, verifique para análise de inconsistência de informações''. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.ufrn.sigrh.funcional.dominio.OcorrenciaFuncional | administrativo.funcional.ocorrencia_funcional | | br.ufrn.sigrh.funcional.dominio.Ocorrencia | administrativo.funcional.ocorrencia | | br.ufrn.sigrh.dominio.TipoOrigem | administrativo.rh_tipos.tipo_origem | | br.ufrn.sigrh.funcional.dominio.Servidor | administrativo.rh.servidor | | br.ufrn.sigrh.pessoal.dominio.Pessoa | administrativo.comum.pessoa | ====== Plano de Teste ====== Sistema:SIGRH Módulo: Administração de Pessoal Link(s): Consultas/Relatórios → Funcionais → Consultas Gerais → Ocorrências Funcionais Usuário: mirian Papel que usuário deve ter: SigrhPapeis.ADMINISTRADOR_DAP, SigrhPapeis.GESTOR_DAP ===== Cenários de Teste ===== Não se aplica. ===== Dados para o Teste ===== [[desenvolvimento:especificacoes:sigrh:administracao_de_pessoal:casos_de_uso:cadastros:registros_para_o_servidor:ocorrencias_funcionais|Cadastrar]] uma ocorrência funcional para um servidor, e realizar uma consulta com os dados recém cadastrados. Realizar a consulta no banco apenas por servidor(substituindo **?** pelo número SIAPE do Servidor a ser consultado): SELECT p.nome, s.siape, o.data, o.data_documento, oc.descricao, o.observacao, o.inicio, o.fim FROM funcional.ocorrencia_funcional o LEFT JOIN funcional.ocorrencia oc using (id_ocorrencia) LEFT JOIN rh.servidor s using (id_servidor) LEFT JOIN comum.pessoa p on s.id_pessoa=p.id_pessoa WHERE s.siape = ? Realizar a consulta apenas por período (substituindo ? pela data): SELECT p.nome, s.siape, o.data, o.data_documento, oc.descricao, o.observacao, o.inicio, o.fim FROM funcional.ocorrencia_funcional o LEFT JOIN funcional.ocorrencia oc using (id_ocorrencia) LEFT JOIN rh.servidor s using (id_servidor) LEFT JOIN comum.pessoa p on s.id_pessoa=p.id_pessoa WHERE o.inicio >= ? AND o.fim <= ? Realizar a consulta combinando os dois filtros de busca, servidor e período (substituindo o primeiro ? pelo número siape do servidor, e substituindo o segundo e terceiro ? pela data de início e fim, respectivamente): SELECT p.nome, s.siape, o.data, o.data_documento, oc.descricao, o.observacao, o.inicio, o.fim FROM funcional.ocorrencia_funcional o LEFT JOIN funcional.ocorrencia oc using (id_ocorrencia) LEFT JOIN rh.servidor s using (id_servidor) LEFT JOIN comum.pessoa p on s.id_pessoa=p.id_pessoa WHERE s.siape = ? AND o.inicio >= ? AND o.fim <= ? Fazer a comparação da consulta no banco com a consulta no caso de uso.