feat: otimização de performance e ajustes finais
This commit is contained in:
@@ -0,0 +1,219 @@
|
||||
# 📊 Scripts de Dados de Teste - SIGEFP
|
||||
|
||||
Este diretório contém scripts SQL para popular o banco de dados com dados de teste completos.
|
||||
|
||||
## 📋 Scripts Disponíveis
|
||||
|
||||
### 1. `insert_all_test_data.sql` (BASE)
|
||||
**O que faz:**
|
||||
- Cria a estrutura base de dados de teste
|
||||
- Popula tabelas fundamentais: ministérios, unidades orgânicas, cargos
|
||||
- Cria estrutura salarial completa
|
||||
- Adiciona tipos de proventos e descontos
|
||||
- Cria agentes, contratos e contas bancárias
|
||||
- Cria ano fiscal e linhas orçamentárias
|
||||
- Adiciona um período de folha básico
|
||||
|
||||
**Quando usar:**
|
||||
- Primeira carga de dados de teste
|
||||
- Reset do banco de dados de desenvolvimento
|
||||
- Base para testes unitários
|
||||
|
||||
**Execução:**
|
||||
```sql
|
||||
\i sigefp-database/insert_all_test_data.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. `insert_functional_test_data.sql` (COMPLEMENTAR)
|
||||
**O que faz:**
|
||||
- Adiciona períodos de folha adicionais (Fevereiro, Março 2025)
|
||||
- Cria execuções de folha completas com status COMPLETED
|
||||
- Adiciona itens de folha completos com todos os cálculos:
|
||||
- Vencimento Base
|
||||
- Abono de Família
|
||||
- INPS (7%)
|
||||
- IRPS (escalonado)
|
||||
- Imposto de Selo (0.3%)
|
||||
- Cria execuções orçamentárias (COMMITMENT, LIQUIDATION, PAYMENT)
|
||||
- Adiciona lotes de pagamento
|
||||
- Cria ordens de pagamento geradas a partir da folha
|
||||
- Adiciona confirmações de pagamento do tesouro
|
||||
- Completa o fluxo RH → Budget → Treasury
|
||||
|
||||
**Quando usar:**
|
||||
- Após executar `insert_all_test_data.sql`
|
||||
- Para testes funcionais completos
|
||||
- Para testar fluxos end-to-end
|
||||
- Para validar integrações entre módulos
|
||||
|
||||
**Execução:**
|
||||
```sql
|
||||
\i sigefp-database/insert_functional_test_data.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. `insert_complete_test_data.sql` (ALTERNATIVO)
|
||||
**O que faz:**
|
||||
- Versão simplificada que usa dados existentes
|
||||
- Adiciona dados complementares básicos
|
||||
- Útil quando já existe alguma estrutura no banco
|
||||
|
||||
**Quando usar:**
|
||||
- Quando já há dados no banco e quer apenas complementar
|
||||
- Para adicionar dados específicos sem sobrescrever
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Sequência Recomendada de Execução
|
||||
|
||||
### Para Testes Completos:
|
||||
```sql
|
||||
-- 1. Executar script base
|
||||
\i sigefp-database/insert_all_test_data.sql
|
||||
|
||||
-- 2. Executar script complementar para testes funcionais
|
||||
\i sigefp-database/insert_functional_test_data.sql
|
||||
```
|
||||
|
||||
### Para Testes Básicos:
|
||||
```sql
|
||||
-- Apenas o script base
|
||||
\i sigefp-database/insert_all_test_data.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Dados Criados
|
||||
|
||||
### Após `insert_all_test_data.sql`:
|
||||
- ✅ 3 Ministérios
|
||||
- ✅ 4 Unidades Orgânicas
|
||||
- ✅ 4 Cargos
|
||||
- ✅ 3 Bancos
|
||||
- ✅ 1 Ano Fiscal (2025)
|
||||
- ✅ 3 Linhas Orçamentárias
|
||||
- ✅ 3 Alocações Orçamentárias
|
||||
- ✅ Estrutura Salarial Completa
|
||||
- ✅ 3 Tipos de Proventos
|
||||
- ✅ 3 Tipos de Descontos
|
||||
- ✅ Regras Globais de Desconto
|
||||
- ✅ 5 Escalões de IRPS
|
||||
- ✅ 5 Agentes
|
||||
- ✅ 3 Contas Bancárias
|
||||
- ✅ 2 Contratos
|
||||
- ✅ 1 Período de Folha (Janeiro 2025)
|
||||
- ✅ 1 Execução de Folha (DRAFT)
|
||||
- ✅ 3 Itens de Folha Básicos
|
||||
|
||||
### Após `insert_functional_test_data.sql`:
|
||||
- ✅ +2 Períodos de Folha (Fevereiro, Março)
|
||||
- ✅ +2 Execuções de Folha (COMPLETED)
|
||||
- ✅ +12 Itens de Folha Completos (com todos os cálculos)
|
||||
- ✅ 6 Execuções Orçamentárias (COMMITMENT, LIQUIDATION, PAYMENT)
|
||||
- ✅ 2 Lotes de Pagamento
|
||||
- ✅ 3 Ordens de Pagamento
|
||||
- ✅ 3 Confirmações de Pagamento do Tesouro
|
||||
- ✅ Fluxo completo RH → Budget → Treasury
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Cenários de Teste Cobertos
|
||||
|
||||
### ✅ Testes Unitários:
|
||||
- Cálculos de INPS, IRPS e Selo
|
||||
- Geração de itens de folha
|
||||
- Validações de saldo orçamentário
|
||||
- Criação de ordens de pagamento
|
||||
|
||||
### ✅ Testes de Integração:
|
||||
- Fluxo completo: Folha → Compromisso → Liquidação → Pagamento
|
||||
- Integração RH → Budget
|
||||
- Integração Treasury → Budget
|
||||
- Validações cruzadas entre módulos
|
||||
|
||||
### ✅ Testes Funcionais:
|
||||
- Processamento de folha completa
|
||||
- Geração de lotes de pagamento
|
||||
- Confirmação de pagamentos
|
||||
- Consultas e relatórios
|
||||
- Dashboard com dados reais
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notas Importantes
|
||||
|
||||
1. **Ordem de Execução**: Sempre execute `insert_all_test_data.sql` antes de `insert_functional_test_data.sql`
|
||||
|
||||
2. **Conflitos**: Os scripts usam `ON CONFLICT DO NOTHING`, então podem ser executados múltiplas vezes sem erro
|
||||
|
||||
3. **IDs Fixos**: Alguns IDs são fixos (UUIDs) para facilitar testes e referências
|
||||
|
||||
4. **Dados Realistas**: Os valores são baseados em valores típicos de Guiné-Bissau (em Francos CFA)
|
||||
|
||||
5. **Cálculos**: Os valores de descontos são calculados corretamente:
|
||||
- INPS: 7% sobre o bruto
|
||||
- Selo: 0.3% sobre o bruto
|
||||
- IRPS: Escalonado conforme faixas (10-25%)
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Verificação dos Dados
|
||||
|
||||
Após executar os scripts, você pode verificar os dados com:
|
||||
|
||||
```sql
|
||||
-- Verificar contagens
|
||||
SELECT 'PERIODOS FOLHA' as tipo, COUNT(*)::text as total
|
||||
FROM payroll_period WHERE fiscal_year = 2025
|
||||
UNION ALL
|
||||
SELECT 'EXECUCOES FOLHA', COUNT(*)::text
|
||||
FROM payroll_run WHERE period_id IN (
|
||||
SELECT id FROM payroll_period WHERE fiscal_year = 2025
|
||||
)
|
||||
UNION ALL
|
||||
SELECT 'ITENS FOLHA', COUNT(*)::text
|
||||
FROM payroll_item WHERE payroll_run_id IN (
|
||||
SELECT id FROM payroll_run WHERE period_id IN (
|
||||
SELECT id FROM payroll_period WHERE fiscal_year = 2025
|
||||
)
|
||||
)
|
||||
UNION ALL
|
||||
SELECT 'EXECUCOES ORCAMENTARIAS', COUNT(*)::text
|
||||
FROM budget_execution WHERE period_id >= 202501
|
||||
UNION ALL
|
||||
SELECT 'LOTES PAGAMENTO', COUNT(*)::text
|
||||
FROM payment_batch WHERE period_id >= 202501
|
||||
UNION ALL
|
||||
SELECT 'ORDENS PAGAMENTO', COUNT(*)::text
|
||||
FROM payment_order WHERE payment_batch_id IN (
|
||||
SELECT id FROM payment_batch WHERE period_id >= 202501
|
||||
)
|
||||
UNION ALL
|
||||
SELECT 'CONFIRMACOES TESOURO', COUNT(*)::text
|
||||
FROM treasury_payment WHERE payment_order_id IN (
|
||||
SELECT id FROM payment_order WHERE payment_batch_id IN (
|
||||
SELECT id FROM payment_batch WHERE period_id >= 202501
|
||||
)
|
||||
)
|
||||
ORDER BY tipo;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Próximos Passos
|
||||
|
||||
Com esses dados, você pode:
|
||||
1. ✅ Testar todas as funcionalidades do sistema
|
||||
2. ✅ Validar cálculos de folha de pagamento
|
||||
3. ✅ Testar integrações entre módulos
|
||||
4. ✅ Validar fluxos de negócio completos
|
||||
5. ✅ Testar relatórios e dashboards
|
||||
6. ✅ Validar regras de negócio do Decreto 12-A/94
|
||||
|
||||
---
|
||||
|
||||
**Última atualização:** 2024-12-22
|
||||
|
||||
Reference in New Issue
Block a user