Having an audit trail; that is a sequence of identifiable, non-removable transactions, is extremely important for several reasons. First, when an error appears in your data, having a complete audit trail makes finding the error and fixing relatively easy. Without an audit trail, you’ll have to spend a lot of time manually reviewing transactions or reconstructing the chain of transactions to resolve the problem.
Second, having complete audit trails will save a lot of money and time when outside auditors and financial analysts review your books. The faster the third party can find the information they need to complete their task, the lower the cost to your company.
In the book Open ERP, a modern approach to integrated business management, the authors indicate in 11.2.3 Cancelling an invoice that
“By default Open ERP won’t allow you to cancel an invoice once it has been approved. Since accounting entries have been created you theoretically can’t go back and delete them.”
That is good; however the authors continue by saying that
“in many cases it’s more convenient to cancel an invoice when there’s an error than to produce a credit note and reconcile the two entries.”
That is quick and easy but as the authors point out that “Cancelling an invoice will cause a break in the number sequence of your invoices”, which damages the audit trail.
OpenERP allows the user to over-ride the default and cancel invoices, but it is a bad idea.