A VOIDED transaction seems to be handled correctly in all other areas of the program except for the customer records.
I noticed this when making a large sale ($350) to a new customer and mistakenly tendered the transaction as CASH instead of CC.
I VOIDED the Cash transaction and re-rang it again to tender it as CC.
After the sale I went to look at the customer's sales records and I expected to see:
Code: Select all
Total Sales amount: $350.00
Total Return amount: -$0.00
Code: Select all
Total Sales amount: $700.00
Total Return amount: -$350.00
If is was only a single event this is "mehhh" at best. But once you have more than this single transaction/correction. ie as sales / returns and voids accumulate there is no way to know that a 'return' wasn't really a VOID. This method make the data dirty.
The solution would be to handle the Voided transaction in the customer data as if it didn't happen. ie remove the VOIDED sale from the sale's data. Another solution would be similar to how Voids are handled on the closeout by adding a 'Total Voided' to the customer record.. Not a great solution at all but would keep the data from being 'dirty'. This is 'mehh' at best but would keep it clear what the real accumulations are.