Difference between revisions of "EposQueries"
Line 4: | Line 4: | ||
==Selling tickets== |
==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) |
*Checks the validity of the session (see till sessions) |
||
− | *If got person id |
+ | *If got person id '''Search people table?''' |
- Get person details |
- Get person details |
||
− | - Get memberships (Check union if required) |
+ | - Get memberships (Check union if required) '''Check members table for current membership then on failure check union?''' |
− | - Get tickets available to person |
+ | - Get tickets available to person '''How do tickets work?''' |
- Auto select best of available tickets |
- Auto select best of available tickets |
||
*Display member search form |
*Display member search form |
||
Line 14: | Line 15: | ||
- Check for person on ldap |
- Check for person on ldap |
||
- Cache person details if found |
- Cache person details if found |
||
− | - Reload page with person id and clear day table |
+ | - Reload page with person id and clear day table '''What's the day table for?''' |
− | *List each of the available tickets |
+ | *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 |
**Highlight ticket if its in day table |
||
**Add / remove tickets to day table |
**Add / remove tickets to day table |
||
+ | *Confirm '''Is this thesecond time a ticket is validated?''' |
||
− | *Confirm |
||
==Till sessions== |
==Till sessions== |
||
+ | '''What are till sessions for?''' |
||
*Check for till session id in cookie |
*Check for till session id in cookie |
||
*If no session id exists, create a till session |
*If no session id exists, create a till session |
Revision as of 13:59, 24 October 2006
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?
- 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)