# 🔄 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` ```typescript { 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` ```typescript {/* Budget Module */} } /> } /> } /> {/* NOVO */} } /> ``` --- ### Prioridade 2: Médio #### 4. Reorganizar Menu de Tesouro **Arquivo:** `sigefp-frontend/src/config/navigation.ts` ```typescript { 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