EposQueries

From Warwick Student Cinema
Revision as of 12:32, 24 October 2006 by 32.112.139.170 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Details on how the EPOS system works

Show setup

Selling tickets

  • Checks the validity of the session (see till sessions)
  • If got person id
- Get person details
- Get memberships (Check union if required)
- Get tickets available to person
- 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
  • List each of the available tickets
    • Highlight ticket if its in day table
    • Add / remove tickets to day table
  • Confirm

Till sessions

  • 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)