I usually told my cashier to print the invoice/receipt twice. One is given to the costumer, and one is kept by the cashier for reports.
Anyway, If the cashier forgot to print the invoice twice, she can easily access the pos screen, click close and find tickets. Select all ticket instead of the open ticket. refresh and wala, you have all tickets for the time range you select and you can print it again. How? I created a print job, give it a name and a label, make it available for POS and with the same template as invoice/receipt. Don't forget to assign the print job to a terminal. You can see the print button after you logout.