POS Returns
Refund exactly what was sold, nothing more.
What it does
Looks up an original posted sale by its ticket number, shows what's still actually returnable line by line (already-returned quantity subtracted), and posts a refund as one lump cash payment tied back to that original sale.
How it works
Find the original sale
Search by the ticket number against the real POS sale type - only a posted sale can be returned against.
See what's actually left to return
Remaining quantity is calculated server-side, so a partially-returned sale only ever shows what genuinely hasn't come back yet.
Choose full or partial
Return All fills every line to its remaining maximum, or quantities can be set line by line; the original discount is pro-rated to match whatever proportion is being returned.
Post the refund
Creates a dedicated return invoice linked back to the original sale, refunds as one lump cash amount, and restocks the returned items immediately.
The problem it solves
Loosely handled "just give them cash back" returns are a classic loss-prevention weak point - without checking a return against what was actually sold, and what's already been returned against that same sale, POS returns can quietly become a cash drain with no real transaction behind them. Tying every return to its original sale, and re-validating returnable quantity on the server rather than trusting the till screen, closes that gap.