Files
sigrhapf/Documents/sigfip/sigefp/ANALISE_PROFUNDA_FRONTEND_TESOURO.md
2026-05-19 11:41:28 +00:00

16 KiB

🔍 Análise Profunda do Frontend - Módulo Tesouro

Data: 2025-01-XX
Objetivo: Analisar o frontend do módulo Tesouro e identificar gaps, melhorias e funcionalidades faltantes


📊 Resumo Executivo

Categoria Status Problemas Identificados
Páginas Implementadas ⚠️ Parcial 8/10 páginas (faltam 2 críticas)
Tipos TypeScript Desatualizados Não refletem melhorias do backend
Integrações API ⚠️ Incompletas Faltam endpoints novos
Funcionalidades Backend Não expostas Plano de Tesouraria, Sweeping, Retenção Impostos
UX/UI ⚠️ Básico Falta feedback visual, validações, hierarquia CUT

🔴 Problemas Críticos Identificados

1. Plano de Tesouraria (PT) - NÃO IMPLEMENTADO 🔴 CRÍTICO

Backend: Implementado (TreasuryPlanService, TreasuryPlanRepository)
Frontend: NÃO EXISTE

Impacto:

  • Usuário não pode criar/gerenciar planos de tesouraria
  • Não há validação visual de tetos diários
  • Não há feedback quando teto é excedido
  • Funcionalidade crítica do Master Plan não acessível

O que falta:

  • Página TreasuryPlansPage.tsx
  • Componente TreasuryPlanFormModal.tsx
  • Tipos TypeScript (TreasuryPlanDTO, CreateTreasuryPlanDTO)
  • Serviço treasuryService.getTreasuryPlans(), createTreasuryPlan(), approvePlan()
  • Rota /treasury/plans em App.tsx
  • Item de menu "Planos de Tesouraria" em navigation.ts
  • Integração com PaymentAuthorizationService para mostrar validação de teto

2. Retenção de Impostos (RN03) - NÃO IMPLEMENTADO 🔴 CRÍTICO

Backend: Em implementação (Agent - Fase 2.0)
Frontend: NÃO EXISTE

Impacto:

  • Não há visualização de splits de pagamento (líquido + imposto)
  • Não há campos para retenção em PaymentOrderDTO
  • Não há feedback visual do Two-Legged Payment

O que falta:

  • Campos taxAmount, taxRetentionType, taxCollectionAccountId em PaymentOrderDTO
  • Visualização de splits em PaymentOrdersPage
  • Indicador visual de retenção aplicada
  • Detalhes de transferências (Vendor + Tax) em TreasuryPaymentsPage

3. Hierarquia CUT - NÃO IMPLEMENTADO 🔴 CRÍTICO

Backend: Campos adicionados (Agent - Fase 1.0)
Frontend: NÃO EXISTE

Impacto:

  • Não é possível configurar hierarquia de contas
  • Não há visualização de contas filhas
  • Não há consolidação visual de saldos da CUT
  • Não há seleção de conta pai ao criar conta

O que falta:

  • Campos parentId, category, iban, swiftCode, overdraftLimit em CashAccountDTO
  • Campo parentId em CreateCashAccountDTO
  • Select de conta pai em CashAccountFormModal
  • Select de categoria (CENTRAL_CUT, SUB_ACCOUNT, TRANSIT, REVENUE)
  • Campos IBAN, SWIFT em CashAccountFormModal
  • Visualização hierárquica em CashAccountsPage (árvore)
  • Cálculo e exibição de saldo consolidado da CUT

4. Sweeping Service - NÃO IMPLEMENTADO 🟡 ALTA

Backend: Implementado (SweepingService com job agendado)
Frontend: NÃO EXISTE

Impacto:

  • Não há interface para nivelamento manual
  • Não há visualização de histórico de nivelamentos
  • Não há alertas de nivelamento pendente
  • Não há dashboard de contas de trânsito

O que falta:

  • Página ou seção para nivelamento manual
  • Botão "Nivelar Conta" em CashAccountsPage (para contas TRANSIT)
  • Histórico de nivelamentos
  • Alertas visuais de contas com saldo > 0

🟡 Problemas de Média Prioridade

5. Tipos TypeScript Desatualizados

Arquivo: sigefp-frontend/src/types/treasury.ts

Problemas:

  • CashAccountDTO não tem: parentId, category, iban, swiftCode, overdraftLimit
  • PaymentOrderDTO não tem: taxAmount, taxRetentionType, taxCollectionAccountId
  • Não existe TreasuryPlanDTO e CreateTreasuryPlanDTO
  • Não existe PaymentSplitDTO (para Two-Legged Payment)

Impacto:

  • TypeScript não valida campos novos
  • Autocomplete não funciona
  • Compilação pode falhar quando backend retornar novos campos

6. Serviços API Incompletos

Arquivo: sigefp-frontend/src/services/treasuryService.ts

Faltam métodos:

  • getTreasuryPlans() - Listar planos
  • getTreasuryPlanById() - Buscar plano
  • createTreasuryPlan() - Criar plano
  • approveTreasuryPlan() - Aprovar plano
  • updateCashAccount() - Atualizar conta (com novos campos)
  • sweepAccountManually() - Nivelamento manual
  • getCUTConsolidatedBalance() - Saldo consolidado CUT

Impacto:

  • Frontend não consegue chamar endpoints novos
  • Funcionalidades do backend não acessíveis

7. Páginas Existentes - Melhorias Necessárias

7.1 CashAccountsPage.tsx

Problemas:

  • Não mostra hierarquia (contas filhas)
  • Não mostra categoria (CENTRAL_CUT, TRANSIT, etc.)
  • Não mostra IBAN, SWIFT
  • Não permite editar conta (comentário: "Update not implemented yet")
  • Não mostra limite de descoberto
  • Não permite selecionar conta pai ao criar

Melhorias sugeridas:

  • Adicionar coluna "Categoria"
  • Adicionar coluna "Conta Pai" (com link)
  • Adicionar visualização hierárquica (árvore)
  • Adicionar botão "Nivelar" para contas TRANSIT
  • Implementar edição de conta

7.2 CashAccountFormModal.tsx

Problemas:

  • Não tem campo parentId (conta pai)
  • Não tem campo category (categoria)
  • Não tem campo iban (IBAN)
  • Não tem campo swiftCode (SWIFT)
  • Não tem campo overdraftLimit (limite descoberto)
  • Validação não inclui novos campos

Melhorias sugeridas:

  • Adicionar Select de conta pai (filtrado por categoria CUT_PRINCIPAL)
  • Adicionar Select de categoria
  • Adicionar Input para IBAN (com validação formato)
  • Adicionar Input para SWIFT (com validação formato)
  • Adicionar Input numérico para limite de descoberto

7.3 PaymentOrdersPage.tsx

Problemas:

  • Não mostra taxAmount (retenção de impostos)
  • Não mostra splits de pagamento (Two-Legged)
  • Não mostra link para BudgetExecution relacionado
  • Não mostra validação de teto do Plano de Tesouraria
  • Botão "Visualizar detalhes" não implementado (TODO)

Melhorias sugeridas:

  • Adicionar coluna "Imposto Retido" (quando aplicável)
  • Adicionar coluna "Valor Líquido" destacada
  • Adicionar badge se excedeu teto diário
  • Implementar modal de detalhes com splits
  • Adicionar link para execução orçamentária

7.4 PaymentAuthorizationsPage.tsx

Problemas:

  • Não mostra validação de teto do Plano de Tesouraria
  • Não mostra motivo de rejeição se teto excedido
  • Não mostra valor do teto disponível
  • Não integra com TreasuryPlanService.validateAvailability()

Melhorias sugeridas:

  • Adicionar validação antes de aprovar (chamar API)
  • Mostrar alerta se teto excedido
  • Mostrar teto disponível no card de autorização
  • Adicionar motivo de rejeição "CEILING_EXCEEDED"

8. Menu de Navegação Incompleto

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

Problemas:

  • Falta item "Planos de Tesouraria" (/treasury/plans)
  • Falta item "Entradas" (já existe rota /treasury/entries mas não está no menu)
  • Falta item "Fluxo de Caixa" (já existe rota /treasury/cash-flow mas não está no menu)
  • Ordem dos itens não reflete fluxo lógico

Menu atual:

items: [
  { name: 'Contas de Caixa', href: '/treasury/cash-accounts', icon: Wallet },
  { name: 'Autorizações', href: '/treasury/authorizations', icon: ShieldCheck },
  { name: 'Lotes de Pagamento', href: '/treasury/batches', icon: Send },
  { name: 'Ordens de Pagamento', href: '/treasury/orders', icon: FileText },
  { name: 'Conciliação', href: '/treasury/reconciliation', icon: Layers },
  { name: 'Confirmações', href: '/treasury/confirmations', icon: CheckCircle },
]

Menu sugerido (fluxo lógico):

items: [
  { name: 'Planos de Tesouraria', href: '/treasury/plans', icon: Calendar }, // NOVO
  { name: 'Contas de Caixa', href: '/treasury/cash-accounts', icon: Wallet },
  { name: 'Entradas', href: '/treasury/entries', icon: FileText }, // ADICIONAR
  { name: 'Autorizações', href: '/treasury/authorizations', icon: ShieldCheck },
  { name: 'Lotes de Pagamento', href: '/treasury/batches', icon: Send },
  { name: 'Ordens de Pagamento', href: '/treasury/orders', icon: FileText },
  { name: 'Confirmações', href: '/treasury/confirmations', icon: CheckCircle },
  { name: 'Fluxo de Caixa', href: '/treasury/cash-flow', icon: TrendingUp }, // ADICIONAR
  { name: 'Conciliação', href: '/treasury/reconciliation', icon: Layers },
]

9. Rotas em App.tsx - Incompletas

Arquivo: sigefp-frontend/src/App.tsx

Problemas:

  • Falta rota /treasury/plans para Planos de Tesouraria
  • Rotas existentes: /treasury/entries, /treasury/cash-flow (mas não estão no menu)

Rotas atuais:

<Route path="/treasury/cash-accounts" element={<CashAccountsPage />} />
<Route path="/treasury/entries" element={<TreasuryEntriesPage />} />
<Route path="/treasury/authorizations" element={<PaymentAuthorizationsPage />} />
<Route path="/treasury/cash-flow" element={<CashFlowPage />} />
<Route path="/treasury/reconciliation" element={<BankReconciliationPage />} />
<Route path="/treasury/batches" element={<PaymentBatchesPage />} />
<Route path="/treasury/orders" element={<PaymentOrdersPage />} />
<Route path="/treasury/confirmations" element={<TreasuryPaymentsPage />} />

Falta:

<Route path="/treasury/plans" element={<TreasuryPlansPage />} /> // NOVO

🟢 Problemas de Baixa Prioridade (Melhorias UX)

10. Feedback Visual e Validações

Problemas:

  • ⚠️ Falta feedback quando teto de tesouraria é excedido
  • ⚠️ Falta indicador visual de hierarquia de contas
  • ⚠️ Falta validação de formato IBAN/SWIFT no frontend
  • ⚠️ Falta tooltip explicando categorias de conta
  • ⚠️ Falta loading states em algumas operações

11. Dashboard e KPIs

Problemas:

  • ⚠️ Dashboard não mostra KPIs de Tesouro
  • ⚠️ Não há visão consolidada de saldo CUT
  • ⚠️ Não há alertas de nivelamento pendente
  • ⚠️ Não há gráficos de fluxo de caixa

📋 Checklist de Implementação

Prioridade 1: Crítico (Funcionalidades Backend Não Expostas)

  • Criar TreasuryPlansPage.tsx

    • Listar planos (DRAFT, APPROVED, CLOSED)
    • Criar novo plano
    • Aprovar plano
    • Visualizar teto vs executado
    • Gráfico de execução
  • Atualizar CashAccountDTO e CreateCashAccountDTO

    • Adicionar: parentId, category, iban, swiftCode, overdraftLimit
  • Atualizar CashAccountFormModal.tsx

    • Adicionar campos novos
    • Select de conta pai
    • Select de categoria
    • Validação IBAN/SWIFT
  • Atualizar CashAccountsPage.tsx

    • Mostrar hierarquia (árvore)
    • Mostrar categoria
    • Botão "Nivelar" para contas TRANSIT
    • Implementar edição
  • Atualizar PaymentOrderDTO

    • Adicionar: taxAmount, taxRetentionType, taxCollectionAccountId
  • Atualizar PaymentOrdersPage.tsx

    • Mostrar retenção de impostos
    • Mostrar splits (Two-Legged Payment)
    • Implementar modal de detalhes
  • Atualizar PaymentAuthorizationsPage.tsx

    • Integrar validação de teto
    • Mostrar alerta se teto excedido
    • Mostrar teto disponível
  • Adicionar métodos em treasuryService.ts

    • Métodos para TreasuryPlan
    • Método para nivelamento manual
    • Método para saldo consolidado CUT
  • Atualizar navigation.ts

    • Adicionar "Planos de Tesouraria"
    • Adicionar "Entradas" e "Fluxo de Caixa" ao menu
    • Reorganizar ordem lógica
  • Atualizar App.tsx

    • Adicionar rota /treasury/plans

Prioridade 2: Alta (Melhorias UX)

  • Visualização hierárquica de contas (árvore)
  • Dashboard de KPIs de Tesouro
  • Alertas de nivelamento pendente
  • Validação de formato IBAN/SWIFT
  • Tooltips explicativos

Prioridade 3: Média (Otimizações)

  • Loading states consistentes
  • Error handling melhorado
  • Cache de dados frequentes
  • Otimização de queries

📊 Matriz de Gaps Backend vs Frontend

Funcionalidade Backend Status Backend Status Frontend Gap
TreasuryPlan (PT) Implementado Não existe 🔴 Crítico
Retenção Impostos (RN03) Em implementação Não existe 🔴 Crítico
Hierarquia CUT Campos adicionados Não existe 🔴 Crítico
Sweeping Service Implementado Não existe 🟡 Alta
Campos novos CashAccount Implementado Não existe 🔴 Crítico
Validação teto diário Implementado Não integrado 🔴 Crítico
TreasuryEntry Implementado Existe OK
CashFlow Implementado Existe OK
BankReconciliation Implementado Existe OK
PaymentAuthorization Implementado Existe ⚠️ Melhorias

🎯 Recomendações Prioritárias

1. Implementar Plano de Tesouraria (URGENTE)

Motivo: Funcionalidade crítica do Master Plan, backend já implementado, usuário não consegue usar.

Ações:

  1. Criar tipos TypeScript
  2. Criar serviço API
  3. Criar página e componentes
  4. Adicionar ao menu e rotas
  5. Integrar validação em PaymentAuthorizationsPage

2. Atualizar CashAccount (URGENTE)

Motivo: Backend tem novos campos, frontend não consegue criar/editar contas com hierarquia CUT.

Ações:

  1. Atualizar tipos TypeScript
  2. Atualizar formulário com novos campos
  3. Atualizar página para mostrar hierarquia
  4. Implementar edição

3. Preparar para Retenção de Impostos

Motivo: Backend em implementação, frontend precisa estar pronto.

Ações:

  1. Atualizar PaymentOrderDTO com campos de retenção
  2. Preparar UI para mostrar splits
  3. Adicionar visualização de Two-Legged Payment

📈 Estatísticas

Métrica Valor
Páginas Implementadas 8/10 (80%)
Páginas Faltantes Críticas 1 (TreasuryPlansPage)
Tipos TypeScript Atualizados 0/5 (0%)
Serviços API Completos 60%
Integrações Backend 40%
Gap Crítico 🔴 Alto

🔍 Análise de Qualidade do Código

Pontos Positivos

  1. Estrutura Organizada: Páginas bem separadas por funcionalidade
  2. Componentes Reutilizáveis: Uso de ServerDataTable, PageHeader, StatusBadge
  3. TypeScript: Tipos definidos (mas desatualizados)
  4. Error Handling: Uso de toast para feedback
  5. Loading States: Implementados na maioria das páginas

Pontos de Melhoria ⚠️

  1. Validações: Falta validação de formato (IBAN, SWIFT)
  2. Error Messages: Mensagens genéricas, falta contexto
  3. TODO Comments: Vários TODOs não implementados
  4. Consistência: Algumas páginas usam padrões diferentes
  5. Acessibilidade: Falta labels ARIA, keyboard navigation

🎨 Análise UX/UI

Pontos Positivos

  1. Design Consistente: Uso de Shadcn/ui components
  2. Feedback Visual: Status badges, ícones
  3. Navegação: Menu lateral organizado

Pontos de Melhoria ⚠️

  1. Hierarquia Visual: Falta mostrar relacionamentos (conta pai/filha)
  2. Feedback de Validação: Falta mostrar quando teto é excedido
  3. Workflow Visual: Falta indicar fluxo completo (Plano → Autorização → Pagamento)
  4. Dashboard: Falta visão consolidada de Tesouro
  5. Alertas: Falta sistema de alertas (nivelamento pendente, teto excedido)

📝 Conclusão

O frontend do módulo Tesouro está parcialmente implementado com gaps críticos:

  1. 🔴 Crítico: Plano de Tesouraria não existe no frontend (backend implementado)
  2. 🔴 Crítico: Hierarquia CUT não implementada (campos não expostos)
  3. 🔴 Crítico: Retenção de impostos não preparada (backend em implementação)
  4. 🟡 Alta: Sweeping não tem interface manual
  5. 🟡 Média: Tipos TypeScript desatualizados

Recomendação: Priorizar implementação do Plano de Tesouraria e atualização dos tipos/campos de CashAccount, pois são funcionalidades críticas já implementadas no backend.


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