CashFlow
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.
- 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.
Os lançamentos devem ter os seguintes atributos:
- Tipo do Lançamento: Define o tipo de 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.
- Espécie de Lançamento: Define o tipo de conta a pagar ou receber (não usado para FUNDTRANSFER)
- SLIPPAYMENTS: Pagamento de folha de pagamento. (Somente Débito)
- PUBLICSERVICES: Boletos de concessionárias de serviços como telefonia, luz, gás, etc.
- BOLETOS: Boletos de pagamentos em geral
- DEPOSIT: Lançamento de depósitos
- Estatus do Pagamento: Define o "passo" ou estado em que o pagamento 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, 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
- 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.
- Valor: Valor do lançamento. (Manter valor negativo para pagamentos?)
Categoria: Categoria de pagamentos, para sumarização dos pagamentos. (Leia Mais) Nome do Lançamento: Campo de texto, certa de 100 caracteres máximo para descrição adicional pelo usuário. Beneficiário/Pagador: Associa uma Pessoa como Beneficiário ou Pagador (depentendo 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. Descrição: Campo de texto livre para eventuais descrições adicionais. Modo de Pagamento: Disponível apenas para lançamentos do tipo débito, define como essa conta deve ser paga: Boleto Bancário: O lançamento será pago através de um boleto bancário, útil para pagamento por “malote eletrônico”. Solicita os dados do boleto, sendo que pode ser identificado pelo código de barras (inclusive criar histórico das contas dos boletos e validar falha do operador se tentar lançar boleto de um fornecedor em outro). Transferência / TED: Permite a transferência bancária, ou interbancária dependendo da conta usada para o pagamento. Essa forma de pagamento não permite que seja feita de contas locais. Depósito em Conta: Identifica que o pagamento será feito através de depósito em conta do cliente. Solicitar o banco, agência e conta. No banco, usar o cadastro de bancos do próprio sistema. Em Mãos: Indica que o pagamento será feito em mãos. Não solicita nenhuma informação extra. Atuaria também como uma opção de “Outros” na falta de opção mais específica. Modo de Recebimento: Disponível apenas para lançamentos do tipo crédito, define como esse recebimento ocorrerá: Depósito em Conta: Define que o esse valor será recebido em uma conta bancária (e não permite que seja dada entrada em uma conta local). Devendo assim fazer parte posterior da conciliação bancária. Boleto Bancário: Define que esse recebimento é através de um boleto emitido. Também usado para conciliação bancária. Em mãos: Permite informar que foi recebido em mãos, e deve ser anexado à alguma conta local. Documento(s) de Origem: Permite a descrição 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 para um mesmo lançamento de pagamento (por exemplo mesmo boleto) pode abrangir a união de várias NFes. Data de Realização (Pagamento/Recebimento): Data da efetiva “realização” do lançamento. A presença dessa data diferencia um lançamento futuro de um lançamento passado. Conta de Pagamento: Quando informado a data de pagamento, é obrigatório definir em qual Conta esse lançamento foi realizado, para gerar a movimentação da conta. Enquanto não tem uma data de realização, a conta de pagamento não precisa ser obrigatória, mas seria uma boa prática (talvez tornar obrigatória mesmo assim) para ajudar no cálculo da previsão das contas a pagar. 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. Status: O status do pagamento tem a finalidade de definir em que passo o pagamento está para limitar suas as ações e não causar erros no funcionamento do sistema. O status é muito útil nos pagamentos por “malote eletrônico”, em que o pagamento é enviado para o banco (depois de gerado o arquivo), e deste ponto em diante não pode ser simplesmente apagado, ou pago de outra forma, deve apresentar o status informando que o pagamento já foi enviado para pagamento em algum banco e estamos aguardando o retorno. Mesmo depois do retorno, o status pode não ser o de pago, mas sim de algum erro previsto no sistema de integração com os bancos. Outro exemplo é são os lançamentos de contas a receber por boleto, que precisam ter um arquivo gerado e enviado para o banco também a fim de gerar a cobrança (paga boletos registrados) 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.
Gerenciamento de 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. Cadastro de Contas 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.
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