EposQueries
Contents
Details on how the EPOS system works
Show setup
Selling tickets
Is this once a number has been scanned? What happens when names are entered?
- Checks the validity of the session (see till sessions)
- If got person id Search people table?
- Get person details - Get memberships (Check union if required) Check members table for current membership then on failure check union? - Get tickets available to person How do tickets work? - Auto select best of available tickets
- Display member search form
- Check for person in filmsoc db - Check for person on ldap - Cache person details if found - Reload page with person id and clear day table What's the day table for? - The day table is for caching tickets which are preselected, so ticket preselection will make use of this table.
- List each of the available tickets Is this just standard tickets plus results from memberships and/or status?
- Highlight ticket if its in day table
- Add / remove tickets to day table
- Confirm Is this thesecond time a ticket is validated?
Till sessions
What are till sessions for?
- Check for till session id in cookie
- If no session id exists, create a till session
- Check priv required - Check show is active - Check user is signed up to show - Create cookie - Store session info in database
- Check session id, user id & screening id against till session in database
- Retrive session information including
- user id - screening id - film title - till ip address - Number of seats show is set up with
Auto selecting tickets
- Take list of available tickets
- For each ticket select first and replace with current if
1. Current ticket is cheaper 2. Current ticket is free and not a multifilm ticket (ie. a complementary ticket) 3. Ticket has a higher priority
Processing the transaction
- Take tickets in day table
- If not a dm override session, check the sale is valid
- Add transaction details to db
- Add ticket details to db
- Print tickets
Determining if a sale is valid
This is the same as checking if a ticket is available
- Is the person qualified for the ticket (Based on memberships)
- Is the ticket a multifilm ticket
- Are there tickets avilable on previously sold passes - Has a pass been added in current transaction - No tickets are remaining, return false
- Are there any tickets remaining (based on member_limit)