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

456 lines
16 KiB
Markdown

# 🔄 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 */}
<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`
```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