Difference between revisions of "EposQueries"

From Warwick Student Cinema
Jump to: navigation, search
 
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

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)