📋 Regras de Negócio - ecosif-moviments¶
📋 Visão Geral¶
Este documento descreve as principais regras de negócio implementadas no serviço ecosif-moviments.
💰 Regras Contábeis¶
Partidas Dobradas¶
Regra: Cada documento deve ter soma de débitos igual à soma de créditos.
Validação: Automática ao criar/editar lançamentos.
Exemplo:
Débito: 1000.00
Crédito: 1000.00
✅ Válido (soma = 0)
Débito: 1000.00
Crédito: 500.00
❌ Inválido (soma ≠ 0)
Períodos Contábeis¶
Regra: Só é possível criar lançamentos em períodos abertos e não consolidados.
Validações: - Período deve estar no calendário - Período não pode estar consolidado - Período não pode estar fechado
Ordem de Consolidação¶
Regra: Só é possível consolidar um período se todos os anteriores estiverem consolidados.
Validação: Verifica períodos anteriores antes de consolidar.
📝 Regras de Lançamentos¶
Valores¶
- Regra: Valores devem ser positivos
- Precisão: 21 dígitos, 2 casas decimais
- Validação: JSR-303 + validação de negócio
Contas Contábeis¶
- Regra: Conta deve existir e estar ativa
- Validação: Verifica status da conta
- Regra: Conta deve estar no plano de contas da empresa
Dia de Referência¶
- Regra: Dia deve estar entre 01 e 31
- Validação: Valida formato e range
- Regra: Dia deve ser válido para o mês (ex: não pode ser 31/02)
🔄 Regras de Importação¶
Formato CSV¶
- Regra: Deve ter cabeçalho correto
- Validação: Verifica colunas obrigatórias
- Regra: Valores numéricos devem estar em formato válido
Formato IPL¶
- Regra: Linha deve ter exatamente 156 caracteres
- Regra: Caractere 17 deve ser 1 (crédito) ou 2 (débito)
- Regra: Caractere 18 deve ser espaço
Processamento¶
- Regra: Arquivos de erro são salvos em S3
- Regra: Arquivos processados são movidos para pasta imported/
💼 Regras de Consolidação¶
Pré-requisitos¶
- Todos os períodos anteriores devem estar consolidados
- Período deve estar aberto no calendário
- Deve ter lançamentos para consolidar
Processamento¶
- Regra: Consolidação é assíncrona
- Regra: Atualiza saldos de todas as contas
- Regra: Marca período como consolidado no calendário
💰 Regras de Cotas¶
Pré-requisitos¶
- Mês deve estar consolidado
- Deve ter dia livre no calendário
- Deve ter contas PL configuradas
- Patrimônio líquido deve ser positivo
Cálculo¶
- Regra: Valor da cota = Patrimônio Líquido / Número de Cotas
- Regra: Cota só é salva se confirmada (confirmed=true)
- Regra: Cota calculada é salva em QuotaDetails
🗑️ Regras de Purging¶
Enviar para Histórico (doSend=true)¶
- Regra: Período final deve ser >= período base
- Regra: Todos os períodos devem estar consolidados
- Regra: Dados são movidos para tabelas de histórico
- Regra: Dump é salvo em S3
Restaurar do Histórico (doSend=false)¶
- Regra: Deve existir histórico para restaurar
- Regra: Período final deve ser > período base
- Regra: Dados são restaurados das tabelas de histórico
⚠️ Validações Implementadas¶
- ✅ Partidas dobradas
- ✅ Períodos abertos
- ✅ Contas contábeis válidas
- ✅ Valores positivos
- ✅ Dias válidos
- ✅ Ordem de consolidação
- ✅ Formato de arquivos
- ✅ Pré-requisitos de operações
Última Atualização: 2025-11-27