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

16 KiB

🔄 Análise Completa do Fluxo de Negócio - SIGEFP

Data: 2025-01-XX
Objetivo: Analisar o fluxo completo de negócio desde a elaboração do orçamento até o pagamento, identificando lacunas e melhorias necessárias


🎯 Problema Identificado

O usuário está tendo dificuldade em:

  1. Iniciar o processo de elaboração de orçamento
  2. Entender como a execução se conecta com o Tesouro
  3. Compreender o fluxo completo end-to-end

📊 Fluxo de Negócio Completo (Como DEVERIA ser)

Fase 1: Elaboração e Aprovação do Orçamento

1. Criar Exercício Fiscal
   └─> FiscalYearsPage: Criar novo exercício (status: DRAFT)
   
2. Criar Linhas Orçamentárias
   └─> BudgetLinesPage: Criar rubricas (ex: "Aquisição de Medicamentos")
   
3. Registrar Dotações (LEI DO ORÇAMENTO) ⚠️ FALTANDO NO MENU
   └─> BudgetEntryPage: Registrar dotação inicial via Lei
   └─> Tipo: INITIAL_ALLOCATION
   └─> Referência: "Lei nº X/2024"
   └─> Atualiza: BudgetLine.totalAllocated
   
4. Aprovar e Abrir Exercício Fiscal
   └─> FiscalYearsPage: Abrir exercício (status: OPEN)

Status Atual:

  • Exercício Fiscal: Implementado
  • Linhas Orçamentárias: Implementado
  • Dotações (BudgetEntry): FALTANDO NO MENU PRINCIPAL
    • Existe apenas dentro do modal de Linhas Orçamentárias
    • Não há página dedicada para gestão de dotações

Fase 2: Execução Orçamentária

1. Empenho (COMMITMENT)
   └─> Origem: Módulo RH (folha de pagamento) ou Compras
   └─> BudgetExecutionService: Criar COMMITMENT
   └─> Validação: Verifica availableBalance
   └─> Atualiza: BudgetLine.totalCommitted
   
2. Liquidação (LIQUIDATION)
   └─> Origem: Após entrega de bem/serviço
   └─> BudgetExecutionService: Criar LIQUIDATION
   └─> Validação: Deve ter COMMITMENT correspondente
   └─> Atualiza: BudgetLine (cálculo de saldo)
   
3. Pagamento (PAYMENT)
   └─> Origem: Módulo Tesouro (após confirmação de pagamento)
   └─> TreasuryPaymentService: Confirma pagamento
   └─> BudgetIntegrationService: Cria PAYMENT automaticamente
   └─> Atualiza: BudgetLine (cálculo final)

Status Atual:

  • COMMITMENT: Implementado (via RH)
  • LIQUIDATION: Implementado (via RH)
  • PAYMENT: Implementado (via Tesouro - automático)
  • ⚠️ Visualização: BudgetExecutionPage mostra tudo, mas não permite criar manualmente

Fase 3: Processo de Pagamento (Tesouro)

1. Criação de Ordem de Pagamento
   └─> PaymentOrdersPage: Criar ordem
   └─> Origem: PayrollRun (RH) ou Manual
   └─> Validação: Verifica saldo orçamentário (se aplicável)
   
2. Autorização de Pagamento
   └─> PaymentAuthorizationsPage: Criar autorização
   └─> Workflow: Aprovação hierárquica (níveis 1, 2, 3)
   └─> Validação: Verifica disponibilidade de caixa
   
3. Programação de Pagamento
   └─> PaymentBatchesPage: Criar lote
   └─> Adicionar ordens ao lote
   └─> Compromete: CashAccount.availableBalance
   
4. Execução de Pagamento
   └─> TreasuryPaymentsPage: Confirmar pagamento
   └─> Atualiza: CashAccount.currentBalance
   └─> Cria: BudgetExecution (PAYMENT) automaticamente
   └─> Registra: CashFlow (OUTFLOW)
   
5. Conciliação Bancária
   └─> BankReconciliationPage: Importar extrato
   └─> Matching automático
   └─> Ajustes manuais (se necessário)

Status Atual:

  • Todas as funcionalidades implementadas
  • Integração com Orçamento funcionando

🔍 Problemas Identificados

1. Menu de Orçamento Incompleto 🔴 CRÍTICO

Menu Atual:

Orçamento
├── Exercícios Fiscais
├── Linhas Orçamentais
└── Execução

O que está faltando:

  • "Dotações" ou "Elaboração de Orçamento" (BudgetEntry)
    • Esta é a funcionalidade PRINCIPAL para iniciar o processo
    • Atualmente só acessível via modal dentro de Linhas Orçamentárias
    • Não há página dedicada para gestão de dotações

Impacto:

  • Usuário não sabe como iniciar o processo de elaboração
  • Não há visão consolidada de todas as dotações
  • Dificulta auditoria e rastreamento

2. Menu de Tesouro Desorganizado 🟡 MÉDIO

Menu Atual:

Tesouro
├── Contas de Caixa
├── Autorizações
├── Lotes de Pagamento
├── Ordens de Pagamento
├── Conciliação
└── Confirmações

Problemas:

  • Ordem não segue o fluxo lógico de negócio
  • Falta "Entradas de Tesouraria" (TreasuryEntry) no menu
  • "Fluxo de Caixa" não está no menu (existe a página)

Ordem Sugerida (seguindo o fluxo):

Tesouro
├── Contas de Caixa (pré-requisito)
├── Entradas de Tesouraria (novo)
├── Autorizações (workflow de aprovação)
├── Ordens de Pagamento (criação)
├── Lotes de Pagamento (agrupamento)
├── Confirmações (execução)
├── Fluxo de Caixa (monitoramento)
└── Conciliação (fechamento)

3. Falta de Página para BudgetEntry 🔴 CRÍTICO

Situação Atual:

  • BudgetEntry só pode ser criado via modal dentro de BudgetLineEntriesModal
  • Não há página dedicada para:
    • Listar todas as dotações
    • Criar dotações independentemente
    • Visualizar histórico de alterações
    • Filtrar por exercício fiscal, rubrica, tipo

Necessário:

  • Criar BudgetEntriesPage.tsx
  • Adicionar rota /budget/entries
  • Adicionar ao menu de navegação

4. Falta de Página para TreasuryEntry 🟡 MÉDIO

Situação Atual:

  • TreasuryEntry existe no backend
  • Existe TreasuryEntriesPage.tsx
  • Mas não está no menu de navegação

Necessário:

  • Adicionar ao menu de navegação

📋 Correções Necessárias

Prioridade 1: Crítico

1. Adicionar "Dotações" ao Menu de Orçamento

Arquivo: sigefp-frontend/src/config/navigation.ts

{
  id: 'budget',
  name: 'Orçamento',
  description: 'Gestão orçamental',
  icon: Wallet,
  color: 'budget',
  items: [
    { name: 'Exercícios Fiscais', href: '/budget/fiscal-years', icon: Calendar },
    { name: 'Linhas Orçamentais', href: '/budget/lines', icon: PiggyBank },
    { name: 'Dotações', href: '/budget/entries', icon: FileText }, // NOVO
    { name: 'Execução', href: '/budget/execution', icon: TrendingUp },
  ],
}

2. Criar BudgetEntriesPage

Arquivo: sigefp-frontend/src/modules/budget/pages/BudgetEntriesPage.tsx

Funcionalidades:

  • Listar todas as dotações (BudgetEntry)
  • Criar nova dotação
  • Filtrar por:
    • Exercício Fiscal
    • Linha Orçamentária
    • Tipo (INITIAL_ALLOCATION, SUPPLEMENTARY_CREDIT, etc.)
    • Período
  • Visualizar histórico
  • Exportar relatórios

3. Adicionar Rota

Arquivo: sigefp-frontend/src/App.tsx

{/* Budget Module */}
<Route path="/budget/fiscal-years" element={<FiscalYearsPage />} />
<Route path="/budget/lines" element={<BudgetLinesPage />} />
<Route path="/budget/entries" element={<BudgetEntriesPage />} /> {/* NOVO */}
<Route path="/budget/execution" element={<BudgetExecutionPage />} />

Prioridade 2: Médio

4. Reorganizar Menu de Tesouro

Arquivo: sigefp-frontend/src/config/navigation.ts

{
  id: 'treasury',
  name: 'Tesouro',
  description: 'Pagamentos e transferências',
  icon: Landmark,
  color: 'treasury',
  items: [
    { name: 'Contas de Caixa', href: '/treasury/cash-accounts', icon: Wallet },
    { name: 'Entradas', href: '/treasury/entries', icon: FileText }, // NOVO
    { name: 'Autorizações', href: '/treasury/authorizations', icon: ShieldCheck },
    { name: 'Ordens de Pagamento', href: '/treasury/orders', icon: FileText },
    { name: 'Lotes de Pagamento', href: '/treasury/batches', icon: Send },
    { name: 'Confirmações', href: '/treasury/confirmations', icon: CheckCircle },
    { name: 'Fluxo de Caixa', href: '/treasury/cash-flow', icon: TrendingUp }, // NOVO
    { name: 'Conciliação', href: '/treasury/reconciliation', icon: Layers },
  ],
}

🔄 Fluxo Visual Completo

Fluxo 1: Elaboração do Orçamento

┌─────────────────────────────────────────────────────────┐
│ 1. CRIAR EXERCÍCIO FISCAL                              │
│    /budget/fiscal-years                                 │
│    Status: DRAFT                                        │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 2. CRIAR LINHAS ORÇAMENTÁRIAS                          │
│    /budget/lines                                        │
│    Ex: "Aquisição de Medicamentos"                     │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 3. REGISTRAR DOTAÇÕES (LEI DO ORÇAMENTO) ⚠️ FALTANDO  │
│    /budget/entries (NOVO)                               │
│    Tipo: INITIAL_ALLOCATION                             │
│    Referência: "Lei nº 12/2024"                        │
│    Valor: 10.000.000 XOF                                │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 4. ABRIR EXERCÍCIO FISCAL                               │
│    /budget/fiscal-years                                 │
│    Status: OPEN                                         │
│    ✅ Orçamento pronto para execução                    │
└─────────────────────────────────────────────────────────┘

Fluxo 2: Execução Orçamentária

┌─────────────────────────────────────────────────────────┐
│ 1. EMPENHO (COMMITMENT)                                 │
│    Origem: RH (folha) ou Compras                        │
│    BudgetExecutionService.createCommitment()            │
│    ✅ Saldo comprometido                                │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 2. LIQUIDAÇÃO (LIQUIDATION)                             │
│    Origem: Após entrega de bem/serviço                  │
│    BudgetExecutionService.createLiquidation()           │
│    ✅ Dívida reconhecida                                │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 3. PAGAMENTO (PAYMENT)                                  │
│    Origem: Tesouro (após confirmação)                   │
│    BudgetIntegrationService.createPayment()             │
│    ✅ Pagamento efetivado                               │
└─────────────────────────────────────────────────────────┘

Fluxo 3: Processo de Pagamento (Tesouro)

┌─────────────────────────────────────────────────────────┐
│ 1. CRIAR ORDEM DE PAGAMENTO                             │
│    /treasury/orders                                     │
│    Origem: PayrollRun ou Manual                        │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 2. AUTORIZAR PAGAMENTO                                  │
│    /treasury/authorizations                             │
│    Workflow: Aprovação hierárquica                      │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 3. CRIAR LOTE DE PAGAMENTO                              │
│    /treasury/batches                                    │
│    Adicionar ordens ao lote                             │
└─────────────────┬───────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────────────┐
│ 4. CONFIRMAR PAGAMENTO                                  │
│    /treasury/confirmations                              │
│    ✅ Cria BudgetExecution (PAYMENT) automaticamente    │
└─────────────────────────────────────────────────────────┘

📊 Integrações Entre Módulos

RH → Orçamento

PayrollRun (COMPLETED)
    ↓
PaymentOrder criado
    ↓
BudgetExecution (COMMITMENT) criado
    ↓
BudgetExecution (LIQUIDATION) criado (no encerramento)

Orçamento → Tesouro

BudgetExecution (LIQUIDATION) existe
    ↓
PaymentOrder criado (com budgetLineId)
    ↓
PaymentOrder executado
    ↓
TreasuryPayment confirmado
    ↓
BudgetExecution (PAYMENT) criado automaticamente

Tesouro → Orçamento

TreasuryPayment (status: PAID)
    ↓
BudgetIntegrationService.createPaymentFromTreasury()
    ↓
BudgetExecution (PAYMENT) criado
    ↓
BudgetLine.totalPaid atualizado

Checklist de Correções

Crítico

  • Criar BudgetEntriesPage.tsx
  • Adicionar rota /budget/entries
  • Adicionar "Dotações" ao menu de navegação
  • Criar documentação do fluxo completo

Médio

  • Reorganizar menu de Tesouro (ordem lógica)
  • Adicionar "Entradas" ao menu de Tesouro
  • Adicionar "Fluxo de Caixa" ao menu de Tesouro
  • Criar guia visual do fluxo end-to-end

Baixo

  • Adicionar breadcrumbs nas páginas
  • Adicionar links de navegação entre páginas relacionadas
  • Criar dashboard com visão consolidada do fluxo

🎯 Próximos Passos

  1. Imediato: Criar BudgetEntriesPage e adicionar ao menu
  2. Curto Prazo: Reorganizar menu de Tesouro
  3. Médio Prazo: Criar guia visual interativo do fluxo
  4. Longo Prazo: Dashboard consolidado com visão end-to-end

Documento gerado em: 2025-01-XX
Versão: 1.0