Pular para o conteúdo principal

Solicitações de Licença

As solicitações de licença são o núcleo do fluxo de trabalho de gestão de ausências. Os funcionários enviam solicitações de folga, que passam por um processo de aprovação. O sistema acompanha todo o ciclo de vida, desde o envio até a aprovação ou rejeição, com atualizações automáticas de saldo em cada etapa.


Enviar uma Solicitação de Licença

Como Funcionário (Portal)

  1. Navegue até Solicitações de Licença na barra lateral.
  2. Clique em Criar.
  3. Selecione o Tipo de Licença.
  4. Insira a Data de Início e a Data de Término.
  5. Insira o número de Dias (suporta meios dias, ex.: 0,5, 1,5).
  6. Opcionalmente adicione um Motivo.
  7. Clique em Salvar.

O campo Funcionário é automaticamente definido como o funcionário logado — ele não aparece no formulário.

Como Administrador

Os administradores veem o mesmo formulário, mas com um campo Funcionário adicional para selecionar para qual funcionário a solicitação é feita. Eles também podem preencher o campo Notas do Administrador (oculto para funcionários).

Da Visualização Detalhada do Funcionário

Os administradores podem criar solicitações de licença diretamente da página detalhada de um funcionário usando a ação Criar Solicitação de Licença. O funcionário é pré-preenchido, e um botão adicional Meio Dia está disponível para conveniência.


Regras de Validação

O sistema aplica várias regras de validação ao enviar ou editar uma solicitação de licença:

Validação de Dias

O número de dias deve corresponder ao intervalo de datas:

  • Dias completos: Os dias devem ser iguais a end_date - start_date + 1
  • Meios dias: Os dias devem ser iguais a (end_date - start_date + 1) * 0.5

Qualquer outro valor é rejeitado com uma mensagem de erro.

Detecção de Sobreposição

O sistema verifica solicitações de licença sobrepostas para o mesmo funcionário. Uma solicitação é bloqueada se seu intervalo de datas se sobrepõe a qualquer solicitação existente aprovada ou pendente.

Dois intervalos de datas se sobrepõem se: start_date_1 <= end_date_2 AND start_date_2 <= end_date_1

Ao editar uma solicitação existente, a verificação de sobreposição exclui o registro atual.


Status das Solicitações

StatusBadgeDescrição
PendenteAmareloAguardando aprovação. O saldo é reservado em pending_days.
AprovadoVerdeAprovado por um gestor. Dias movidos de pending_days para used_days.
RejeitadoVermelhoRejeitado por um gestor. Dias removidos de pending_days.
CanceladoCinzaCancelado pelo funcionário ou administrador. Dias restaurados.

Fluxo de Aprovação

Fluxo Padrão

Funcionário envia solicitação
|
Status: Pendente
(pending_days aumentado)
|
Gestor analisa solicitação
|
+--- Aprovar ---> Status: Aprovado
| (pending_days -> used_days)
| Funcionário notificado
|
+--- Rejeitar ---> Status: Rejeitado
| (pending_days removido)
| Motivo de rejeição registrado
| Funcionário notificado
|
+--- (Funcionário) Cancelar --> Status: Cancelado
(pending_days removido)

Fluxo de Aprovação Automática

Para tipos de licença configurados para aprovação automática (em Configurações > Gestão de Licenças):

Funcionário envia solicitação
|
Observador detecta configuração de aprovação automática
|
Status: Aprovado imediatamente
(used_days aumentado)
Nenhuma notificação enviada ao gestor

Configurações do Fluxo de Aprovação

Navegue até Configurações > Configuração RH > Gestão de Licenças para configurar o fluxo:

ConfiguraçãoOpçõesPadrão
Fluxo de AprovaçãoNível Único / Multinível / Aprovação AutomáticaNível Único
Tipos de Licença Auto-AprovadosSelecionar tipos de licença específicosNenhum

Aprovar uma Solicitação de Licença

Requer a permissão approve leave requests.

  1. Navegue até Solicitações de Licença ou abra pelo cartão do painel de solicitações pendentes.
  2. Selecione uma ou mais solicitações pendentes.
  3. Clique na ação Aprovar.
  4. Opcionalmente adicione Notas do Administrador.
  5. Confirme.

O que acontece:

  • O status muda para Aprovado
  • approved_by é definido como o usuário atual
  • approved_at é definido como o timestamp atual
  • Saldo de licença: pending_days diminui, used_days aumenta
  • O funcionário recebe uma notificação

Rejeitar uma Solicitação de Licença

Requer a permissão approve leave requests.

  1. Selecione uma ou mais solicitações pendentes.
  2. Clique na ação Rejeitar.
  3. Insira um Motivo de Rejeição (obrigatório).
  4. Opcionalmente adicione Notas do Administrador.
  5. Confirme.

O que acontece:

  • O status muda para Rejeitado
  • rejection_reason é registrado e visível para o funcionário
  • Saldo de licença: pending_days diminui
  • O funcionário recebe uma notificação

Cancelar uma Solicitação de Licença

Requer a permissão cancel leave requests. Tanto funcionários quanto administradores podem cancelar solicitações.

  1. Selecione uma solicitação pendente ou aprovada.
  2. Clique na ação Cancelar.
  3. Confirme.

O que acontece:

  • O status muda para Cancelado
  • Se a solicitação estava pendente: pending_days diminui
  • Se a solicitação estava aprovada: used_days diminui (dias são devolvidos)
informação

Apenas solicitações pendentes e aprovadas podem ser canceladas. Solicitações rejeitadas e já canceladas não podem ser canceladas.


Visualizações de Tabela

A lista de solicitações de licença inclui quatro visualizações pré-configuradas:

VisualizaçãoFiltro
Todas as SolicitaçõesSem filtro
Solicitações PendentesStatus = Pendente
Solicitações AprovadasStatus = Aprovado
Solicitações RejeitadasStatus = Rejeitado

Filtros Disponíveis

  • Status — Pendente, Aprovado, Rejeitado, Cancelado
  • Data de Início — intervalo de datas
  • Data de Término — intervalo de datas
  • Dias — intervalo numérico

Notificações

O sistema envia notificações por e-mail em pontos-chave do ciclo de vida da solicitação de licença:

Quando uma Solicitação é Enviada

Uma notificação é enviada a todos os usuários que têm a permissão approve leave requests. O e-mail inclui:

  • Nome e e-mail do funcionário
  • Tipo de licença, datas de início/término, total de dias
  • Motivo (se fornecido)
  • Link para visualizar a solicitação

Quando o Status de uma Solicitação Muda

O funcionário recebe uma notificação quando sua solicitação é aprovada, rejeitada ou cancelada. O e-mail inclui:

  • Tipo de licença, datas e total de dias
  • Novo status
  • Motivo de rejeição (se rejeitado)
  • Nome do aprovador
  • Link para visualizar a solicitação

Os modelos de e-mail podem ser personalizados em Configurações > Contas de E-mail > Modelos.


Cartões do Painel

O sistema de gestão de licenças fornece três cartões de painel:

CartãoTipoDescrição
Solicitações de Licença por StatusGráfico de pizzaDistribuição das solicitações por status
Solicitações de Licença por TipoGráfico de barrasContagem de solicitações agrupadas por tipo de licença
Solicitações de Licença PendentesTabelaAs 15 solicitações pendentes mais recentes que requerem ação

Fluxo de Aprovação e Rejeição

O fluxo de aprovação de licenças controla como as solicitações passam do envio à resolução. O módulo RH suporta três modos de fluxo, configuráveis na página de configurações.


Modos de Fluxo

Configure o modo do fluxo em Configurações > Configuração RH > Gestão de Licenças.

Nível Único (Padrão)

O fluxo mais simples. Um usuário autorizado analisa e aprova ou rejeita a solicitação.

Funcionário -> Enviar -> Gestor/RH Aprova ou Rejeita -> Concluído

Qualquer usuário com a permissão approve leave requests pode aprovar ou rejeitar solicitações.

Multinível

As solicitações passam por múltiplos estágios de aprovação. Adequado para organizações que exigem tanto a aprovação do gestor direto quanto do RH.

Funcionário -> Enviar -> Gestor Aprova -> RH Aprova -> Concluído

Aprovação Automática

Todas as solicitações de licença são automaticamente aprovadas no envio. Nenhuma revisão humana é necessária.

Funcionário -> Enviar -> Aprovado Automaticamente -> Concluído

dica

Você pode combinar modos de fluxo com a configuração Tipos de Licença Auto-Aprovados para aprovar automaticamente tipos específicos (ex.: Trabalho Remoto) enquanto exige aprovação para outros (ex.: Licença Anual).


Aprovação Automática para Tipos de Licença Específicos

Em vez de aprovar automaticamente todas as solicitações, você pode selecionar tipos de licença específicos que ignoram a aprovação:

  1. Vá para Configurações > Configuração RH > Gestão de Licenças.
  2. Em Tipos de Licença Auto-Aprovados, selecione os tipos (ex.: Trabalho Remoto, Folga Compensatória).
  3. Salve.

Quando um funcionário envia uma solicitação para um tipo de licença auto-aprovado:

  • O status é imediatamente definido como Aprovado.
  • O saldo de licença é atualizado (used_days aumentado diretamente, sem etapa pending_days).
  • Nenhuma notificação é enviada aos gestores.
  • O funcionário não recebe notificação de aprovação (pois é instantâneo).

Solicitações para tipos de licença não auto-aprovados seguem o fluxo de aprovação padrão, independentemente desta configuração.


Atualizações de Saldo por Ação

AçãoDias PendentesDias UtilizadosDias Disponíveis
Enviar solicitação+diasdiminui
Aprovar solicitação-dias+diasinalterado
Rejeitar solicitação-diasaumenta
Cancelar (estava pendente)-diasaumenta
Cancelar (estava aprovado)-diasaumenta

Quem Pode Aprovar

As ações de aprovação são controladas pela permissão approve leave requests. Esta permissão deve ser explicitamente concedida a uma função — ela não está incluída na função padrão de Funcionário.

Funções típicas que devem ter esta permissão:

  • Gerente de RH
  • Chefe de Departamento
  • Líder de Equipe
  • Qualquer função de administrador

Super administradores podem sempre aprovar solicitações (contornado via Gate::before).


Motivos de Rejeição

Ao rejeitar uma solicitação de licença, um Motivo de Rejeição é obrigatório. Este motivo é:

  • Armazenado no registro da solicitação de licença
  • Visível para o funcionário na visualização detalhada da solicitação
  • Incluído no e-mail de notificação de mudança de status

Os administradores também podem adicionar Notas do Administrador durante a aprovação ou rejeição. As notas do administrador são visíveis apenas para outros administradores, nunca para o funcionário.


Cancelar uma Solicitação de Licença

Funcionários e administradores podem cancelar solicitações de licença que estão no status Pendente ou Aprovado. O cancelamento restaura os dias de licença consumidos ou reservados no saldo do funcionário.


Quem Pode Cancelar

O cancelamento requer a permissão cancel leave requests. Por padrão, os funcionários têm esta permissão e podem cancelar suas próprias solicitações.

UsuárioPode Cancelar PrópriasPode Cancelar de Outros
FuncionárioSim (com permissão)Não (escopo de dados impede ver outros)
AdministradorSimSim (se tiver a permissão)
Super AdminSimSim (contorna todas as verificações)

Como Cancelar

  1. Navegue até Solicitações de Licença.
  2. Encontre a solicitação a cancelar (deve estar Pendente ou Aprovada).
  3. Clique na ação Cancelar Licença (exibida inline na coluna de ações).
  4. Confirme o cancelamento.

O Que Acontece Quando Cancelado

Cancelando uma Solicitação Pendente

Antes: pending_days = 5, used_days = 10, available_days = 3 Cancelar solicitação pendente de 2 dias Depois: pending_days = 3, used_days = 10, available_days = 5

  • pending_days diminui pelos dias da solicitação
  • available_days aumenta correspondentemente
  • O status da solicitação muda para Cancelado

Cancelando uma Solicitação Aprovada

Antes: pending_days = 3, used_days = 12, available_days = 3 Cancelar solicitação aprovada de 2 dias Depois: pending_days = 3, used_days = 10, available_days = 5

  • used_days diminui pelos dias da solicitação
  • available_days aumenta correspondentemente
  • O status da solicitação muda para Cancelado

Restrições

  • Solicitações rejeitadas não podem ser canceladas (já estão resolvidas).
  • Solicitações já canceladas não podem ser canceladas novamente.
  • O botão de ação Cancelar só aparece para solicitações no status Pendente ou Aprovado.

Validação de Sobreposição

O módulo RH impede que funcionários enviem solicitações de licença que se sobreponham às suas solicitações aprovadas ou pendentes existentes. Isso garante o rastreamento preciso de licenças e evita a dupla reserva de folgas.


Como Funciona

Quando uma solicitação de licença é criada ou atualizada, o sistema verifica sobreposições de intervalos de datas:

  1. Consulta todas as solicitações de licença do mesmo funcionário.
  2. Filtra apenas solicitações aprovadas e pendentes (rejeitadas e canceladas são ignoradas).
  3. Ao editar, exclui a solicitação atual da verificação.
  4. Testa sobreposição usando a fórmula: existing_start <= new_end AND new_start <= existing_end.

Se uma sobreposição for encontrada, a solicitação é rejeitada com um erro de validação.


Exemplos

Bloqueado (Sobreposição)

Solicitação ExistenteNova SolicitaçãoResultado
10-12 Jan (Aprovado)11-14 JanBloqueado — sobreposição em 11-12 Jan
15-15 Jan (Pendente)15-15 JanBloqueado — mesma data exata
1-31 Jan (Aprovado)10-10 JanBloqueado — contido no intervalo existente

Permitido (Sem Sobreposição)

Solicitação ExistenteNova SolicitaçãoResultado
10-12 Jan (Aprovado)13-15 JanPermitido — adjacente mas sem sobreposição
10-12 Jan (Rejeitado)10-12 JanPermitido — solicitações rejeitadas são ignoradas
10-12 Jan (Cancelado)10-12 JanPermitido — solicitações canceladas são ignoradas

Sobreposição Entre Tipos

A validação de sobreposição se aplica a todos os tipos de licença. Um funcionário não pode ter solicitações de Licença Anual e Licença Médica sobrepostas — as datas não devem entrar em conflito independentemente do tipo de licença.


Transferência de Licenças

A transferência de licenças permite que dias de licença não utilizados de um ano fiscal sejam transferidos para o próximo. Este recurso é configurável tanto no nível global (configurações) quanto no nível de cada tipo de licença.


Como a Transferência Funciona

No final de cada ano fiscal, o sistema processa a transferência para todos os funcionários:

  1. Para o saldo de licença de cada funcionário do ano que termina:
    • Verifica se o tipo de licença tem Transferência habilitada.
    • Calcula dias não utilizados: total_days - used_days - pending_days.
    • Aplica o limite de transferência (o menor entre os Dias Máximos de Transferência do tipo de licença e a configuração global Dias Máximos de Transferência).
    • Cria ou atualiza o saldo de licença do próximo ano com os Dias Transferidos.
  2. Os dias transferidos têm validade baseada na configuração Expiração da Transferência.

Configuração

Configurações Globais

Navegue até Configurações > Configuração RH > Gestão de Licenças:

ConfiguraçãoPadrãoDescrição
Transferência HabilitadaSimInterruptor principal para o recurso de transferência
Dias Máximos de Transferência10Limite global de dias transferidos para todos os tipos de licença
Expiração da Transferência (meses)3Dias transferidos expiram após este número de meses no novo ano fiscal

Configurações por Tipo de Licença

Cada tipo de licença tem sua própria configuração de transferência:

CampoDescrição
TransferênciaHabilitar/desabilitar transferência para este tipo de licença
Dias Máximos de TransferênciaMáximo de dias que podem ser transferidos para este tipo

O limite efetivo de transferência é o menor entre o limite do tipo de licença e o limite global.

Exemplo: O tipo de licença permite 10 dias de transferência, mas o máximo global é 5. Apenas 5 dias serão transferidos.


Processamento da Transferência

A transferência é processada automaticamente via um comando agendado que executa no primeiro dia do mês de início do ano fiscal:

php artisan hrm:process-leave-carryover

Expiração da Transferência

Os dias transferidos não são permanentes — eles expiram após um período configurável. Uma vez expirados, não são mais contabilizados no saldo disponível.