Contas à Pagar e Receber

De BIS Wiki
Revisão de 15h27min de 25 de outubro de 2019 por Rodrigogml (discussão | contribs) (Tipo de Contas a Pagar/Receber)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

A gestão de contas a pagar e receber (ou já pagas e recebidas) será feita toda a partir de um único objeto (o BillVO). Entendemos por "Conta" qualquer fluxo financeiro realizado pela empresa tanto débitos (despesas) quanto créditos (receitas).

Neste objeto teremos informações como Valores, contra-partes da operação, se é crédito ou débito (receber ou pagar), data de previsão de pagamento (vencimento), data da efetivação do pagamento, etc. Note que este objeto tem a finalidade de registrar todas as movimentações financeiras da empresa.


Relacionamento e Diferença do AccountStatementVO

O BillVO representa a conta a ser paga/recebida. Com valores, parcelas, tipo de guia, código de boleto, etc.. Enquanto que o AccountStatementVO representa um lançamento feito no extrato da conta.

Um BillVO existe "sozinho" enquanto a conta não foi paga/recebida, representando uma expectativa de movimentação futura. Já o AccountStatementVO é um lançamento de movimentação já realizado em algum caixa. Uma vez que o BillVO é definido como efetivado (pago/recebido), ele deve ser associado com o AccountStatementVO para registrar em qual conta financeira a movimentação ocorreu.

Note que, o relacionamento entre o BillVO e o AccountStatementVO é N:N, mas e feito indiretamente pelo objeto das parcelas do BillVO, o BillPaymentVO. Assim o BillVO pode ter várias parcelas, e cada parcela ser paga em uma conta diferente. Assim como, em um único lançamento do lado da Conta Financeira pode representar vários pagamentos. Por exemplo, é emitido um único cheque para se pagar vários boletos, ou pelo pagamento em Lote o banco aglutina em um único lançamento o pagamento de vários boletos e tributos, ou do pagamento de vários funcionários.


Parcelamento e Múltiplos Pagamentos (O BillPaymentVO)

As informações da Conta a Pagar/Receber é separa entre o BillVO e o BillPaymentVO. Deve-se pensar no BillVO como a conta a ser efetivada. Por exemplo, o pagamento do seguro, o IPTU de um imóvel, a compra de um carro para a frota, etc.. Enquanto que o BillPaymentVO é "a parcela". Muitas vezes o BillVO tem só um BillPaymentVO, mas pode ser tantos quantos forem necessários para representar os pagamentos realizados. Como citado, imagine o seguro da empresa que foi parcelado em 5 prestações. O BillVO deverá ter 5 BillPaymentVO para que sejam lançados os diferentes pagamentos.

Outra ponto importante sobre o BillPaymentVO é que ele representa "a Guia", ou o documento utilizado para pagamento, ou mesmo a ausência de uma guia específica de pagamento. Continuando nosso exemplo do seguro, imagine que as 5 recebemos 5 boletos para realizar os pagamentos, teremos 5 BillPaymentVO com a informação de cada boleto no sistema. Mas por algum motivo a prestação 4 não foi paga e depois de entrar em contato com a empresa foi solicitado que fizéssemos uma transferência bancária. Neste caso teríamos de substituir o BillPaymentVO com os dados do boleto, por um registrando o novo pagamento por TED/Transferência.

O BillPaymentVO também pode ser utilizado para registrar múltiplos pagamentos para fechar uma mesma conta, mesmo que não seja um parcelamento. Por exemplo, para pagar um fornecedor pagamos parte com cheque de terceiros e outra com uma transferência bancária. Temos de registrar o pagamento com os cheques de terceiros saindo do caixa local que estava com os cheques, e registrar a transferência da conta bancária a partir de transferência. Mesmo que tudo tenha ocorrido na mesma data, teremos 2 BillPaymentVO para registrar todos os pagamentos para quitar a conta em questão.


Por fim, o BillPaymentVO também registra a forma de pagamento. Aqui é preciso tomar cuidado para não misturar o documento de pagamento com a forma de pagamento. Vamos lá, o documento de pagamento pode ser um Boleto, já o boleto pode ser pago com dinheiro de algum caixa, ou pago manualmente pelo bankline, pode ser pago em cheque na boca do caixa ou ainda por remessa/lote eletrônico.


Tipo de Contas a Pagar/Receber

Para otimizar alguns processos e validações o BIS identifica de alguns pagamentos, como Impostos, Pagamento de Notas, Pagamentos de Salários, etc.. Essa identificação permite que o BIS gerencie lançamentos contábeis, valide guias e formas de pagamento automaticamente.

Definições dos Pagamentos

O BIS categorias as movimentações financeiras em 3 tipos diferentes:

  • BillType (Tipo da Conta) - BillType, ou Tipo da Conta, é declarado pelo BillVO e define de forma geral o porque da movimentação financeira. Exemplos:
    Pagamentos (Débitos/Despesas): Fornecedor, Prestador de Serviço, algum Tributo como PIS, Cofins, ICMS, IPTU, Salários, Pensão Alimentícia, etc.
    Recebimentos (Créditos/Receitas): Recebimento de Convênios, Faturamento de Venda, Prêmio/Indenização de Seguros, etc.
    Transferências: Transferências entre contras da própria empresa. Não implica em Despesa ou Receita, apenas um Crédito e Débito entre contas.
  • BillPaymentType (Tipo do Pagamento) - BillPayment, ou Tipo do Pagamento, é declarado pelo BillPaymentVO. Define como o pagamento é realizado, e suas definições devem ser coerentes com a definição do BillType do BillVO. Lembre-se que BillVO pode ter vários BillPaymentVO, sendo BillVO a representação da conta, enquanto que o BillPaymentVO é a representação de cada pagamento/parcela realizado. Exemplos:
    IPTU: Neste caso BillType será definido como IPTU, pois é isso que estamos pagando. Já o BillPaymentType será definido como "Boleto de Serviço de Prefeitura", caso a parcela seja recolhida por uma guia com código de barras começando com 8 (Mais detalhes sobre boletos e códigos de barras na documentação dos boletos). Ou como Manual, caso o pagamento seja realizado de forma manual na prefeitura, diretamente no bankline, ou qualquer outra forma controlada fora do sistema.
    PIS: Para este tipo de conta, o BillType deve ser definido como PIS, e o BillPaymentType como DARF uma vez que normalmente o PIS é pago através de guias de DARF. Pode também ser definido de forma "manual", ao ser pago diretamente para um contador, ou em casos atípicos de recolhimento direto por outro tipo de guia.
  • Método de Pagamento: Por fim, depois de definido o tipo de conta, a guia/tipo de pagamento, cabe ainda a definição de como o pagamento foi realizado para que possa ser controlado pelo sistema. Por exemplo:
    Arquivo de Lote: O pagamento foi realizado através de envio de arquivo de lote para pagamento em banco de forma eletrônica
    Manual: Quanto o pagamento é realizado de de alguma forma manual (não controlada pelo sistema), de forma que simplesmente é retirado o valor do caixa do qual o pagamento foi realizado.
    Cheque: Pagamento realizado através de Cheque. O BIS não controla esse tipo de pagamento ainda, mas poderia ser controlado para que se registre e rastreie os destinos das folhas de cheque.


Tipo da Conta Tipo do Pagamento

Tipo da Conta é definido pelo atributo type do BillVO.

Tipo do Pagamento permitidos para o Tipo da Conta definido no BillVO. Esse é o valor de type do BillPaymentVO.

  • MANUAL
  • NONE
  • BOLETO
  • TRANSFER

Lançamento de Contas a Pagar/Receber

Uma Conta a Pagar/Receber pode ser lançada de diversas maneiras no sistema, seja manualmente, através de uma nota, de um boleto con fatura, boleto por contrato (sem nota), etc..

Cada parte do sistema criará os objetos conforme os requisitos e necessidades de cada parte do sistema. As outras partes do sistema devem simplesmente respeitar as regras previstas no módulo para manter a compatibilidade com a edição e com os métodos de pagamento.


Lançamento Manual

Entre as opções de se lançar uma conta está a própria tela de Contas à Pagar e Receber que permite o lançamento de novas contas manualmente. Seja de boletos de contratos, guias de impostos, pagamentos de funcionários, etc.


Efetivação do Pagamento/Recebimento

Pagamento por Lote Bancário

De acordo com as contas bancárias cadastradas, as contas poderão ser pagas através de lote bancário (pagamento por arquivo). O BIS gera o arquivo de Lote que deve ser enviado ao banco. Anotando o lote os IDs e demais atributos conforme a geração do Layout e do tipo de conta, para que depois, possa ler o arquivo de retorno e dar baixa/vincular os pagamentos realizados e erros.

Pagamento Manual

O Pagamento Manual permite que uma conta seja marcada como paga em qualquer conta financeira sem mais controles do sistema. Utilizado quando o usuário fez o pagamento em dinheiro do caixa local, ou pagou o boleto de forma manual no bankline ou na boca do caixa.

Validação Extras

  • [ve0001] Código de Barras / Código Numérico Obrigatório - Devem conter sempre o código de barras, mesmo que o usuário entre a representação numérica, o sistema deve converter e salvar ambas as informações. Esta validação se aplica apenas para os títulos com códigos de barras como Boleto, Contas de Consumo, alguns tributos, etc.
  • [ve0004] Verificar se Código de Barras e Código Numérico são compatíveis - Garantir que ambos os valores salvos são referência um do outro.
  • [ve0005] Guias de Impostos e Contas de Consumo não podem ser do tipo crédito - embora óbvio, garante que no sistema não tente salvar alguma informação incoerente no sistema.
  • [ve0006] Validações da Guia GPS sem código de Barras - Validar campos obrigatórios da Guia
  • [ve0007] Validações da Guia DARF sem código de Barras - Validar os campos obrigatórios da Guia
  • [ve0008] Validações da Guia GARE/SP sem código de Barras - Validar os campos obrigatórios da Guia
  • [ve0009] Validações das Transferências - Validar os campos necessários para realizar a transferência como:
    Destinatário da Transferência esteja preenchido e com CPF/CNPJ válidos
    Banco destino tenha o Código do Banco e ISPB definidos
    Agência esteja Preenchido
    Conta Corrente com DV esteja Preenchido
    Finalidade da Transferência esteja Preenchida
  • [ve0010] Total de StatementVO - A soma dos valores do StatementVO gerados deve ser o mesmo que o valor final do BillVO.
  • [ve0011] Data de Pagamento e Competência seja o mesmo no StatementVO - A soma dos valores do StatementVO gerados deve ser o mesmo que o valor final do BillVO.
  • [ve0012] O Sacador/Avalista só pode ser alterado enquanto o pagamento tiver o status 'Aguardando' - Pagamentos com outros status só podem ser alterados com acesso especial.
  • [ve0013] Os atributos das parcelas só podem ser alteradas enquanto estiverem com o status 'Aguadando' - Todos os atributos da parcela que iniciou ou completou o pagamento devem ser imutáveis. Podendo ser alterados apenas por acessos de segurança especial.


Validação na Exclusão

  • [ve0014] Excluir AccountStatementVO ao remover pagamentos realizados - Validar se o usuário tem permissão para remover o pagamento, e se sim, é necessário excluir os lançamentos do AccountStatementVO.