# 📊 Análise Comparativa: Especificação vs Implementação - Módulo Tesouro **Data:** 2025-01-XX **Objetivo:** Comparar especificação de requisitos com implementação atual e identificar gaps --- ## 📋 Resumo Executivo | Requisito | Status | Prioridade | Complexidade | |-----------|--------|------------|--------------| | Hierarquia CUT | ❌ Não implementado | 🔴 Crítico | Alta | | Atributos de Conta (IBAN, SWIFT, etc.) | ❌ Parcial | 🔴 Crítico | Baixa | | Plano de Tesouraria (PT) | ❌ Não implementado | 🔴 Crítico | Média | | Retenção de Impostos | ❌ Não implementado | 🟡 Alta | Média | | Nivelamento Automático | ❌ Não implementado | 🟡 Alta | Alta | | Importação MT940/CAMT.053 | ⚠️ Parcial | 🟡 Média | Média | | Geração XML ISO 20022 | ❌ Não implementado | 🟡 Média | Alta | | Dashboard KPIs | ❌ Não implementado | 🟢 Baixa | Baixa | --- ## 🔍 Análise Detalhada ### 1. Arquitetura de Dados: Estrutura da CUT #### ✅ O que temos: - `CashAccount` com campos básicos (code, name, type, accountNumber, branchCode) - Suporte a `orgUnitId` (vínculo com unidade orgânica) - Saldos (`currentBalance`, `availableBalance`) #### ❌ O que falta (CRÍTICO): **1.1 Hierarquia Virtual de Contas** - ❌ Campo `parentAccountId` para hierarquia - ❌ Tipo de conta: CUT Principal (BCEAO), Correspondente, Trânsito - ❌ Agregação automática de saldos hierárquicos **1.2 Atributos Obrigatórios** - ❌ `iban` (IBAN da conta) - ❌ `swiftCode` (Código SWIFT) - ❌ `accountingCode` (Código Contabilístico - Classe 5) - ❌ `accountType` (Receita/Despesa/Mista) - ❌ `overdraftLimit` (Limite de descoberto) **Impacto:** Sem hierarquia, não é possível consolidar saldos da CUT. Sem atributos, não há integração com sistemas bancários. --- ### 2. Processos Core #### 2.1 Gestão do Plano de Tesouraria (PT) **Especificação:** - Criar planos mensais e semanais - Previsões de receita + cronograma de despesas - Validar se total de ordens do dia não excede teto aprovado **Status Atual:** - ❌ **Não implementado** - ❌ Não há entidade `TreasuryPlan` - ❌ Não há validação de tetos diários **Impacto:** Sem planejamento, não há controle preventivo de liquidez. --- #### 2.2 Execução de Pagamentos **Especificação:** - Gatilho: Despesa "Liquidada e Pronta a Pagar" - Verificação de liquidez (subconta + CUT global) - Transferência Eletrónica (STAR/SICA) - XML ISO 20022 - Pagamentos de Massa (folha de salário) - Assinatura Digital (múltiplos níveis) **Status Atual:** - ✅ Verificação de liquidez básica (implementado) - ✅ Pagamentos de massa (via PayrollRun) - ✅ Aprovação hierárquica (implementado) - ❌ Geração XML ISO 20022 (não implementado) - ❌ Assinatura digital com certificados (não implementado) **Impacto:** Sem XML ISO 20022, não há integração com STAR/SICA do BCEAO. --- #### 2.3 Arrecadação e Nivelamento **Especificação:** - Integração com SYDONIA (Alfândegas) e CONTRIB (Impostos) - Monitorização de saldos em bancos comerciais - Regra de Ouro UEMOA: Alerta se saldo em Conta de Trânsito > 0 no fim do dia **Status Atual:** - ❌ **Não implementado** - ❌ Não há integração com sistemas externos - ❌ Não há processo de nivelamento automático - ❌ Não há alertas de nivelamento pendente **Impacto:** Sem nivelamento, não há conformidade com Regra de Ouro UEMOA. --- ### 3. Requisitos Técnicos #### 3.1 Conciliação Bancária **Especificação:** - Importação automática MT940 ou CAMT.053 - Matching automático (valor, data, referência) - Conciliação manual de exceções - Geração automática de lançamentos contabilísticos **Status Atual:** - ✅ Estrutura básica de conciliação (implementado) - ✅ Matching básico (implementado) - ⚠️ Importação de extratos (parcial - apenas manual) - ❌ Importação automática MT940/CAMT.053 (não implementado) - ❌ Geração automática de lançamentos contabilísticos (não implementado) **Impacto:** Sem importação automática, processo é manual e propenso a erros. --- #### 3.2 Integração com Contabilidade **Especificação:** - Cada movimento gera lançamento automático - Débito: Classe 6/2 (Despesa) - Crédito: Classe 5 (Tesouraria) **Status Atual:** - ❌ **Não implementado** - ❌ Não há módulo de Contabilidade - ❌ Não há geração automática de lançamentos **Impacto:** Sem integração contabilística, não há conformidade com Diretiva UEMOA. --- ### 4. Regras de Negócio #### RN01 - Unidade de Caixa **Especificação:** Nenhuma conta bancária do Estado pode existir fora da visibilidade do módulo Tesouro. **Status Atual:** - ⚠️ **Parcial** - ✅ Contas registradas no sistema - ❌ Não há validação que todas as contas do Estado estão registradas - ❌ Não há processo de auditoria **Impacto:** Risco de contas não registradas. --- #### RN02 - Validação de Saldo **Especificação:** Impedir ordens se não houver saldo suficiente na CUT, exceto com autorização de "Adiantamento do Banco Central". **Status Atual:** - ✅ Validação básica de saldo (implementado) - ❌ Não considera hierarquia CUT (soma de subcontas) - ❌ Não há tratamento de "Adiantamento do Banco Central" **Impacto:** Validação incompleta sem considerar CUT global. --- #### RN03 - Retenção de Impostos **Especificação:** Ao pagar fornecedor, reter automaticamente IVA/Imposto Industrial, gerando dois fluxos (líquido + imposto). **Status Atual:** - ❌ **Não implementado** - ❌ Não há cálculo de retenção - ❌ Não há divisão de fluxos (líquido + imposto) **Impacto:** Não há conformidade fiscal automática. --- ### 5. Segurança **Especificação:** Autenticação Multifator (MFA) para todas as movimentações financeiras. **Status Atual:** - ❌ **Não implementado** - ❌ Não há MFA - ✅ Aprovação hierárquica (implementado) **Impacto:** Risco de segurança sem MFA. --- ### 6. Dashboard KPIs **Especificação:** - Posição Global de Caixa (BCEAO + Bancos Comerciais) - Pipeline de Pagamentos (faturas liquidadas aguardando) - Rácio de Cobertura (Liquidez / Despesas Semanais) - Mapa de Nivelamento (bancos com saldo não transferido) **Status Atual:** - ❌ **Não implementado** - ❌ Não há dashboard - ❌ Não há KPIs calculados **Impacto:** Falta visibilidade gerencial. --- ## 🎯 Plano de Implementação ### Fase 1: Crítico (Prioridade Alta) 1. **Hierarquia CUT** - Adicionar `parentAccountId` em `CashAccount` - Adicionar `accountCategory` (CUT_PRINCIPAL, CORRESPONDENT, TRANSIT) - Implementar agregação de saldos hierárquicos 2. **Atributos de Conta** - Adicionar `iban`, `swiftCode`, `accountingCode`, `accountType`, `overdraftLimit` - Atualizar DTOs e validações 3. **Plano de Tesouraria (PT)** - Criar entidade `TreasuryPlan` - Criar `TreasuryPlanService` - Implementar validação de tetos diários em `PaymentOrderService` ### Fase 2: Alta Prioridade 4. **Retenção de Impostos** - Adicionar campos de retenção em `PaymentOrder` - Implementar cálculo automático - Criar dois fluxos (líquido + imposto) 5. **Nivelamento Automático** - Criar processo de nivelamento - Implementar alertas de nivelamento pendente - Agendar job diário 6. **Importação MT940/CAMT.053** - Criar parser para MT940 - Criar parser para CAMT.053 - Integrar com `BankReconciliationService` ### Fase 3: Média Prioridade 7. **Geração XML ISO 20022** - Criar gerador de XML ISO 20022 - Integrar com STAR/SICA - Adicionar endpoint para download 8. **Dashboard KPIs** - Criar `TreasuryDashboardService` - Implementar cálculos de KPIs - Criar frontend do dashboard 9. **Integração Contabilística** - Criar módulo de Contabilidade (ou integração) - Implementar geração automática de lançamentos - Mapear para Plano de Contas UEMOA --- ## 📊 Matriz de Impacto vs Esforço | Requisito | Impacto | Esforço | Prioridade | |-----------|---------|---------|------------| | Hierarquia CUT | 🔴 Alto | 🔴 Alto | 1 | | Atributos Conta | 🔴 Alto | 🟢 Baixo | 1 | | Plano Tesouraria | 🔴 Alto | 🟡 Médio | 1 | | Retenção Impostos | 🟡 Médio | 🟡 Médio | 2 | | Nivelamento | 🟡 Médio | 🔴 Alto | 2 | | Importação MT940 | 🟡 Médio | 🟡 Médio | 2 | | XML ISO 20022 | 🟡 Médio | 🔴 Alto | 3 | | Dashboard KPIs | 🟢 Baixo | 🟢 Baixo | 3 | | Integração Contábil | 🔴 Alto | 🔴 Alto | 3 | --- **Documento gerado em:** 2025-01-XX **Versão:** 1.0