Testing this out a bit and works OK. However I notice something.
Scan a valid ticket after doors open, scanner allows entry.
Now the doors-closed time passes.
A patron with a duplicated ticket tries to enter.
Scanner message is “Wrong performance date/time” (which is actually correct). But wouldn’t “Ticket already recorded” trump that message in this case?
Usher may grant the bogus patron access since he’s “only a minute late”, but alas the original patron is already sitting in his seat.