~~ODT~~
O Objetivo deste timer, é avisar com antecedência ao servidor responsável do Departamento de Administração de Pessoal e aos servidores designados, a proximidade do fim das designações cadastradas.
Este caso de uso não é acessível através de links. É executado uma vez por dia, e trabalha da seguinte forma:
São localizados as designações com término determinado que faltam a quantidade de dias definida no Parâmetro para o fim, com base na data atual, então é enviado um email para os servidor responsáveis do Departamento de Pessoal no seguinte formato:
Assunto: Aviso de notificação a servidores com término de designação próximo Caro(a) <<NOME_CHEFE>>, Os seguintes servidores foram notificados em relação a proximidade do fim de suas designações: <<SERVIDORES_NOTIFICADOS>> Esta mensagem é automática e não deve ser respondida
E um e-mail para cada servidor que tenha a designação com fim retornado na consulta.
Assunto: Notificação de designação com término próximo Prezado Dirigente, Informamos que o mandato de <<NOME_SERVIDOR>> do(a) <<NOME_UNIDADE>> encerra-se no dia <<DATA_FIM_DESIGNACAO>>. Solicitamos que sejam tomadas as providências necessárias à eleição do novo dirigente para a unidade, lembrando que o acesso às funcionalidades de chefia será encerrado na data acima mencionada. Estamos à disposição para qualquer esclarecimento. Atenciosamente, <<NOME_RESPONSAVEL_DAP>> Chefia/Diretoria do(a) <<NOME_UNIDADE_DAP>> Esta mensagem foi gerada automaticamente pelo sistema e não deve ser respondida.
o caso de uso é finalizado.
Não se Aplica.
Classe | Tabela |
---|---|
br.ufrn.sigrh.funcional.timer.DesignacoesTerminoDeterminadoTimer | Comum.infra.registro_timer |
br.ufrn.sigrh.funcional.dominio.Designacao | Administrativo.rh.designacao |
Sistema: SIGPRH
Módulo: -
Link(s): -
Usuário: -
Para testar este timer, ajuste os parâmetros em comum.infra.registros_timer, para a execução deste timer e acompanhe se os emails para os servidores e para os responsáveis do DAP são enviados.
<codesql> SELECT RU.*, U.NOME AS NOME_UNIDADE,
S.SIAPE AS MATRICULA,P.NOME AS NOME_SERVIDOR, P.ID_PESSOA, P.EMAIL AS EMAIL_PESSOA, LOT.ID_UNIDADE AS ID_UNIDADE_LOTACAO, LOT.NOME AS NOME_UNIDADE_LOTACAO
FROM COMUM.RESPONSAVEL_UNIDADE RU
JOIN COMUM.UNIDADE U ON U.ID_UNIDADE = RU.ID_UNIDADE JOIN RH.SERVIDOR S ON S.ID_SERVIDOR = RU.ID_SERVIDOR JOIN COMUM.PESSOA P ON S.ID_PESSOA = P.ID_PESSOA JOIN COMUM.UNIDADE LOT ON S.ID_UNIDADE = LOT.ID_UNIDADE
WHERE RU.ID_UNIDADE = ?
AND RU.ID_REGISTRO_ENTRADA_EXCLUSAO IS NULL AND RU.NIVEL_RESPONSABILIDADE = '?' AND RU.DATA_INICIO <= CURRENT_DATE AND (RU.DATA_FIM IS NULL OR RU.DATA_FIM >= CURRENT_DATE) AND RU.ID_UNIDADE = LOT.ID_UNIDADE
ORDER BY RU.DATA_CADASTRO DESC </code>
<codesql> SELECT d.inicio as inicio, d.fim as fim, p.nome as nomePessoa, p.email as emailpessoa, a.descricao as descatividade,
u.nome as nomeunidade, r.nivel_responsabilidade as nivelresponsa, CAST(n.nivel AS VARCHAR) as nivel, gd.descricao as descgrupoivel
FROM rh.designacao d
left join funcional.nivel_designacao n on (d.id_nivel_designacao = n.id_nivel_designacao) left join funcional.grupo_nivel_designacao gd on (n.id_grupo_nivel_designacao = gd.id_grupo_nivel_designacao) inner join rh.atividade a on (d.id_atividade = a.id_atividade) inner join comum.unidade u on (d.id_unidade = u.id_unidade) inner join rh.servidor s on (d.id_servidor = s.id_servidor) inner join comum.pessoa p on (s.id_pessoa = p.id_pessoa) left join comum.responsavel_unidade r on (d.id_responsavel_unidade = r.id OR r.id_designacao = d.id_designacao ) WHERE 1=1 AND d.fim IS NOT NULL AND d.fim = '?'
</code>