16 KiB
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:
- Iniciar o processo de elaboração de orçamento
- Entender como a execução se conecta com o Tesouro
- 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
- Imediato: Criar BudgetEntriesPage e adicionar ao menu
- Curto Prazo: Reorganizar menu de Tesouro
- Médio Prazo: Criar guia visual interativo do fluxo
- Longo Prazo: Dashboard consolidado com visão end-to-end
Documento gerado em: 2025-01-XX
Versão: 1.0