When we create a customer invoice in Odoo (Version 19) and validate the invoice, on the invoice UI, the invoice is apparently unchangeable, all the fields become read-only and it looks like you can't make any changes.
However, on objects that have a many2one relationship to the invoice, like the contact for the invoicing address or the payment terms, we can go into those objects via Contacts or configuration and make changes like assigning the invoice contact to a different parent company or changing the text of the payment terms.
These changes are reflected on the information displayed on the invoice UI form, and when we print or send the invoice again, the new document incorporates the changes and becomes different than the original invoice.
This is completely unacceptable in Germany which legally requires invoices to be immutable.
We have somewhat of an improvement by changing the settings for "Reload from attachment" (ir.actions.report.attachment_use) to True and to make an entry in "Save as Attachment Prefix" (ir.actions.report.attachment) for the invoice reports. The first change resulted in re-using the saved PDF on sending, the second setting to re-use it on printing.
This is an improvment, but the base problem that the invoice data itself has changed is not rectified. Does anyone have a solution for this?