Have you considered adding a feature that would “VOID” a transaction? It’s easy enough to Edit a transaction, but voiding a transaction would hold the information in History without adding to Sales. I have a Quote/Invoice where the customer decided to forfit a system for the labor fees. I don’t want to delete the transaction, because I want it to stay in “History” for future reference.
Once you issue the invoice to customer, you shouldn’t be “voiding” it. The proper mechanism is to issue credit note.