Once an invoice has been "issued" accounting practice in some countries does not allow for the invoice to be modified.
I know from a technical perspective that it's almost always possible to change a invoice as long as it's stored electronically, however lawmakers are not technical people and certain leeway is generally accepted in the implementation of this law. Usually the legal system accepts as a good enough solution a system that does not facilitate the change, even if it does not make it completely impossible.
Today's implementation of invoicing in WHMCS however does not just facilitate the changing of sent invoices, it actually makes it itself. Client data needs to be stored with the invoice data, today the invoice data just points to the client ID, if the client data is changed then so is the invoice data for historical invoices. This is not ok.
The usual implementation is system is to have a "invoice sent to client flag" and once that is set the invoice is saved in it's total and can not be changed easily though the system. Some system enables you to "uncheck" the flag and then change the invoice.
I know there are some workaround for this by saving the PDFs of the invoices in a 3rd place or by using the fixed PDF data plugin available as a addon, but they are workarounds and does not solve the basic problem in the system.
Be able to disable buttons "Cancel", "Delete" or "Edit" Orders and Invoices when an EU invoice is "Paid".
In EU Invoices Paid and sent, cant be later deleted, cancel or edit becauseits iligal.In WHMCS we can delete, cancel, or edit even if an Invoice is "Paid", but legaly cannot have that option to Delete, cancel or edit.
Manage Invoice-View Invoice
Replacement of Manage Invoice permission to Edit Invoice and add View Invoice permission.Currently the Manage Invoice permission is associated with View Invoice also and it's impossible to allow permission to view only invoices.
Invoices Should Follow Standard Accounting Procedures
Invoices once published should not be changed, ever! Late fees should be on a new invoice with a reference to the original invoice.