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