Files
2026-05-19 11:45:46 +00:00

220 lines
6.0 KiB
Markdown

# 📊 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