Hibou Odoo Suite: Accounting Modules: Payment Disperse
Repository Versions:
Modules:
AGPL-3
Purpose
This documentation outlines the use cases and processes of Hibou's Payment Disperse module for Odoo 13.
The Payment Disperse module allows users to pay multiple invoices or vendor bills at once and manually disperse the amount paid per invoice. It also provides the ability to pre-populate payment amounts based on the remaining balance or the amount due.
Getting Started
First thing's first, we want to install the module! Navigate to the Apps application.
Once there, remove the 'Apps' filter, then search for 'Payment Disperse'. When ready, click install.
Good to Know!
This module requires Odoo's Accounting module. However, if you do not already have this module installed, Odoo will install it for you during this modules installation!
Processes
To get started, navigate to the Accounting app.
Manually Dispersing PaymentsTo
To disperse payment across invoices, select customers > Invoices.
To disperse payment across vendor bills, select Vendors > Bills.
This will bring you to a list view of customer invoices or vendor bills (both are invoice types). Use the Filters > posted.
Select all of the invoices/bills that you wish to register payment on by checking the checkbox next to each - make sure they have a balance due. Once all have been selected, select Action > Register Payment.
This will present a modal window to register a payment. Once the Disperse Manually checkbox is selected, a new section of the form will display. Here you will see lines for each of the selected invoices.
Fill with Remaining
Click Fill With Remaining to populate the total amount paid with the balance due on the selected invoices, regardless of the next payment due date or payment terms.
Since this payment will be paying the bills in full, we can click Toggle Close Balance to quickly check each box in the Close Balance column.
If we manually adjust the Amount column(s), we'll then see the Difference field(s) populate. Because we're attempting to close the balance, we'll have to write off the difference to a Difference Account, which is now a required field.
Fill with Due
Click Fill with Due to adjust the payment amount to only the balance owed as of the Due Date Cutoff selected. In this case, our invoices are brand new and they're not due for several weeks. Because we selected today's date as the Due Date Cutoff, and 'Due' as the Due Date Behavior, we can see that our payment amount is 0.00.
If we change the Due Date Behavior to 'Next Due', we can see that the next payment due is the full balance of both invoices, regardless of the Due Date Cutoff selected.
If we manually adjust the Amount column(s), we'll then see the Difference field(s) populate once again. This time we're not attempting to close the balance, so the first invoice will remain open with a $5.00 balance.
When you're ready, click Create Payment. From the validated payment you can view the Journal Items created, as well as the invoices/bills paid by using the Invoices smart button.
Technical
This module adds a new transient model to the Register Payment wizard `account.register.payments.invoice.line`. Additionally, it adds several fields to the `account.register.payments` wizard in order to link invoices for payments as well as journals for write-offs:
`is_manual_disperse` Boolean field to indicate if the payment should be dispersed manually
`invoice_line_ids` One2many field for Invoices
`writeoff_journal_id` Many2one field for the Write-off journal
`due_date_cutoff` Date field for cutoff date
The `account.payment` model also receives a new method `_create_payment_entry_manual_disperse` to create and validate payments, as well as reconcile the invoice lines with the payment.