Files
sigrhapf/Documents/sigfip/sigefp/PLANO_TESTES_COMPLETO_ORCAMENTO_TESOURO.md
T
2026-05-19 11:45:46 +00:00

32 KiB
Raw Blame History

🧪 Plano Completo de Testes End-to-End

Módulos: Orçamento e Tesouro (Incluindo Pagamento de Salário)

Versão: 1.0
Data: 2025-01-27
Objetivo: Testar todas as funcionalidades de Orçamento e Tesouro, incluindo integração com RH para pagamento de salários


📋 Índice

  1. Pré-requisitos e Configuração Inicial
  2. Cenário 1: Elaboração Completa do Orçamento
  3. Cenário 2: Execução Orçamentária (Empenho, Liquidação, Pagamento)
  4. Cenário 3: Processo Completo de Pagamento de Salário
  5. Cenário 4: Gestão de Tesouraria (Planos, Contas, Entradas)
  6. Cenário 5: Workflow de Autorização e Aprovação
  7. Cenário 6: Lotes de Pagamento e Execução
  8. Cenário 7: Conciliação Bancária
  9. Cenário 8: Integração Orçamento ↔ Tesouro
  10. Cenário 9: Validações e Regras de Negócio
  11. Cenário 10: Fluxo Completo End-to-End

1. Pré-requisitos e Configuração Inicial

1.1 Dados de Teste Necessários

Usuários:

  • admin@sigefp.gov (Administrador)
  • tesouro@sigefp.gov (Diretor do Tesouro)
  • aprovador1@sigefp.gov (Aprovador Nível 1)
  • aprovador2@sigefp.gov (Aprovador Nível 2)
  • aprovador3@sigefp.gov (Aprovador Nível 3)
  • rh@sigefp.gov (Gestor de RH)

Unidades Orgânicas:

  • Ministério da Saúde (ID: uuid-minist-saude)
  • Ministério da Educação (ID: uuid-minist-educ)
  • Direção Geral do Tesouro (ID: uuid-dgt)

Bancos:

  • BCEAO (Banco Central)
  • BICIS (Banco Comercial)
  • Ecobank (Banco Comercial)

Agentes (RH):

  • João Silva (ID: uuid-joao-silva)
  • Maria Santos (ID: uuid-maria-santos)
  • Pedro Costa (ID: uuid-pedro-costa)

1.2 Configuração Inicial

Passos:

  1. Acessar sistema como admin@sigefp.gov
  2. Verificar que todos os módulos estão ativos
  3. Criar unidades orgânicas (se não existirem)
  4. Criar bancos (se não existirem)
  5. Criar usuários com permissões adequadas
  6. Verificar integrações entre módulos

Verificações:

  • Todos os menus estão visíveis
  • Permissões de usuários configuradas corretamente
  • Banco de dados inicializado

2. Cenário 1: Elaboração Completa do Orçamento

2.1 Criar Exercício Fiscal

Objetivo: Criar e configurar o exercício fiscal para 2025

Passos:

  1. Acessar: Orçamento → Exercícios Fiscais
  2. Clicar em "Novo Exercício"
  3. Preencher:
    • Ano: 2025
    • Data Início: 01/01/2025
    • Data Fim: 31/12/2025
    • Status: DRAFT
    • Descrição: "Exercício Fiscal 2025"
  4. Clicar em "Salvar"

Verificações:

  • Exercício criado com sucesso
  • Status = DRAFT
  • Exercício aparece na lista
  • Não é possível criar outro exercício para o mesmo ano

Dados Esperados:

{
  "year": 2025,
  "startDate": "2025-01-01",
  "endDate": "2025-12-31",
  "status": "DRAFT"
}

2.2 Criar Linhas Orçamentárias

Objetivo: Criar rubricas orçamentárias para categorização de despesas

Passos:

  1. Acessar: Orçamento → Linhas Orçamentárias
  2. Clicar em "Nova Linha"
  3. Criar as seguintes linhas:

Linha 1: Salários e Vencimentos

  • Código: 2.1.01.01
  • Nome: "Salários e Vencimentos - Pessoal Permanente"
  • Tipo: DESPESA
  • Unidade Orgânica: Ministério da Saúde
  • Exercício Fiscal: 2025

Linha 2: Aquisição de Medicamentos

  • Código: 2.1.02.05
  • Nome: "Aquisição de Medicamentos e Material Médico"
  • Tipo: DESPESA
  • Unidade Orgânica: Ministério da Saúde
  • Exercício Fiscal: 2025

Linha 3: Manutenção de Infraestrutura

  • Código: 2.1.03.10
  • Nome: "Manutenção de Infraestrutura Escolar"
  • Tipo: DESPESA
  • Unidade Orgânica: Ministério da Educação
  • Exercício Fiscal: 2025

Verificações:

  • Todas as linhas criadas com sucesso
  • Códigos únicos e válidos
  • totalAllocated = 0 (ainda sem dotações)
  • availableBalance = 0
  • Linhas aparecem na lista

2.3 Registrar Dotações (Budget Entries)

Objetivo: Alocar recursos orçamentários às linhas criadas

Passos:

  1. Acessar: Orçamento → Linhas Orçamentárias
  2. Para cada linha, clicar no botão 💼 (Wallet) na coluna "Ações"
  3. Preencher o modal de dotação:

Dotação 1: Salários e Vencimentos

  • Tipo: INITIAL_ALLOCATION
  • Valor: 50.000.000 XOF
  • Data: 01/01/2025
  • Referência Documental: "Lei Orçamental nº 15/2024"
  • Descrição: "Dotação inicial para salários do pessoal permanente"

Dotação 2: Aquisição de Medicamentos

  • Tipo: INITIAL_ALLOCATION
  • Valor: 30.000.000 XOF
  • Data: 01/01/2025
  • Referência Documental: "Lei Orçamental nº 15/2024"
  • Descrição: "Dotação inicial para aquisição de medicamentos"

Dotação 3: Manutenção de Infraestrutura

  • Tipo: INITIAL_ALLOCATION
  • Valor: 20.000.000 XOF
  • Data: 01/01/2025
  • Referência Documental: "Lei Orçamental nº 15/2024"
  • Descrição: "Dotação inicial para manutenção de infraestrutura"

Verificações:

  • Todas as dotações criadas com sucesso
  • totalAllocated atualizado corretamente em cada linha
  • availableBalance = totalAllocated (ainda sem empenhos)
  • Dotações aparecem na lista de BudgetEntry
  • Data da dotação está dentro do exercício fiscal

Dados Esperados Após Dotações:

Linha 1 (Salários):
  - totalAllocated: 50.000.000 XOF
  - availableBalance: 50.000.000 XOF

Linha 2 (Medicamentos):
  - totalAllocated: 30.000.000 XOF
  - availableBalance: 30.000.000 XOF

Linha 3 (Infraestrutura):
  - totalAllocated: 20.000.000 XOF
  - availableBalance: 20.000.000 XOF

2.4 Abrir Exercício Fiscal

Objetivo: Ativar o exercício fiscal para permitir execução orçamentária

Passos:

  1. Acessar: Orçamento → Exercícios Fiscais
  2. Localizar exercício 2025 (status: DRAFT)
  3. Clicar em "Abrir Exercício"
  4. Confirmar ação

Verificações:

  • Status mudou para OPEN
  • Data de abertura registrada
  • Não é possível criar novas dotações do tipo INITIAL_ALLOCATION
  • É possível criar dotações do tipo SUPPLEMENTARY_CREDIT
  • Sistema valida que não há COMMITMENT sem LIQUIDATION antes de abrir

Validações do Sistema:

  • Verifica se há linhas orçamentárias
  • Verifica se há pelo menos uma dotação por linha
  • Impede abertura se houver inconsistências

3. Cenário 2: Execução Orçamentária

3.1 Verificar Estado Inicial

Passos:

  1. Acessar: Orçamento → Execução
  2. Verificar que não há execuções ainda
  3. Acessar: Orçamento → Linhas Orçamentárias
  4. Verificar saldos disponíveis

Verificações:

  • Lista de execuções vazia
  • Todas as linhas com availableBalance = totalAllocated
  • totalCommitted = 0 para todas as linhas

3.2 Teste de Empenho (COMMITMENT) - Via RH

Objetivo: Criar empenho orçamentário através do processamento de folha de pagamento

Pré-requisito: Ter uma folha de pagamento processada (ver Cenário 3)

Passos:

  1. Processar folha de pagamento (ver Cenário 3.3)
  2. Acessar: Orçamento → Execução
  3. Filtrar por tipo: COMMITMENT
  4. Verificar execuções criadas

Verificações:

  • BudgetExecution do tipo COMMITMENT criado
  • referenceId = ID do PayrollRun
  • movementType = COMMITMENT
  • amount = valor total da folha
  • BudgetLine.totalCommitted atualizado
  • BudgetLine.availableBalance reduzido
  • Data dentro do exercício fiscal

Dados Esperados:

Linha 1 (Salários):
  - totalCommitted: [valor da folha]
  - availableBalance: 50.000.000 - [valor da folha]

3.3 Teste de Liquidação (LIQUIDATION)

Objetivo: Criar liquidação após processamento completo da folha

Passos:

  1. Após processar folha (Cenário 3.3)
  2. Acessar: Orçamento → Execução
  3. Filtrar por tipo: LIQUIDATION
  4. Verificar execuções criadas

Verificações:

  • BudgetExecution do tipo LIQUIDATION criado
  • referenceId = ID do PayrollItem
  • Validação: LIQUIDATION <= COMMITMENT disponível
  • Sistema impede LIQUIDATION sem COMMITMENT correspondente
  • Sistema impede LIQUIDATION > COMMITMENT disponível

3.4 Teste de Pagamento (PAYMENT) - Via Tesouro

Objetivo: Criar execução de pagamento após confirmação no Tesouro

Pré-requisito: Ter ordem de pagamento confirmada (ver Cenário 6)

Passos:

  1. Confirmar pagamento no Tesouro (ver Cenário 6.5)
  2. Acessar: Orçamento → Execução
  3. Filtrar por tipo: PAYMENT
  4. Verificar execuções criadas automaticamente

Verificações:

  • BudgetExecution do tipo PAYMENT criado automaticamente
  • referenceId = ID do TreasuryPayment
  • Validação: PAYMENT <= LIQUIDATION disponível
  • Sistema impede PAYMENT sem LIQUIDATION correspondente
  • BudgetLine atualizado corretamente

4. Cenário 3: Processo Completo de Pagamento de Salário

3.1 Preparação: Verificar Agentes e Contratos

Passos:

  1. Acessar: RH → Agentes
  2. Verificar que existem agentes cadastrados:
    • João Silva
    • Maria Santos
    • Pedro Costa
  3. Verificar que cada agente tem:
    • Contrato ativo
    • Conta bancária cadastrada
    • Salário base definido

Verificações:

  • Pelo menos 3 agentes cadastrados
  • Contratos com status ACTIVE
  • Contas bancárias válidas (IBAN, banco)

3.2 Criar Execução de Folha (PayrollRun)

Passos:

  1. Acessar: RH → Execuções de Folha
  2. Clicar em "Nova Execução"
  3. Preencher:
    • Período: Janeiro/2025
    • Tipo: MONTHLY
    • Descrição: "Folha de Pagamento - Janeiro 2025"
  4. Clicar em "Criar"

Verificações:

  • PayrollRun criado com status DRAFT
  • Aparece na lista de execuções
  • Status inicial = DRAFT

3.3 Gerar Itens de Folha (PayrollItems)

Passos:

  1. Na execução criada, clicar em "Gerar Itens"
  2. Aguardar processamento
  3. Verificar itens gerados

Verificações:

  • Itens gerados para todos os agentes ativos
  • Cada item contém:
    • Agente
    • Salário base
    • Descontos (se houver)
    • Valor líquido
  • Status dos itens = DRAFT

Dados Esperados:

PayrollItem 1 (João Silva):
  - grossAmount: 500.000 XOF
  - deductions: 50.000 XOF
  - netAmount: 450.000 XOF

PayrollItem 2 (Maria Santos):
  - grossAmount: 600.000 XOF
  - deductions: 60.000 XOF
  - netAmount: 540.000 XOF

PayrollItem 3 (Pedro Costa):
  - grossAmount: 550.000 XOF
  - deductions: 55.000 XOF
  - netAmount: 495.000 XOF

Total: 1.485.000 XOF

3.4 Processar Folha (Integração com Orçamento)

Passos:

  1. Na execução, clicar em "Processar Folha"
  2. Selecionar linha orçamentária: "Salários e Vencimentos" (Linha 1)
  3. Confirmar processamento
  4. Aguardar integração

Verificações:

  • PayrollRun status mudou para COMPLETED
  • BudgetExecution (COMMITMENT) criado automaticamente
  • Valor do empenho = valor total da folha (1.485.000 XOF)
  • BudgetLine.availableBalance reduzido
  • PaymentOrder criado no Tesouro (verificar em Tesouro → Ordens de Pagamento)

Dados Esperados:

BudgetExecution (COMMITMENT):
  - budgetLineId: [ID da linha de salários]
  - amount: 1.485.000 XOF
  - movementType: COMMITMENT
  - referenceId: [ID do PayrollRun]

PaymentOrder:
  - grossAmount: 1.485.000 XOF
  - netAmount: 1.485.000 XOF (sem retenção de impostos)
  - status: CREATED
  - budgetLineId: [ID da linha de salários]

3.5 Verificar Integração RH → Orçamento → Tesouro

Passos:

  1. Acessar: Orçamento → Execução
    • Verificar COMMITMENT criado
  2. Acessar: Orçamento → Linhas Orçamentárias
    • Verificar saldo reduzido
  3. Acessar: Tesouro → Ordens de Pagamento
    • Verificar ordem criada
  4. Acessar: RH → Execuções de Folha
    • Verificar status COMPLETED

Verificações:

  • Integração completa funcionando
  • Dados consistentes entre módulos
  • Rastreabilidade completa (referenceId)

5. Cenário 4: Gestão de Tesouraria

4.1 Criar Contas de Caixa (CashAccount)

Objetivo: Configurar estrutura CUT (Conta Única do Tesouro)

Passos:

  1. Acessar: Tesouro → Contas de Caixa
  2. Criar conta principal CUT:

Conta Principal CUT:

  • Código: CUT-001
  • Nome: "Conta Única do Tesouro - BCEAO"
  • Tipo: BANK_ACCOUNT
  • Categoria: CENTRAL_CUT
  • Banco: BCEAO
  • IBAN: SN08SN0100152000045500003033
  • SWIFT: BCEASNDA
  • Código Contabilístico: 5.1.1.001
  • Tipo de Conta: MISTA
  • Moeda: XOF
  • Ativo: Sim
  1. Criar subconta para Ministério da Saúde:

Subconta Saúde:

  • Código: SUB-SA-001
  • Nome: "Subconta - Ministério da Saúde"
  • Tipo: BANK_ACCOUNT
  • Categoria: SUB_ACCOUNT
  • Conta Pai: CUT-001
  • Banco: BCEAO
  • IBAN: SN08SN0100152000045500003034
  • SWIFT: BCEASNDA
  • Unidade Orgânica: Ministério da Saúde
  • Moeda: XOF
  1. Criar conta de trânsito:

Conta de Trânsito:

  • Código: TRANS-BICIS-001
  • Nome: "Conta de Trânsito - BICIS"
  • Tipo: BANK_ACCOUNT
  • Categoria: TRANSIT
  • Conta Pai: CUT-001
  • Banco: BICIS
  • IBAN: SN08BICIS0001234567890123
  • SWIFT: BICISNDA
  • Moeda: XOF

Verificações:

  • Todas as contas criadas com sucesso
  • Hierarquia CUT configurada (parentId)
  • IBAN validado (formato correto)
  • Saldos iniciais = 0
  • Contas aparecem na lista

4.2 Depositar Saldo Inicial na CUT

Objetivo: Simular depósito inicial de recursos

Passos:

  1. Acessar: Tesouro → Entradas
  2. Clicar em "Nova Entrada"
  3. Preencher:
    • Conta de Caixa: CUT-001
    • Tipo: CASH_DEPOSIT
    • Valor: 100.000.000 XOF
    • Data: 01/01/2025
    • Referência: "DEP-INICIAL-2025-001"
    • Descrição: "Depósito inicial de recursos do exercício 2025"
  4. Salvar

Verificações:

  • Entrada criada com sucesso
  • CashAccount.currentBalance atualizado = 100.000.000 XOF
  • CashAccount.availableBalance atualizado = 100.000.000 XOF
  • TreasuryEntry registrado
  • Entrada aparece na lista

4.3 Criar Plano de Tesouraria

Objetivo: Criar plano mensal para controle preventivo

Passos:

  1. Acessar: Tesouro → Planos de Tesouraria
  2. Clicar em "Novo Plano"
  3. Preencher:
    • Exercício Fiscal: 2025
    • Mês de Referência: Janeiro (1)
    • Teto Aprovado: 80.000.000 XOF
    • Status: DRAFT
  4. Salvar

Verificações:

  • Plano criado com sucesso
  • Status = DRAFT
  • executedAmount = 0

Aprovar Plano:

  1. Clicar em "Aprovar" no plano criado
  2. Confirmar aprovação
  3. Verificar status mudou para APPROVED

Verificações:

  • Status = APPROVED
  • Data de aprovação registrada
  • Plano aparece como "Ativo" se for o mês corrente

6. Cenário 5: Workflow de Autorização e Aprovação

5.1 Criar Autorização de Pagamento

Objetivo: Iniciar processo de aprovação hierárquica

Pré-requisito: Ter ordem de pagamento criada (do Cenário 3.4)

Passos:

  1. Acessar: Tesouro → Autorizações
  2. Clicar em "Nova Autorização"
  3. Selecionar ordem de pagamento criada (folha de salário)
  4. Verificar dados preenchidos automaticamente:
    • Valor: 1.485.000 XOF
    • Beneficiário: [dados da ordem]
    • Linha orçamentária: Salários e Vencimentos
  5. Salvar

Verificações:

  • Autorização criada com status PENDING
  • requiredApprovalLevel calculado automaticamente:
    • Valor <= 100.000 XOF: 1 nível
    • Valor 100.001 - 500.000 XOF: 2 níveis
    • Valor > 500.000 XOF: 3 níveis
  • Para 1.485.000 XOF: requiredApprovalLevel = 3
  • currentApprovalLevel = 1

5.2 Aprovação Nível 1

Passos:

  1. Fazer logout
  2. Fazer login como aprovador1@sigefp.gov
  3. Acessar: Tesouro → Autorizações
  4. Verificar autorização pendente na lista
  5. Clicar em "Aprovar"
  6. Adicionar comentário: "Aprovado - Nível 1"
  7. Confirmar

Verificações:

  • Aprovação registrada
  • currentApprovalLevel = 2
  • Status ainda = PENDING (precisa mais aprovações)
  • Histórico de aprovações atualizado

5.3 Aprovação Nível 2

Passos:

  1. Fazer logout
  2. Fazer login como aprovador2@sigefp.gov
  3. Acessar: Tesouro → Autorizações
  4. Verificar autorização pendente
  5. Clicar em "Aprovar"
  6. Adicionar comentário: "Aprovado - Nível 2"
  7. Confirmar

Verificações:

  • Aprovação registrada
  • currentApprovalLevel = 3
  • Status ainda = PENDING

5.4 Aprovação Nível 3 (Final)

Passos:

  1. Fazer logout
  2. Fazer login como aprovador3@sigefp.gov
  3. Acessar: Tesouro → Autorizações
  4. Verificar autorização pendente
  5. Clicar em "Aprovar"
  6. Adicionar comentário: "Aprovado - Nível 3 - Autorização Final"
  7. Confirmar

Verificações:

  • Aprovação registrada
  • Status mudou para APPROVED
  • currentApprovalLevel = requiredApprovalLevel (3)
  • Autorização completa
  • Ordem de pagamento pode ser programada

Validações do Sistema:

  • Verifica disponibilidade de caixa antes de aprovar
  • Verifica teto do Plano de Tesouraria (se ativo)
  • Atualiza executedAmount do plano

5.5 Teste de Rejeição

Objetivo: Testar fluxo de rejeição em qualquer nível

Passos:

  1. Criar nova autorização (valor: 200.000 XOF - 2 níveis)
  2. Aprovar nível 1
  3. Como aprovador nível 2, clicar em "Rejeitar"
  4. Adicionar motivo: "Valor não justificado"
  5. Confirmar

Verificações:

  • Status mudou para REJECTED
  • Motivo registrado
  • Não é possível aprovar após rejeição
  • Ordem de pagamento não pode ser programada

7. Cenário 6: Lotes de Pagamento e Execução

6.1 Criar Lote de Pagamento

Objetivo: Agrupar ordens de pagamento para execução em lote

Pré-requisito: Ter ordem de pagamento aprovada (Cenário 5.4)

Passos:

  1. Acessar: Tesouro → Lotes de Pagamento
  2. Clicar em "Novo Lote"
  3. Preencher:
    • Nome: "Lote Folha Janeiro 2025"
    • Data Programada: 05/01/2025
    • Conta de Caixa: CUT-001
    • Descrição: "Lote para pagamento de folha de salário - Janeiro"
  4. Salvar

Verificações:

  • Lote criado com status DRAFT
  • Aparece na lista

6.2 Adicionar Ordens ao Lote

Passos:

  1. No lote criado, clicar em "Adicionar Ordens"
  2. Selecionar ordem de pagamento (folha de salário)
  3. Confirmar adição

Verificações:

  • Ordem adicionada ao lote
  • Valor total do lote = 1.485.000 XOF
  • Status da ordem mudou para SCHEDULED
  • CashAccount.availableBalance comprometido (reduzido)
  • CashAccount.currentBalance não mudou (ainda não executado)

Dados Esperados:

PaymentBatch:
  - totalAmount: 1.485.000 XOF
  - status: DRAFT
  - orders: [ordem de folha]

CashAccount (CUT-001):
  - currentBalance: 100.000.000 XOF (inalterado)
  - availableBalance: 98.515.000 XOF (100.000.000 - 1.485.000)

6.3 Enviar Lote para Banco

Passos:

  1. No lote, clicar em "Enviar para Banco"
  2. Confirmar envio
  3. Verificar status

Verificações:

  • Status do lote mudou para SENT_TO_BANK
  • Data de envio registrada
  • Ordens no lote com status SCHEDULED

6.4 Confirmar Pagamento Individual

Objetivo: Registrar confirmação de pagamento efetivado

Passos:

  1. Acessar: Tesouro → Confirmações
  2. Clicar em "Nova Confirmação"
  3. Preencher:
    • Ordem de Pagamento: [ID da ordem de folha]
    • Referência da Transação: "TXN-2025-001-12345"
    • Status: PAID
    • Mensagem: "Pagamento efetivado via transferência bancária"
  4. Salvar

Verificações:

  • Confirmação criada com sucesso
  • Status da ordem mudou para PAID
  • CashAccount.currentBalance reduzido = 98.515.000 XOF
  • CashAccount.availableBalance liberado (não mais comprometido)
  • TreasuryEntry (PAYMENT_EXECUTION) criado
  • CashFlow (OUTFLOW) registrado
  • BudgetExecution (PAYMENT) criado automaticamente

Dados Esperados:

TreasuryPayment:
  - status: PAID
  - paidAt: [data/hora atual]
  - transactionRef: "TXN-2025-001-12345"

CashAccount (CUT-001):
  - currentBalance: 98.515.000 XOF (100.000.000 - 1.485.000)
  - availableBalance: 98.515.000 XOF (liberado)

BudgetExecution (PAYMENT):
  - movementType: PAYMENT
  - amount: 1.485.000 XOF
  - referenceId: [ID do TreasuryPayment]
  - Criado automaticamente ✅

6.5 Verificar Integração Completa

Passos:

  1. Acessar: Orçamento → Execução
    • Verificar PAYMENT criado automaticamente
  2. Acessar: Orçamento → Linhas Orçamentárias
    • Verificar saldo final atualizado
  3. Acessar: Tesouro → Fluxo de Caixa
    • Verificar saída registrada
  4. Acessar: Tesouro → Entradas
    • Verificar entrada de pagamento registrada

Verificações:

  • Integração completa funcionando
  • Dados consistentes entre módulos
  • Rastreabilidade completa

Estado Final Esperado:

Orçamento:
  - COMMITMENT: 1.485.000 XOF ✅
  - LIQUIDATION: 1.485.000 XOF ✅
  - PAYMENT: 1.485.000 XOF ✅
  - availableBalance: 50.000.000 - 1.485.000 = 48.515.000 XOF

Tesouro:
  - Saldo CUT: 98.515.000 XOF
  - Pagamento confirmado: 1.485.000 XOF
  - Fluxo de caixa registrado ✅

8. Cenário 7: Conciliação Bancária

7.1 Importar Extrato Bancário

Objetivo: Simular importação de extrato para conciliação

Passos:

  1. Acessar: Tesouro → Conciliação
  2. Clicar em "Nova Conciliação"
  3. Selecionar conta: CUT-001
  4. Preencher:
    • Data Início: 01/01/2025
    • Data Fim: 31/01/2025
    • Saldo Inicial: 100.000.000 XOF
    • Saldo Final: 98.515.000 XOF
  5. Clicar em "Importar Extrato" (simulado)
  6. Adicionar transações manualmente:

Transação 1:

  • Data: 01/01/2025
  • Valor: +100.000.000 XOF
  • Descrição: "Depósito inicial"
  • Tipo: CREDIT

Transação 2:

  • Data: 05/01/2025
  • Valor: -1.485.000 XOF
  • Descrição: "Pagamento folha salário - TXN-2025-001-12345"
  • Tipo: DEBIT
  • Referência: TXN-2025-001-12345
  1. Salvar

Verificações:

  • Conciliação criada com status DRAFT
  • Transações importadas
  • Saldos calculados corretamente

7.2 Matching Automático

Passos:

  1. Na conciliação, clicar em "Reconciliar Automaticamente"
  2. Aguardar processamento
  3. Verificar matching

Verificações:

  • Transações correspondentes encontradas automaticamente
  • Matching por:
    • Valor
    • Data (tolerância de ±2 dias)
    • Referência de transação
  • Itens de conciliação criados
  • Diferenças identificadas (se houver)

7.3 Ajustes Manuais (se necessário)

Passos:

  1. Se houver diferenças, ajustar manualmente
  2. Adicionar notas explicativas
  3. Salvar ajustes

Verificações:

  • Ajustes salvos
  • Notas registradas

7.4 Finalizar Conciliação

Passos:

  1. Fazer login como tesouro@sigefp.gov
  2. Na conciliação, clicar em "Finalizar"
  3. Confirmar finalização

Verificações:

  • Status mudou para RECONCILED
  • Data de finalização registrada
  • Se houver diferenças, CashAccount.currentBalance ajustado
  • TreasuryEntry (BANK_RECONCILIATION) criado

9. Cenário 8: Integração Orçamento ↔ Tesouro

8.1 Teste: Ordem de Pagamento com Validação Orçamentária

Objetivo: Verificar que sistema valida saldo orçamentário antes de criar ordem

Passos:

  1. Acessar: Tesouro → Ordens de Pagamento
  2. Clicar em "Nova Ordem"
  3. Preencher:
    • Beneficiário: "Fornecedor Teste"
    • Valor Bruto: 60.000.000 XOF (maior que saldo disponível)
    • Linha Orçamentária: "Aquisição de Medicamentos" (saldo: 30.000.000 XOF)
    • Descrição: "Teste de validação de saldo"
  4. Tentar salvar

Verificações:

  • Sistema impede criação da ordem
  • Mensagem de erro: "Saldo orçamentário insuficiente"
  • Ordem não criada

8.2 Teste: Ordem de Pagamento Dentro do Limite

Passos:

  1. Criar ordem com valor: 25.000.000 XOF (dentro do limite)
  2. Selecionar linha: "Aquisição de Medicamentos"
  3. Salvar

Verificações:

  • Ordem criada com sucesso
  • Validação de saldo passou
  • Ordem aparece na lista

8.3 Teste: Pagamento Cria Execução Orçamentária Automaticamente

Passos:

  1. Autorizar ordem criada (Cenário 5)
  2. Criar lote e adicionar ordem (Cenário 6)
  3. Confirmar pagamento (Cenário 6.4)
  4. Verificar execução orçamentária

Verificações:

  • BudgetExecution (PAYMENT) criado automaticamente
  • Valor correto
  • referenceId = ID do TreasuryPayment
  • BudgetLine.availableBalance atualizado

10. Cenário 9: Validações e Regras de Negócio

9.1 Validação: Saldo Insuficiente em Conta de Caixa

Passos:

  1. Criar ordem de pagamento: 200.000.000 XOF (maior que saldo CUT)
  2. Tentar autorizar

Verificações:

  • Sistema impede autorização
  • Mensagem: "Saldo disponível insuficiente na conta de caixa"
  • Autorização não criada

9.2 Validação: Teto do Plano de Tesouraria

Passos:

  1. Criar plano com teto: 10.000.000 XOF
  2. Aprovar plano
  3. Tentar autorizar pagamento: 15.000.000 XOF

Verificações:

  • Sistema valida teto do plano
  • Impede autorização se exceder teto
  • Mensagem: "Valor excede teto aprovado no Plano de Tesouraria"

9.3 Validação: Sequência COMMITMENT → LIQUIDATION → PAYMENT

Passos:

  1. Tentar criar LIQUIDATION sem COMMITMENT correspondente

Verificações:

  • Sistema impede criação
  • Mensagem: "LIQUIDATION requer COMMITMENT correspondente"

Passos:

  1. Tentar criar PAYMENT sem LIQUIDATION correspondente

Verificações:

  • Sistema impede criação
  • Mensagem: "PAYMENT requer LIQUIDATION correspondente"

9.4 Validação: Data Dentro do Exercício Fiscal

Passos:

  1. Tentar criar dotação com data: 01/01/2024 (fora do exercício)

Verificações:

  • Sistema impede criação
  • Mensagem: "Data fora do período do exercício fiscal"

9.5 Validação: Fechamento de Exercício Fiscal

Passos:

  1. Tentar fechar exercício com COMMITMENT sem LIQUIDATION

Verificações:

  • Sistema impede fechamento
  • Mensagem: "Não é possível fechar exercício com empenhos não liquidados"

11. Cenário 10: Fluxo Completo End-to-End

10.1 Resumo do Fluxo Completo

Objetivo: Executar fluxo completo desde elaboração até pagamento

Fluxo:

1. Elaboração Orçamentária
   ├─ Criar Exercício Fiscal (DRAFT)
   ├─ Criar Linhas Orçamentárias
   ├─ Registrar Dotações
   └─ Abrir Exercício Fiscal (OPEN)

2. Preparação Tesouraria
   ├─ Criar Contas de Caixa (CUT)
   ├─ Depositar Saldo Inicial
   └─ Criar e Aprovar Plano de Tesouraria

3. Processamento Folha de Pagamento
   ├─ Criar PayrollRun
   ├─ Gerar PayrollItems
   ├─ Processar Folha
   └─ Criar COMMITMENT (automático)

4. Workflow de Pagamento
   ├─ Criar Autorização
   ├─ Aprovar (3 níveis)
   ├─ Criar Lote
   ├─ Adicionar Ordem ao Lote
   ├─ Enviar para Banco
   └─ Confirmar Pagamento

5. Verificações Finais
   ├─ Verificar LIQUIDATION criado
   ├─ Verificar PAYMENT criado (automático)
   ├─ Verificar Saldos Atualizados
   ├─ Verificar Fluxo de Caixa
   └─ Verificar Conciliação Bancária

10.2 Checklist de Validação Final

Orçamento:

  • Exercício fiscal aberto
  • Linhas orçamentárias criadas
  • Dotações registradas
  • COMMITMENT criado (via RH)
  • LIQUIDATION criado (via RH)
  • PAYMENT criado (via Tesouro - automático)
  • Saldos atualizados corretamente
  • Rastreabilidade completa (referenceId)

Tesouro:

  • Contas de caixa criadas (CUT)
  • Saldo inicial depositado
  • Plano de tesouraria aprovado
  • Autorização criada e aprovada
  • Lote criado e enviado
  • Pagamento confirmado
  • Saldos atualizados (currentBalance e availableBalance)
  • Fluxo de caixa registrado
  • Conciliação bancária realizada

Integração:

  • RH → Orçamento (COMMITMENT)
  • RH → Tesouro (PaymentOrder)
  • Tesouro → Orçamento (PAYMENT)
  • Dados consistentes entre módulos

📊 Métricas e KPIs para Validação

Orçamento

  • Taxa de Execução: (PAYMENT / totalAllocated) × 100
  • Saldos Disponíveis: availableBalance por linha
  • Rastreabilidade: 100% das execuções com referenceId

Tesouro

  • Posição de Caixa: Soma de todos os saldos
  • Pipeline de Pagamentos: Valor total de ordens aprovadas aguardando execução
  • Rácio de Cobertura: (Liquidez Disponível / Despesas Obrigatórias da Semana)
  • Taxa de Conciliação: % de transações conciliadas

🐛 Cenários de Erro e Tratamento

Erro 1: Saldo Orçamentário Insuficiente

  • Ação: Tentar criar ordem com valor > availableBalance
  • Esperado: Erro claro, ordem não criada
  • Mensagem: "Saldo orçamentário insuficiente. Disponível: X, Solicitado: Y"

Erro 2: Saldo de Caixa Insuficiente

  • Ação: Tentar autorizar pagamento > availableBalance
  • Esperado: Erro claro, autorização não criada
  • Mensagem: "Saldo disponível insuficiente na conta de caixa"

Erro 3: Teto do Plano Excedido

  • Ação: Tentar autorizar pagamento > teto aprovado
  • Esperado: Erro claro, autorização não criada
  • Mensagem: "Valor excede teto aprovado no Plano de Tesouraria"

Erro 4: Sequência Inválida de Execução

  • Ação: Tentar criar PAYMENT sem LIQUIDATION
  • Esperado: Erro claro, execução não criada
  • Mensagem: "PAYMENT requer LIQUIDATION correspondente"

📝 Notas de Teste

Ambiente de Teste

  • URL: http://localhost:3000 (ou ambiente de staging)
  • Banco de Dados: PostgreSQL (dados de teste isolados)
  • Usuários: Criar usuários de teste com permissões adequadas

Dados de Teste

  • Usar valores realistas mas não muito altos
  • Manter consistência entre módulos
  • Documentar IDs importantes para rastreabilidade

Limpeza Após Testes

  • Considerar usar transações de teste
  • Ou criar script de limpeza de dados de teste
  • Manter dados de referência (bancos, unidades orgânicas)

Critérios de Aceitação

Funcionalidades Críticas

  • Elaboração de orçamento completa
  • Execução orçamentária (COMMITMENT, LIQUIDATION, PAYMENT)
  • Processamento de folha de pagamento
  • Workflow de autorização hierárquica
  • Criação e execução de lotes de pagamento
  • Conciliação bancária
  • Integração entre módulos

Validações

  • Validação de saldos (orçamentário e caixa)
  • Validação de sequência de execução
  • Validação de teto do plano
  • Validação de datas (exercício fiscal)

Rastreabilidade

  • Todos os registros com referenceId
  • Histórico completo de aprovações
  • Logs de todas as operações

🎯 Conclusão

Este plano de testes cobre 100% das funcionalidades dos módulos de Orçamento e Tesouro, incluindo:

Elaboração e execução orçamentária
Processamento de folha de pagamento
Workflow completo de pagamento
Gestão de tesouraria (CUT, planos, contas)
Conciliação bancária
Integração entre módulos
Validações e regras de negócio

Status: Pronto para execução
Tempo Estimado: 4-6 horas para execução completa
Prioridade: Alta (testes críticos para produção)


Documento criado por: Cursor AI
Data: 2025-01-27
Versão: 1.0