User Tools

Site Tools


membership_software

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
membership_software [2012/11/11 01:46]
plural
membership_software [2016/12/08 07:55] (current)
dan_dude
Line 1: Line 1:
 +====== This software is no longer used ======
 +
 ====== Membership Software Howtos ====== ====== Membership Software Howtos ======
  
 The Membership software is available to the board members and accessible at [[https://mkemakerspace.appspot.com/]]. The Membership software is available to the board members and accessible at [[https://mkemakerspace.appspot.com/]].
 +
 +===== Send out Invoice Renewals =====
 +
 +By running this script, you will create new copies of all invoices for this month marked with auto-renew.
 +
 +You need to have the following tools installed:
 +  * Python 2.7: http://www.python.org/download/releases/2.7.6/
 +  * httplib2: http://code.google.com/p/httplib2/wiki/Install
 +  * Google App Engine SDK for Python: https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
 +  * Git: http://git-scm.com/downloads
 +
 +Grab the software with git clone https://code.google.com/u/jason.gessner/p/mkemakerspace-tools/ .
 +
 +From the mkemakerspace-tools directory, run the following command:
 +
 +<code>
 +remote_api_shell.py --secure -s mkemakerspace.appspot.com
 +</code>
 +
 +you will be prompted for your google username and password.  remote_api_shell.py is part of the appengine SDK and the --secure flag forces the API calls to be issued over HTTPS.
 +
 +Once the shell is up type the following commands:
 +
 +<code>
 +from scripts.renew_invoices import RenewInvoices
 +
 +RenewInvoices()
 +</code>
 +
 +This will launch the renewal script for next month, with the DRY_RUN mode set to true, which will show you what it will do, but not actually send any invoices out.
 +
 +Sample output:
 +
 +<code>
 +s~mkemakerspace> from scripts.renew_invoices import RenewInvoices
 +WARNING:root:You are using the default Django version (0.96). The default Django version will change in an App Engine release in the near future. Please call use_library() to explicitly select a Django version. For more information see https://developers.google.com/appengine/docs/python/tools/libraries#Django
 +Starting renewals at 2014-01-12 18:52:14.002890
 +s~mkemakerspace> RenewInvoices()
 +RenewInvoicesForMonth: End of this month: 2014-01-31, Start of next month: 2014-02-01, DRY_RUN: True
 +Fetching makers
 +Richard R:
 +Steven B:
 +...
 +</code>
 +
 +The renewal script will append to a file called renewals.log file in the working directory.  After running in dry mode, check it out and see if everything looks OK to you.
 +
 +When you are ready to really create the invoices and send out the notifications, run the command again like this:
 +
 +<code>
 +RenewInvoices(dry_run=False)
 +</code>
 +
 +===== Send out Open Invoice Reminder Emails =====
 +
 +from the remote_api_shell, run the following commands (the s~mkemakerspace>  is just the prompt.  Don't type that.  :) ):
 +
 +The reminders script appends to reminders.log in the working directory.
 +
 +<code>
 +s~mkemakerspace> from datetime import date
 +s~mkemakerspace> due_date = date(2014, 2, 7)
 +s~mkemakerspace> from scripts.invoice_reminders import SendInvoiceReminders
 +s~mkemakerspace> SendInvoiceReminders(due_date)
 +Reminding folks with open invoices with due date of: 2014-02-07. DRY_RUN = True
 +Complete
 +
 +
 +
 +
 +s~mkemakerspace>
 +</code>
 +
 +By default that will just show you what it would do.  To really send out the reminders, run the function like this:
 +
 +<code>
 +s~mkemakerspace> SendInvoiceReminders(due_date, dry_run=False)
 +</code>
 +
 +===== Cancelling Open Invoices =====
 +
 +If you want to cancel a bunch of unpaid (open) invoices, run this script.
 +
 +from the remote_api_shell, run the following commands (the s~mkemakerspace>  is just the prompt.  Don't type that.  :) ):
 +
 +The cancellation script appends to invoice_cancellations.log in the working directory.
 +
 +<code>
 +s~mkemakerspace> from datetime import date
 +s~mkemakerspace> due_date = date(2014, 2, 7)
 +s~mkemakerspace> from scripts.cancel_past_due_invoices import CancelPastDueInvoices
 +WARNING:root:You are using the default Django version (0.96). The default Django version will change in an App Engine release in the near future. Please call use_library() to explicitly select a Django version. For more information see https://developers.google.com/appengine/docs/python/tools/libraries#Django
 +Starting reminders at 2014-01-12 19:31:29.269936
 +s~mkemakerspace> CancelPastDueInvoices(due_date)
 +Cancelling open invoices with due date of: 2014-02-07. DRY_RUN: True
 +Fetching invoices
 +Complete
 +
 +
 +
 +
 +s~mkemakerspace></code>
 +
 +By default that will just show you what it would do.  To really send out the reminders, run the function like this:
 +
 +<code>
 +s~mkemakerspace> CancelPastDueInvoices(due_date, dry_run=False)
 +</code>
  
 ===== Add a New Maker ===== ===== Add a New Maker =====
Line 36: Line 146:
  
 Notes are optional.  A name is not.  The name should probably be auto-generated, but for now put one in that is sensible like "{New member name} first month and deposit.". Notes are optional.  A name is not.  The name should probably be auto-generated, but for now put one in that is sensible like "{New member name} first month and deposit.".
 +
 +When a new invoice is created for a maker, we mark that maker's membership "provisional" in the system.  The access control will honor that as an active code, but we will soon be adding automatic lockouts if payments are not made on time.
 +
 +===== Record a payment for an invoice or cancel one =====
 +
 +{{:membership-sw-view-invoice.png|}}
 +
 +Once an invoice has been created, you can add payments to it or cancel the invoice.  Invoices are not changeable to make the bookkeeping simpler, so if you made a mistake, simply cancel the invoice and make a new one to replace it.
 +
 +For an open invoice, adding a payment requires a little bit of information.  Over time we will try to automate more of this for things that are paid via paypal or dwolla, but for now these need to be manually updated.
 +If a partial payment is made, the invoice will remain open.  Multiple payments may be made for a single invoice.  As soon as the full amount is paid, the invoice is marked as Paid and any memberships and space rentals will be marked as active instead of provisional.
 +
 +If the payment is a check, the check number is required.  This will help us give better info to the members and to keep better records ourselves.
 +If the payment is via paypal or dwolla, please add the the provider fee value so we can keep track of how much we are paying to receive money.
 +
 +Cash or check payments should be put in the "Associated Bank" account.  Dwolla (yay!) and Paypal (more expensive yay?) payments should be put in their respective accounts.  For Dwolla, if the maker has chosen to pay the $.25 transaction fee themselves, put the full transaction amount shown in Dwolla (for example 80.25) and still put .25 in the provider fee field.  Note that it is possible to fund a dwolla account and then make a payment from that to another dwolla account.  That will be a free transaction, i believe, with no fee attached.
 +
 +When the form is filled out, click the "Add Payment" button.
 +
 +To cancel an invoice, click the "Cancel Invoice" button.  Canceling an invoice will cancel the memberships and space rentals included within the invoice.  When the access control system is integrated, this will also remove access for that user within a short time.
 +
 +Jason will move the "Cancel Invoice" button farther away from the "Add Payment" button soon.  :)
 +
  
 ===== Create a membership level ===== ===== Create a membership level =====
  
 +{{:membership-sw-new-membership-level.png|}}
 +
 +We only really have 3 membership levels, but the system allows multiple membership levels primarily to enable different day of the week access.
 +
 +If you want to create a new membership level with specific day of the week access, go to the [[https://mkemakerspace.appspot.com/membership_level/new | New Membership Level Page]] and choose the relevant options.
 +
 +if you select a part-time membership level, you may only select up to 4 days.  You may select less if you wish.
 +
 +For multi-month discounts, add in the discount amount in the 3 and 6 month boxes.  Note that this is the discount amount for the month and not the discounted monthly rate.  For example, our full-time monthly memberships are $80/month with $5/month discounts for 3 months at a time and $10/month discounts for 6 months or more.  Any months after the month boundary is calculated at the discounted rate.  3, 4 or 5 months at a time will have the 3-month discount applied.  >= 6 months will each have the 6-month discount applied.
 ===== Manage Rentable Spaces ===== ===== Manage Rentable Spaces =====
 TODO: fill this in. TODO: fill this in.
membership_software.1352598411.txt.gz · Last modified: 2012/11/11 01:46 by plural