Contas à Pagar e Receber
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.
O relacionamento entre os objetos é N:N 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.
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.
- [ve0002] Beneficiário, Pagador e Sacador Obrigatórios - É obrigatório informar o Pagador, o sacador e o beneficiário para os títulos cadastrados. O cadastro do boleto já deve verificar se a pessoa tem o CNPJ/CPF cadastrado, para evitar dificuldades na hora de realizar o pagamento por lote. Note que essa validação deve validar apenas títulos que tenham uma contra-parte com cadastro de CNPJ/CPF, impostos por exemplo estão isentos dessa validação.
- Contas a Pagar - No caso de ser uma conta à pagar, o Pagador é nulo, pois é a própria empresa. O beneficiário deverá ser o mesmo o que o Pagador ou ser outra pessoa caso exista um intermediador entre as partes.;
- Contas à Receber - No caso de ser uma conta à receber, o Sacador/Avalista é nulo, pois é a própria empresa. O beneficiário pode ser uma outra pessoa, caso a empresa esteja utilizando alguma financeira ou intermediador.
- [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.