We are proposing a major change in the way the accounting ledgers work in ERPNext.
Please review and comment https://github.com/frappe/erpnext/issues/11782
In most accounting systems, the ledger is immutable. If a cancellation or adjustment has to be made, it has to be as a new entry that reverses or changes the impact of a previous entry.
Here are some problems related to this:
- Forward posting is computationally expensive.
- In stock, where valuation is based on First-in-first-out (FIFO), the entire sequence gets regenerated, upsetting valuations and profits for all subsequent transactions.
- Taxes calculated and paid for a period may also get changed.
- Making changes back in time can lead to unexpected consequences
In ERPNext we have allowed back dated entries that forward updates balances and resets FIFO stacks and this is a bad practice. We should fix this so that forward dated ledgers are not allowed.
All cancellations must be made in the forward direction only, we can maintain a separate “transaction date” for record purposes if a transaction was posted on current date, but belonged to another date/
- All Stock and Accounting Ledger transactions to be forward posted only.
- Add Transaction Date property on Accounting and Stock Transactions for reporting purpose.
- Reverse entries for cancellations on current date. This will also solve the problem of negative stock at a past date.
- Stock and General Ledger will never be deleted