This is what the client wants to do:
(1) Create an invoice.
(2) Add line items to the invoice as the job progresses.
(3) Datestamp and print the invoice.
(4) Prevent modification to the invoice after it is datestamped and printed, while retaining the ability to reprint the invoice.
I'm wondering what methods other developers have used to accomplish this -- short of creating two additional tables to serve as an archive and copying invoices and their line items to them when they are datestamped.
I'm thinking along the lines of giving read-only access to the invoice layout for all users and suspending them with scripts set to run with full access until the date in datestamp is reached. But this is a lot of work. It means putting a script trigger in every field, modifying the scripts for every button, and using custom menu to prevent every means of modifying a record after the datestamp.
I'm hoping there is a simpler way to block access after an invoice is printed.