Lançamentos Financeiros
Os lançamentos financeiros do sistemas serão representados de forma simples e "genérica" pelo StatementVO.
O StatementVO terá apenas alguns atributos para informar o básico de um lançamento:
- Competência do Lançamento - Define a competência do lançamentos para efeitos contábeis/fiscais
- Data de Pagamento - Indica a data de pagamento, ou null caso não esteja pago.
- Operação - Indica se é uma Receita (crédito) ou Despesa (Débito) do ponto de vista da empresa.
- Valor - Define o valor do lançamento.
- Categoria - Descrita mais abaixo, define a categoria do lançamento.
O objeto StatementVO deve ter a referência para o objeto que o criou e responsável por gerencia-lo, e que terá as demais informações referente a data de vencimento, contra-parte para da movimentação financeira, forma de pagamento, etc. Bem como origem dos rendimentos, conta/caixa em que o movimento foi realizado, etc.
Categoria Financeira
A categoria financeira tem a função de agrupar e organizar os lançamentos financeiros realizados na empresa. Por exemplo, podemos ter uma categoria chamada "Compras de Matéria Prima" e "Compras de Mercadoria para Revenda" para agrupar todos os lançamentos feitos para ambas as funções.
Poderíamos também ter as categorias "Receitas do PDV" e "Receitas de Convênios com Empresas" para agrupar os lançamentos dos recebimentos de vendas no caixa e recebimentos de convênios com outras empresas, respectivamente.
Ou ainda outras categorias para lançamentos como "Seguro", "Contador", "Salários", "ICMS", "IOF", "Descontos de Títulos", "Multas e Juros de Pagamentos", etc.
Uma vez que cada lançamento vá para uma categoria específica, conseguiremos tratar os totais posteriormente para gerar relatórios de fluxo de caixa, DRE, Balanços, etc.
Geração dos Lançamentos Financeiros
Esses lançamentos financeiros deveram ser criados e gerados pelas partes do sistema que gerenciam qualquer valor de entradas e/ou saídas. Sendo que o StatementVO deve ter sempre referência para o objeto que gerou esse StatementVO. Por exemplo, o Contas à Pagar e Receber gerencia lançamentos financeiros da empresa, cada conta deverá criar um ou mais statementVO para representar o valor pago/recebido no sistema.
Note que um objeto de "Contas à Pagar/Receber", por exemplo, pode gerar mais de um StatementVO. Isso porque em um único pagamento podemos ter mais de um lançamento de valores. Por exemplo, o pagamento de um boleto em atraso com multa e juros terá um único valor pago, mas o lançamento financeiro poderá ser separado: "Compra de Mercadorias para Revenda" contendo o valor inicial do boleto e "Multas e Juros de Pagamentos de Títulos" com o valor da multa e juros.