Here are the best practices to properly import the opening balance in the Accounting app. Note that this 10-steps-guide proposes a theoretical approach and you have to adapt it depending of the context of your project.
1. Create a copy of the production database and make sure that each steps works on it before applying it in the production database.
2. Check if the Accounting app already contains journal items. If yes, set the Invoicing Threshold Switch date to cancel them from an accounting point of view : https://drive.google.com/file/d/15Y-_PpSGWoLq07rhbSjY6LCWefTxKkSZ/view?usp=drivesdk
3. Create a specific misc. operations journal in which the opening balances will be imported. It is advised to name it as the previous software (for example : WinBooks). This step is optional but it will help the user to remember that the item he will reconcile comes from the previous software. If more details are needed, (s)he knows that he can consult the invoice/bill in the legacy system.
4. Extract the closing balances from the legacy software. Basically, you will get three structured files (.xlsx or .csv if possible, avoid .pdf) :
- General Balance = the balance of the general accounts.
- Customer Balance = the list of the unpaid invoices of each customer.
- Vendor Balance = the list of the unpaid invoices of each vendor.
5. Check if each general account in the files exists in the chart of accounts of Odoo. If no, create it ! Note that it is not necessary to create the general accounts for which the balance is zero.
6. Check if each customer/vendor exists in the Contacts of Odoo. If no, create it ! It is advised to import the External ID and/or the Internal Reference to ease the import of the opening balance.
7. When each general account and each partner is created, you can prepare the import of the opening balances. It is advised to import three distinct misc. operations in the journal you created previously :
- General Balance : remove the recevable and payable accounts and balance the journal entry with a waiting account.
- Customer Balance : use the External ID / Internal Reference to associate each journal item to the right partner and balance the journal entry with a waiting account.
- Vendor Balance : use the External ID / Internal Reference to associate each journal item to the right partner and balance the journal entry with a waiting account.
8. Import these three files in the journal previously created (i.e. : WinBooks) from the Accounting > Journal Entries menu.
9. Check if the trial balance of the waiting account is zero.
10. Check if the opening balance in Odoo is the same as the closing balance in the legacy system.
If the opening general balance is imported on January 1st, this one will probably be reviewed by the accountant on next few weeks in the legacy system. So it will be necessary to integrate these changes in Odoo as follow :
1. Reverse the general balance previously imported.
2. Import the new general balance.
3. Reconcile the waiting account if needed.