Casos de Uso - ecosif-masterdata
Visão Geral
Este documento descreve os principais casos de uso do sistema ecosif-masterdata.
CU-001: Cadastrar Empresa
Descrição
Um usuário cadastra uma nova empresa no sistema.
Ator Principal
Administrador ou usuário com permissão
Pré-condições
- Usuário está autenticado
- Usuário tem permissão para cadastrar empresas
- CNPJ é válido e não existe no sistema
Fluxo Principal
-
Usuário envia requisição
POST /companycom:json { "name": "Minha Empresa LTDA", "cnpj": "12345678000190", "zipCode": "01310100" } -
Sistema valida dados de entrada
-
Sistema valida CNPJ (formato e dígitos verificadores)
-
Sistema verifica se CNPJ já existe: - Se existe: Retorna 409 Conflict
-
Sistema cria empresa no banco de dados
-
Sistema retorna empresa criada com ID gerado
Pós-condições
- Empresa cadastrada no sistema
- Empresa pode receber filiais
- Empresa pode ter plano de contas associado
CU-002: Cadastrar Filial
Descrição
Um usuário cadastra uma nova filial para uma empresa existente.
Ator Principal
Administrador ou usuário com permissão
Pré-condições
- Empresa existe no sistema
- Código de filial não existe para a empresa
- Usuário está autenticado
Fluxo Principal
-
Usuário envia requisição
POST /branchcom:json { "company": "01", "branch": "01", "name": "Filial São Paulo" } -
Sistema valida que empresa existe
-
Sistema verifica se código de filial já existe: - Se existe: Retorna 409 Conflict
-
Sistema cria filial no banco de dados
-
Sistema cria registros necessários automaticamente: - CompanyOptions (ct_controle) - QuotaCalculationConfiguration (se aplicável) - FundSettings (se aplicável)
-
Sistema retorna filial criada
Pós-condições
- Filial cadastrada
- Configurações padrão criadas
- Filial pode receber lançamentos contábeis
CU-003: Criar Plano de Contas
Descrição
Um usuário cria uma estrutura de plano de contas hierárquica.
Ator Principal
Contador ou administrador contábil
Pré-condições
- Empresa/filial existe
- Usuário está autenticado
Fluxo Principal
-
Usuário envia requisição
POST /chartOfAccountscom:json { "plan": "10", "cdAccounting": "1.1.1", "cdReduced": "001", "description": "Caixa", "level": 3 } -
Sistema valida que código não existe no plano
-
Sistema extrai conta pai do código ("1.1")
-
Sistema verifica se conta pai existe: - Se não existe: Retorna 406 Not Acceptable
-
Sistema verifica se conta pai já tem filhos: - Se tem e não confirmado: Retorna 406 Not Acceptable
-
Sistema cria conta no banco de dados
-
Sistema atualiza número de filhos da conta pai
-
Sistema retorna conta criada
Pós-condições
- Conta adicionada ao plano de contas
- Hierarquia mantida corretamente
- Conta pode ser usada em lançamentos
CU-004: Registrar Lançamento Contábil
Descrição
Um usuário registra um lançamento contábil em um documento.
Ator Principal
Contador ou usuário autorizado
Pré-condições
- Documento existe e está aberto
- Conta existe no plano de contas
- Dia está disponível no calendário
- Usuário está autenticado
Fluxo Principal
-
Usuário envia requisição
POST /entrycom:json { "documentId": 1, "account": "1.1.1", "history": "10", "debit": 1000.00, "credit": 0.00 } -
Sistema valida que documento existe
-
Sistema valida que dia está disponível no calendário
-
Sistema valida que conta existe no plano de contas
-
Sistema cria lançamento no banco de dados
-
Sistema retorna lançamento criado
Regras de Negócio
- Partidas Dobradas: Soma de débitos = soma de créditos no documento
- Validação de Conta: Conta deve existir e estar ativa
- Validação de Dia: Dia deve estar disponível para lançamentos
Pós-condições
- Lançamento registrado
- Saldos podem ser calculados
- Documento pode ser fechado quando completo
CU-005: Executar Consolidação Contábil
Descrição
Um usuário executa o processo de consolidação contábil para um período.
Ator Principal
Administrador contábil
Pré-condições
- Período está fechado
- Existem lançamentos no período
- Usuário está autenticado
Fluxo Principal
-
Usuário envia requisição
POST /runconsolidationcom:json { "company": "01", "branch": "01", "month": "12", "year": "2023" } -
Sistema valida que período está fechado
-
Sistema inicia processamento assíncrono
-
Sistema retorna resposta imediata:
json { "success": true, "message": "Consolidação iniciada" } -
Sistema processa em background: - Busca todos os lançamentos do período - Calcula saldos por conta - Atualiza saldos diários - Atualiza saldos mensais - Atualiza saldos consolidados
Fluxos Alternativos
FA-001: Período Não Fechado
- Ação: Período não está fechado
- Resultado: Retorna 400 Bad Request com mensagem apropriada
Pós-condições
- Saldos calculados e atualizados
- Dados prontos para relatórios
- Consolidação disponível para consultas
CU-006: Consultar Empresas do Usuário
Descrição
Um usuário consulta empresas às quais tem acesso.
Ator Principal
Usuário autenticado
Pré-condições
- Usuário está autenticado
- Token JWT válido
Fluxo Principal
-
Usuário envia requisição
GET /usercompaniescom token JWT -
Sistema valida token JWT
-
Sistema extrai username do token
-
Sistema busca associações usuário-empresa-filial
-
Sistema busca empresas associadas
-
Sistema retorna lista de empresas:
json [ { "id": 1, "name": "Empresa A", "cnpj": "12345678000190" }, { "id": 2, "name": "Empresa B", "cnpj": "98765432000110" } ]
Pós-condições
- Usuário visualiza empresas disponíveis
- Usuário pode selecionar empresa para operar
Resumo dos Casos de Uso
| ID | Nome | Tipo | Prioridade |
|---|---|---|---|
| CU-001 | Cadastrar Empresa | Primário | Alta |
| CU-002 | Cadastrar Filial | Primário | Alta |
| CU-003 | Criar Plano de Contas | Primário | Alta |
| CU-004 | Registrar Lançamento | Primário | Alta |
| CU-005 | Executar Consolidação | Primário | Alta |
| CU-006 | Consultar Empresas do Usuário | Primário | Média |