# 📋 REGRAS DE FÉRIAS - CLT vs SERVIDOR PÚBLICO ESTADUAL DE PERNAMBUCO

**Data:** 30 de outubro de 2025  
**Status:** ✅ **IMPLEMENTADO NO SISTEMA**

---

## 🎯 VISÃO GERAL

O sistema SGSE agora suporta **2 regimes de trabalho** com regras específicas de férias:

1. **CLT** - Consolidação das Leis do Trabalho  
2. **Servidor Público Estadual de Pernambuco** - Lei nº 6.123/1968

---

## ⚖️ CLT - CONSOLIDAÇÃO DAS LEIS DO TRABALHO

### **Legislação:**
- Art. 129 a 153 da CLT (Decreto-Lei nº 5.452/1943)

### **Regras Básicas:**

| Item | Regra |
|------|-------|
| **Dias de Férias** | 30 dias por ano trabalhado |
| **Período Aquisitivo** | 12 meses de trabalho |
| **Período Concessivo** | 12 meses após o período aquisitivo |
| **Divisão em Períodos** | Até **3 períodos** |
| **Período Principal** | Mínimo **14 dias corridos** |
| **Períodos Secundários** | Mínimo **5 dias corridos** cada |
| **Abono Pecuniário** | ✅ Permitido vender 1/3 (10 dias) |
| **Idade Especial** | < 18 anos ou > 50 anos: férias em 1 período único |
| **Vencimento** | Férias não gozadas perdem-se após período concessivo |

### **Validações no Sistema (CLT):**

```typescript
✅ Máximo 3 períodos
✅ Período principal: mínimo 14 dias
✅ Períodos secundários: mínimo 5 dias
✅ Total não pode exceder saldo disponível
✅ Períodos não podem sobrepor
✅ Abono pecuniário: até 10 dias
```

### **Exemplo Prático (CLT):**

**Funcionário:** João Silva (CLT)  
**Admissão:** 01/01/2024  
**Período Aquisitivo:** 01/01/2024 a 31/12/2024  
**Período Concessivo:** 01/01/2025 a 31/12/2025  

**Solicitação Válida:**
```
Período 1: 14 dias (Principal)
Período 2: 10 dias (Secundário)
Período 3: 6 dias (Secundário)
Total: 30 dias ✅
```

**Solicitação Inválida:**
```
Período 1: 10 dias ❌ (Falta período de 14 dias)
Período 2: 10 dias
Período 3: 10 dias
```

---

## 🏛️ SERVIDOR PÚBLICO ESTADUAL DE PERNAMBUCO

### **Legislação:**
- Lei nº 6.123/1968 - Estatuto dos Funcionários Públicos Civis do Estado de PE
- Art. 84 a 90

### **Regras Básicas:**

| Item | Regra |
|------|-------|
| **Dias de Férias** | 30 dias por ano de exercício |
| **Período Aquisitivo** | 12 meses de exercício |
| **Período Concessivo** | Ano subsequente ao aquisitivo |
| **Divisão em Períodos** | Até **2 períodos** (NÃO 3!) |
| **Dias Mínimos por Período** | **10 dias corridos** (NÃO 5!) |
| **Abono Pecuniário** | ❌ **NÃO PERMITIDO** |
| **Servidor > 10 anos** | Pode acumular até 2 períodos |
| **Docentes** | Preferência: 20/12 a 10/01 |
| **Gestante** | Pode antecipar ou prorrogar |
| **Vencimento** | Mais flexível que CLT |

### **Validações no Sistema (Servidor PE):**

```typescript
✅ Máximo 2 períodos (NÃO 3)
✅ Cada período: mínimo 10 dias (NÃO 5)
✅ Total não pode exceder saldo disponível
✅ Períodos não podem sobrepor
❌ Abono pecuniário: NÃO PERMITIDO
📅 Aviso para docentes: período 20/12 a 10/01
```

### **Exemplo Prático (Servidor PE):**

**Funcionário:** Maria Santos (Servidor PE)  
**Posse:** 01/03/2024  
**Período Aquisitivo:** 01/03/2024 a 28/02/2025  
**Período Concessivo:** 01/03/2025 a 28/02/2026  

**Solicitação Válida:**
```
Período 1: 20 dias
Período 2: 10 dias
Total: 30 dias ✅
```

**Solicitação Inválida:**
```
Período 1: 10 dias
Período 2: 10 dias
Período 3: 10 dias ❌ (Máximo 2 períodos)
```

**Solicitação Inválida 2:**
```
Período 1: 20 dias
Período 2: 5 dias ❌ (Mínimo 10 dias por período)
```

---

## 📊 COMPARAÇÃO DIRETA

| Critério | CLT | Servidor Público PE |
|----------|-----|---------------------|
| **Dias Anuais** | 30 dias | 30 dias |
| **Max Períodos** | 3 | 2 |
| **Min Dias/Período** | 5 dias | 10 dias |
| **Período Principal** | 14 dias (obrigatório) | Não há essa regra |
| **Abono Pecuniário** | ✅ Sim (10 dias) | ❌ Não |
| **Acúmulo** | ❌ Não | ✅ Sim (> 10 anos) |
| **Vencimento** | Rígido | Flexível |
| **Preferência Docente** | Não há | 20/12 a 10/01 |

---

## 🎯 COMO O SISTEMA IDENTIFICA O REGIME

### **Campo no Banco de Dados:**

```typescript
funcionarios: {
  regimeTrabalho: "clt" | "estatutario_pe" | "estatutario_federal" | "estatutario_municipal"
}
```

### **Comportamento Automático:**

1. **Ao criar solicitação:** Sistema detecta o regime do funcionário
2. **Validação automática:** Aplica regras do regime correto
3. **Mensagens customizadas:** Erros específicos por regime

---

## 💡 EXEMPLOS DE VALIDAÇÕES

### **Exemplo 1: CLT tentando 4 períodos**

```
Entrada:
- Período 1: 10 dias
- Período 2: 10 dias
- Período 3: 5 dias
- Período 4: 5 dias

Erro: ❌ "Máximo de 3 períodos permitidos para CLT - Consolidação das Leis do Trabalho"
```

### **Exemplo 2: Servidor PE tentando 8 dias**

```
Entrada:
- Período 1: 22 dias
- Período 2: 8 dias

Erro: ❌ "Período de 8 dias é inválido. Mínimo: 10 dias corridos (Servidor Público Estadual de Pernambuco)"
```

### **Exemplo 3: CLT sem período principal**

```
Entrada:
- Período 1: 10 dias
- Período 2: 10 dias
- Período 3: 10 dias

Erro: ❌ "Ao dividir férias em CLT, um período deve ter no mínimo 14 dias corridos"
```

### **Exemplo 4: Servidor PE em 3 períodos**

```
Entrada:
- Período 1: 10 dias
- Período 2: 10 dias
- Período 3: 10 dias

Erro: ❌ "Máximo de 2 períodos permitidos para Servidor Público Estadual de Pernambuco"
```

---

## 🔧 IMPLEMENTAÇÃO TÉCNICA

### **Arquivo:** `packages/backend/convex/saldoFerias.ts`

```typescript
const REGIMES_CONFIG = {
  clt: {
    nome: "CLT - Consolidação das Leis do Trabalho",
    maxPeriodos: 3,
    minDiasPeriodo: 5,
    minDiasPeriodoPrincipal: 14,
    abonoPermitido: true,
    maxDiasAbono: 10,
  },
  estatutario_pe: {
    nome: "Servidor Público Estadual de Pernambuco",
    maxPeriodos: 2,
    minDiasPeriodo: 10,
    minDiasPeriodoPrincipal: null,
    abonoPermitido: false,
    maxDiasAbono: 0,
  },
};
```

### **Query de Validação:**

```typescript
export const validarSolicitacao = query({
  args: {
    funcionarioId: v.id("funcionarios"),
    anoReferencia: v.number(),
    periodos: v.array(...)
  },
  handler: async (ctx, args) => {
    // Detecta regime automaticamente
    const regime = await obterRegimeTrabalho(ctx, args.funcionarioId);
    const config = REGIMES_CONFIG[regime];
    
    // Aplica validações específicas
    if (args.periodos.length > config.maxPeriodos) {
      erros.push(`Máximo de ${config.maxPeriodos} períodos permitidos para ${config.nome}`);
    }
    
    // ... demais validações
  }
});
```

---

## 📚 REFERÊNCIAS LEGAIS

### **CLT:**
- **Decreto-Lei nº 5.452/1943** - Consolidação das Leis do Trabalho
- **Art. 129** - Direito a férias
- **Art. 134** - Divisão em períodos
- **Art. 143** - Abono pecuniário

### **Servidor Público Estadual de PE:**
- **Lei nº 6.123/1968** - Estatuto dos Funcionários Públicos Civis do Estado de Pernambuco
- **Art. 84** - Direito a férias
- **Art. 85** - Período aquisitivo
- **Art. 86** - Divisão em períodos
- **Art. 87** - Acúmulo de férias

---

## ✅ STATUS DE IMPLEMENTAÇÃO

| Feature | Status |
|---------|--------|
| ✅ Schema `regimeTrabalho` | Implementado |
| ✅ Detecção automática do regime | Implementado |
| ✅ Validações CLT | Implementado |
| ✅ Validações Servidor PE | Implementado |
| ✅ Mensagens específicas por regime | Implementado |
| ✅ Cálculo de saldo por regime | Implementado |
| ✅ Abono pecuniário (só CLT) | Implementado |
| ✅ Avisos contextuais | Implementado |

---

## 🚀 PRÓXIMOS PASSOS

1. ✅ **Backend completo** - FEITO
2. 🔄 **Interface com calendário** - EM ANDAMENTO
3. 📊 **Dashboard visual** - PENDENTE
4. 📱 **Responsivo** - PENDENTE
5. 📄 **Relatórios** - PENDENTE

---

## 💬 MENSAGENS DO SISTEMA

### **CLT - Mensagens:**
```
✅ "Solicitação válida para CLT - Consolidação das Leis do Trabalho"
❌ "Máximo de 3 períodos permitidos para CLT"
❌ "Período de 4 dias é inválido. Mínimo: 5 dias corridos (CLT)"
❌ "Ao dividir férias em CLT, um período deve ter no mínimo 14 dias corridos"
💰 "Você pode vender até 10 dias (abono pecuniário)"
```

### **Servidor PE - Mensagens:**
```
✅ "Solicitação válida para Servidor Público Estadual de Pernambuco"
❌ "Máximo de 2 períodos permitidos para Servidor Público Estadual de Pernambuco"
❌ "Período de 8 dias é inválido. Mínimo: 10 dias corridos (Servidor Público Estadual de Pernambuco)"
📅 "Período preferencial para docentes (20/12 a 10/01)"
⚠️ "Abono pecuniário não permitido para servidores públicos estaduais"
```

---

## 🎓 DICAS PARA USUÁRIOS

### **Se você é CLT:**
- ✅ Pode dividir em até 3 períodos
- ✅ Um período deve ter no mínimo 14 dias
- ✅ Pode vender até 10 dias (abono)
- ⚠️ Férias vencem no período concessivo

### **Se você é Servidor Público Estadual de PE:**
- ✅ Pode dividir em até 2 períodos
- ✅ Cada período deve ter no mínimo 10 dias
- ❌ Não pode vender férias (abono)
- ✅ Se docente, prefira dezembro/janeiro
- ✅ Com +10 anos, pode acumular férias

---

**Sistema desenvolvido com atenção às legislações trabalhistas vigentes! 📋⚖️**

**Data de Implementação:** 30 de outubro de 2025  
**Versão:** 2.0.0 - Suporte Multi-Regime


