The best way to record an advance payment to a supplier / customer is that it is recorded in a separate ledger (e.g. Advance to Suppliers) and not in the regular payable ledger (e.g. Trade Payables). The reason for this is that Notes to the financial statements need to separately show advances to suppliers. These should not be net-off.
Now, the issue is that ERPNext only allows to use Trade Payable ledger for recording advance payment. If any other ledger account is used (I tried with both Payment Entry and Journal Entry), then the advance is not pulled in the Purchase Invoice.
In my humble opinion this issue needs to be urgently addressed as it is hampering the reporting.
I have setup a seperate ledger; thats not an issue at all. In order to meet system requirements i had choosen account type as payable. Payment is booked in this account.
But issue is that when you call advance payments in subsequent purchase invoices; payments recorded in this ledger do not show up. Only advance payments booked in trade payables ledger show up in purchase invoice.
As for report, in a trial balance this ledger would separately appear. Similarly on balance sheet this ledger would separate appear like all other ledgers. As i mentioned earlier financial statements prepared under accounting standards require advances to suppliers/customers to appear separately and not net off from trade payable/ receivable. This requirement is easily met by using a seperate ledger. No issues here.
The problem arises when advances booked in this separate ledger (other than trade payable/receivable standard ledger) are not pulled in the purchase / sales invoice.
This is definitely an issue for me too. The same principle applies in IOLTA trust accounts. In essence you are holding someone else’s money on “trust” i.e. the customer may decide to cancel a part of the order and the deposit needs to be paid back or a second project is started and there are various reasons why the prepayment should be held in a liability account versus an asset account and a separate ledger, or journal as some systems call these separate ledgers. I saw for example an accounting implementation on Odoo at Law & Legal Practice Management App | Odoo Apps Store. In prder ti implement I think that an additional journal debit and credit entry should be made on advance payments. In essence a liability group account should be created initially in the chart of accounts. And then, per customer or per project liability accounts under this group account. Once the prepayment is allocated to a sales or purchase invoice the liability account should be decreased or increased on the submission of the invoice.