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)
- Navegue até Solicitações de Licença na barra lateral.
- Clique em Criar.
- Selecione o Tipo de Licença.
- Insira a Data de Início e a Data de Término.
- Insira o número de Dias (suporta meios dias, ex.: 0,5, 1,5).
- Opcionalmente adicione um Motivo.
- 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
| Status | Badge | Descrição |
|---|---|---|
| Pendente | Amarelo | Aguardando aprovação. O saldo é reservado em pending_days. |
| Aprovado | Verde | Aprovado por um gestor. Dias movidos de pending_days para used_days. |
| Rejeitado | Vermelho | Rejeitado por um gestor. Dias removidos de pending_days. |
| Cancelado | Cinza | Cancelado 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ção | Opções | Padrão |
|---|---|---|
| Fluxo de Aprovação | Nível Único / Multinível / Aprovação Automática | Nível Único |
| Tipos de Licença Auto-Aprovados | Selecionar tipos de licença específicos | Nenhum |
Aprovar uma Solicitação de Licença
Requer a permissão approve leave requests.
- Navegue até Solicitações de Licença ou abra pelo cartão do painel de solicitações pendentes.
- Selecione uma ou mais solicitações pendentes.
- Clique na ação Aprovar.
- Opcionalmente adicione Notas do Administrador.
- Confirme.
O que acontece:
- O status muda para Aprovado
approved_byé definido como o usuário atualapproved_até definido como o timestamp atual- Saldo de licença:
pending_daysdiminui,used_daysaumenta - O funcionário recebe uma notificação
Rejeitar uma Solicitação de Licença
Requer a permissão approve leave requests.
- Selecione uma ou mais solicitações pendentes.
- Clique na ação Rejeitar.
- Insira um Motivo de Rejeição (obrigatório).
- Opcionalmente adicione Notas do Administrador.
- Confirme.
O que acontece:
- O status muda para Rejeitado
rejection_reasoné registrado e visível para o funcionário- Saldo de licença:
pending_daysdiminui - 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.
- Selecione uma solicitação pendente ou aprovada.
- Clique na ação Cancelar.
- Confirme.
O que acontece:
- O status muda para Cancelado
- Se a solicitação estava pendente:
pending_daysdiminui - Se a solicitação estava aprovada:
used_daysdiminui (dias são devolvidos)
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ção | Filtro |
|---|---|
| Todas as Solicitações | Sem filtro |
| Solicitações Pendentes | Status = Pendente |
| Solicitações Aprovadas | Status = Aprovado |
| Solicitações Rejeitadas | Status = 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ão | Tipo | Descrição |
|---|---|---|
| Solicitações de Licença por Status | Gráfico de pizza | Distribuição das solicitações por status |
| Solicitações de Licença por Tipo | Gráfico de barras | Contagem de solicitações agrupadas por tipo de licença |
| Solicitações de Licença Pendentes | Tabela | As 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
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:
- Vá para Configurações > Configuração RH > Gestão de Licenças.
- Em Tipos de Licença Auto-Aprovados, selecione os tipos (ex.: Trabalho Remoto, Folga Compensatória).
- 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_daysaumentado diretamente, sem etapapending_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ção | Dias Pendentes | Dias Utilizados | Dias Disponíveis |
|---|---|---|---|
| Enviar solicitação | +dias | — | diminui |
| Aprovar solicitação | -dias | +dias | inalterado |
| Rejeitar solicitação | -dias | — | aumenta |
| Cancelar (estava pendente) | -dias | — | aumenta |
| Cancelar (estava aprovado) | — | -dias | aumenta |
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ário | Pode Cancelar Próprias | Pode Cancelar de Outros |
|---|---|---|
| Funcionário | Sim (com permissão) | Não (escopo de dados impede ver outros) |
| Administrador | Sim | Sim (se tiver a permissão) |
| Super Admin | Sim | Sim (contorna todas as verificações) |
Como Cancelar
- Navegue até Solicitações de Licença.
- Encontre a solicitação a cancelar (deve estar Pendente ou Aprovada).
- Clique na ação Cancelar Licença (exibida inline na coluna de ações).
- 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_daysdiminui pelos dias da solicitaçãoavailable_daysaumenta 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_daysdiminui pelos dias da solicitaçãoavailable_daysaumenta 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:
- Consulta todas as solicitações de licença do mesmo funcionário.
- Filtra apenas solicitações aprovadas e pendentes (rejeitadas e canceladas são ignoradas).
- Ao editar, exclui a solicitação atual da verificação.
- 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 Existente | Nova Solicitação | Resultado |
|---|---|---|
| 10-12 Jan (Aprovado) | 11-14 Jan | Bloqueado — sobreposição em 11-12 Jan |
| 15-15 Jan (Pendente) | 15-15 Jan | Bloqueado — mesma data exata |
| 1-31 Jan (Aprovado) | 10-10 Jan | Bloqueado — contido no intervalo existente |
Permitido (Sem Sobreposição)
| Solicitação Existente | Nova Solicitação | Resultado |
|---|---|---|
| 10-12 Jan (Aprovado) | 13-15 Jan | Permitido — adjacente mas sem sobreposição |
| 10-12 Jan (Rejeitado) | 10-12 Jan | Permitido — solicitações rejeitadas são ignoradas |
| 10-12 Jan (Cancelado) | 10-12 Jan | Permitido — 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:
- 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.
- 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ção | Padrão | Descrição |
|---|---|---|
| Transferência Habilitada | Sim | Interruptor principal para o recurso de transferência |
| Dias Máximos de Transferência | 10 | Limite global de dias transferidos para todos os tipos de licença |
| Expiração da Transferência (meses) | 3 | Dias 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:
| Campo | Descrição |
|---|---|
| Transferência | Habilitar/desabilitar transferência para este tipo de licença |
| Dias Máximos de Transferência | Má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.