Files
2026-05-19 11:41:28 +00:00

6.0 KiB

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

\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:

\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:

-- 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:

-- 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:

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