Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Feature: Nightly at-the-door register page and close-out function with buttons and configurability for door registration scenarios #116

Open
leetucker opened this issue Jan 21, 2019 · 0 comments

Comments

@leetucker
Copy link
Collaborator

At New Columbia Swing, we want a slightly faster and more intuitive way to do at-the-door registrations and checking off existing registrations for class series, without needing to have numerous tabs open on our tablet. We also want to incorporate cash at-the-door payments for our weekly dance more directly into the accounting system for better recordkeeping. And, we want a nightly "close out" page where the house manager can quickly mark off staff who are paid in cash, record the nightly till and cross-check against expected revenue based on registrations and at-the-door payments, etc. We run multiple classes per night followed by a dance, so the process needs to handle multiple events based on whatever is happening that day/evening.

I've decided to take these issues on in a way that will be usable by others as well. I envision this as being the primary new feature of the 0.9.0 release, and I'm hopeful that it won't take too long to build, since it can reuse a lot of existing logic.

Some of the key things that this will entail:

  • Add separate static placeholders for online payment processing and at-the-door payment processing, so that all payment processors have the option for separate plugins for each (this will also simplify things re: Square point-of-sale)
  • The cash payment functionality that is currently built into the core app will instead be built into the danceschool.payments.payatdoor app. (the CashPaymentRecord model will stay in danceschool.payments.core).
  • The Registration model will no longer require an associated Customer or name (but those constraints will still be enforced by the advance registration form.

The at-the-door register page will have:

  • Buttons for each event/series that occurs that night. Drop-in buttons and registration for closes series will also be options as they are now for at-the-door payments using the existing form.
  • A search box for quickly searching by name for existing registrations for that night's events and checking them in.
  • A running total of the number of registrants for each event/series
  • Configurable options for the check-in page re: whether or not to require at-the-door customers to provide name and email (I think that initial options will be "Always require," "Require for Series but not Events", "Require excluding selected category", and "Never require"). If a name and email is required, then checkout will proceed to step 2 of the regular checkout process to enter this information, with at-the-door payment plugins shown in Step 3. If a name and email is not required, then checkout will proceed directly to Step 3 of the regular process for more rapid payment.
  • Configurable option for adding a button to comp entrants (for attendance accounting).
  • Placeholder for additional links/instructions that are needed for each organization to be added easily using the CMS.

The nightly close-out page will have:

  • A list of that night's staff members for all events, with the option to immediately mark as paid any staff member whose event ends that day.
  • Ability to record nightly cash in and cash out
  • Comparison to expected cash given nightly registrations, and ability to quickly generate a revenue item to account for any miscellaneous additional revenue or expense item to account for any shortfall.
    • Placeholder for additional links/instructions that are needed for each organization to be added easily using the CMS.

This functionality will be incorporated as a new app (possibly two new apps) within the project, that is enabled by default in the installation templates, but can be disabled if it is not needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant