ERP5 Advanced Invoicing Application provides a generic separation between invoice generation and respective invoice transaction.
In ERP5, invoice(invoice data) and invoice transaction(accounting data) are mixed up by default. This is not usable if customer's sales recognition timing and invoicing timing are different. For example many customers recognize sales everytime when shipping items and they make invoice once at the end of month
See following How-To in order to understand how to install an ERP5 application.