CashFlow

De BIS Wiki
Ir para navegação Ir para pesquisar

Módulo responsável por gerenciar o sistema fluxo financeiro do caixa da empresa.

Requisitos

Lançamentos Financeiros

Os lançamentos financeiros são usados para registrar as movimentações financeiras das empresa. Qualquer saída ou entrada de dinheiro deve ter um lançamento correspondente. Um lançamento financeiro pode representar tanto uma conta já paga/recebida quanto um lançamento futuro futura de recebimento/pagamento.


Os lançamentos devem possuir as seguintes referências:

  • Empresa: Indicando à qual empresa esse lançamento pertente. [Obrigatório]
  • NFe: Indicando o documento fiscal associado a esse lançamento, quando gerado por documento fiscal.
  • Categoria: Categoria de pagamentos, para sumarização dos pagamentos.
  • Beneficiário/Pagador: Associa uma Pessoa como Beneficiário ou Pagador (dependendo do Tipo de Lançamento definido) ao lançamento. Não deve ser obrigatório, mas permitir a associação para facilitar a busca dos pagamentos/recebimentos por cliente, fornecedor, funcionário, etc. (PersonVO)
  • Documento(s) de Origem: Permite a associação de documentos que geraram o lançamento, como NFe, Guias de Impostos, Contas de Consumo, etc. Pode ser uma maneira de arquivar a guia (como arquivo, ou como referência para o cadastro da NFe no sistema). Algumas vezes um mesmo lançamento de pagamento (por exemplo mesmo boleto) pode abrange a união de várias NFes.
  • Origin Account: Quando o lançamento for um pagamento ou transferência de fundos, é obrigatório associar à uma conta para indicar de onde foi tirado o valor para pagamento/transferência.
  • Recipient Account: Quando o lançamento for um recebimento ou transferência de fundos, é obrigatório associar à uma conta para indicar para onde foi o valor recebido.
  • Parcelas/Repetições: Associa o pagamento aos "Fragmentos" do pagamento. Normalmente cada lançamento tem apenas 1 com os dados do pagamento. Mas em casos de parcelamento do lançamento ou de contas que se repetem (como contas de consumo e impostos) é associado a diversos objetos. Cada fragmento é um pagamento diferente, com guia, código de barras, valores, vencimentos, etc. distintos.
    • Estatus do Lançamento: Define o "passo" ou estado em que o lançamento se encontra:
      • PLANNED: O pagamento está planejado (lançado no sistema) e aguardando para pagamento.
      • SENT: Estado usado para contas que são pagas por malote eletrônico, ou cobranças por geração de boleto, e indicam que já foram incluídas em um lote para enviar para o banco. Neste estado a conta já deve estar associada à uma conta bancária.
      • ERROR: Estado usado para contas que foram enviadas ao banco por malote eletrônico e retornaram com algum tipo de erro da instituição bancária.
      • PAID: Estado indicando que o lançamento já foi realizado. Isto é, o pagamento efetuado ou o recebível em caixa. Neste estado a associação da conta é obrigatória.
    • Mensagem do Malote Eletrônico: Mensagem(ns) recebida do sistema bancário ao tentar pagar uma conta, enviar um pagamento de salário, gerar um boleto, etc.. Por malote eletrônico.
    • Data de Lançamento: Registra a data em que o registro foi criado. Obrigatório
    • Data de Vencimento: Data máxima para pagamento sem penalidades de multas, juros e protestos. Obrigatório
    • Data de Execução: Data em que a ação de pagamento/recebimento realmente ocorreu.
    • Data de Compensação: Data em que o valor realmente entrou no caixa. Normalmente a data é uma duplicação do valor de 'data de execução', no entanto para recebíveis de cartões, boletos, e cheques depositados essa data pode ser diferente da data de execução devido ao processo de compensação. Este campo nunca deve ser nulo. Em casos de compensação imediata, duplicar o valor de 'data de execução' para simplificar consultas do banco de dados.
    • Valor Original: Valor do lançamento. (Seguindo sempre a convenção de que todo pagamento é salvo como valor negativo no banco, e todo recebimento é salvo como valor positivo. - Nos casos de lançamentos de movimentação, sempre lançar o valor positivo)
    • Valor Efetivo: O valor pago é o valor que realmente entrou ou saiu da Conta. Esse valor pode ser diferente do original devido a multas, descontos, taxas de recebíveis, etc.
    • Observações: Campo que permita que o usuário escreva qualquer detalhamento mais específico sobre o fragmento.
    • Documento de Origem: É possível anexar o documento de origem da dívida, seja uma NFe já existente no sistema, seja a digitalização de uma guia de impostos.
    • Comprovante de Pagamento: Permite anexar o documento com o comprovante de pagamento.

Os lançamentos devem ter os seguintes atributos:

  • Documento(s) de Origem: Permite a associação de documentos que geraram o lançamento, como NFe, Guias de Impostos, Contas de Consumo, etc. Pode ser uma maneira de arquivar a guia (como arquivo, ou como referência para o cadastro da NFe no sistema). Algumas vezes um mesmo lançamento de pagamento (por exemplo mesmo boleto) pode abrange a união de várias NFes.
  • Operação do Lançamento: Define a operação desse lançamento: [Enum]
    • DEBIT: Uma saída, valor removido do caixa: conta a pagar como um boleto de fornecedor, pagamento de salário, etc.
    • CREDIT: Uma entrada, valor removido do caixa: conta a receber como um boleto emitido para um convênio, recebíveis de cartões de crédito e débito, etc..
    • FUNDTRANSFER: Transferência de fundos entre uma conta e outra.
  • Nome de Exibição: Descrição 'curta' dado pelo usuário para descrever o lançamento. Este nome que será usado para exibir em telas e relatórios (como extratos das contas) que permita que o usuário identifique o pagamento.
  • Tipo do Lançamento: Permite definir alguns tipos diferentes de pagamentos: [Enum]
    • UNIQUE Define um pagamento único. Como o pagamento de uma nota avista, um serviço de conserto prestado, etc.
    • INSTALLMENTS Define que é um pagamento parcelado. Como uma nota com o valor dividido em 3 vezes em 3 boletos, ou um pagamento de maquinário em várias parcelas.
    • REPEAT Define que o pagamento se repete com alguma frequência. Como a mensalidade de alguma empresa, uma taxa de serviço de manutenção como dedetização, impostos mensais, contas de consumos, ou mesmo anualidades como guias referentes ao 13°, registros de domínio, certificados, impostos municipais como TFA, etc..
  • Espécie de Lançamento: Define o tipo de conta a pagar ou receber (não usado para FUNDTRANSFER)
    • PAYROLL: Pagamento de folha de pagamento. (Somente Débito)
    • PUBLICSERVICES: Boletos de concessionárias de serviços como telefonia, luz, gás, etc.
    • PAYMENTSLIP_DARF Guia de pagamento de DARF
    • PAYMENTSLIP_GPS Guia de pagamento de GPS
    • BOLETOS: Boletos de pagamentos em geral
    • DEPOSIT: Lançamento de depósitos
    • OTHER: Lançamentos manuais para outros pagamentos e recebimentos. Por exemplo, pagamentos sem nota de pequenos consertos, vales, etc.
  • Observações: Campo que permita que o usuário escreva qualquer detalhamento mais específico sobre o lançamento.


Parcelamento: Permite que o lançamento se “replique” com datas de vencimentos diferentes. Além da data de vencimento outros campos podem ser necessários como numeração dos boletos subsequentes.

Repetição: Só permite repetição quando não houver parcelamento. Define uma repetição deste pagamento, a repetição servirá para alertar o usuário de que alguma conta é esperada para um determinado vencimento e ainda não foi paga, ou mesmo para estimar o contas a pagar/receber mesmo quando a conta ainda não tiver sido lançada com seu valor correto.

Campos de Controle do Malote Eletrônico: Há campos de controle que precisam ser criados para salvar as informações relativas ao “malote eletrônico”. Como por exemplo a data de geração, ID do relatório, ID do pagamento, Código do Status, Mensagem do Status, histórico de Status ou mensagens geradas/recebidas, data dos status e ainda o CRC de controle da confirmação de pagamento. Consulta documentação para criação destes campos (Campos de controle não necessariamente precisam ser expostos ao usuário, provavelmente apenas os status de erro.)

Categorias de Lançamentos

As categorias de lançamentos são usadas para totalizar os lançamentos por grupos de interesse, de forma a mostrar relatórios de fluxo de caixa. As categorias devem ser uma estrutura hierárquica, de forma que o usuário possa criar sua árvore da maneira como achar conveniente ter os totais e subtotais. As categorias devem ter os seguintes campos: Nome: Nome da categoria dada pelo usuário. Categoria Pai: A categoria pai define onde essa categoria será utilizada.

Contas

Contas são usadas para lançar as entradas e saídas financeiras da empresa. Facilitando o controle dos saldos e valores financeiros da empresa.

Cada conta cadastrada deve ter os seguintes atributos:

  • Nome: Para o usuário nomear e identificar a conta.
  • Tipo da Conta:
    • Conta Local: Usada para lançamento manuais de caixas locais.
    • Conta Bancária: Usada para controle de contas bancárias como corrente ou conta investimento. Esse tipo de conta permitirá a conciliação de extrato bancário, bem como a exportação de “malote eletrônico” (CNAB?) para envio de pagamentos para o banco. Para contas bancárias temos os seguintes atributos adicionais:
      • Banco: Número do banco (listagem já pré existente do sistema, por causa do suporte ao “malote eletrônico”).
      • Agência: Agência da conta.
      • Número da Conta: Número da conta corrente.
      • Contato Agência: Permite anexar um contato (PersonVO) da agência.
      • Contato do Gerente: Permite anexar um contato (PersonVO) do gerente da conta.
    • Cartão BNDES: Usada para controlar compras e fluxo do cartão BNDES. (Para Implementação Futura)
    • Cartão de Crédito: Usada para controlar e registrar fluxos de pagamento em cartão de crédito. (Para Implementação Futura)
    • Administradoras de Cartão: Conta com a função de gerenciar os lançamentos de vendas com cartão de crédito. Para calcular taxas e saber o saldo de recebíveis, taxas e etc.. Ao receber no banco, marcamos como "Transferência de Fundos" entre as contas de administradoras e do extrato bancário.
    • Conta Aplicação: Conta usada para gerenciar os fundos de aplicações da empresa.

Conciliação Bancária das Contas Bancárias

A conciliação bancária tem a finalidade de sincronizar as informações oferecidas pelo banco (extrato bancário), com as informações (lançamentos) disponíveis no sistema. Para isso o sistema deve executar as seguintes tarefas:

  • Importar Extrato Bancário: O sistema deve permitir a importação de formatos comuns usados pelos bancos. Deve guardar os dados importados ignorando os trechos repetidos, e organizar de “forma continua” as informações do extrato bancário. Deve ainda ser capaz de “informar” se perceber que períodos de datas não foram importados, por exemplo o usuário esqueceu pulou algum trecho.
  • Mapear Lançamentos: ?

Contas a Pagar

A partir da NF-e Contas a Receber Gestão dos recebíveis da operadora de cartão Fluxo de Caixa