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

Add a Reimbursement flow to wpaustralia for ease of use and sanity #20

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

dd32
Copy link
Collaborator

@dd32 dd32 commented Dec 5, 2019

This PR is some work at adding a form which Meetups can request reimbursement through, to ease the burden upon WP Australia organisers while at the same time making it easier for meetups to request reimbursement more often.

Currently there's two methods used by meetups to be reimbursed:

  1. If they have Xero access, create a Expense Report.
  2. Email/SlackDM/pigeon the receipts to an WP Australia rep who then creates a Xero Bill for them.. hopefully same-day but sometimes months later.

This will add a level of public auditing as to where money is being used as well.

What it adds:

  1. Contact Form 7 form, saving into Flamingo. Custom Code adds saving of uploaded Images to Flamingo (Doesn't support that itself..), removing unused receipt fields, and generally making the admin UI nicer.
  2. Flamingo has been extended to add support for multiple statuses (Inbox/Approved/Declined/Paid)
  3. Flamingo has a one-click Xero button to allow pushing of reimbursements to a draft Xero Bill filling in appropriate fields.

Flow for a Meetup organiser:

  1. Go the the reimbursement URL, enter the post password which has been shared with them.
  2. Fill out their Name / Meetup / Date / Receipt (plus who it is, what it is, and how much).
  3. Submit it, and wait for money to pop up in their bank account.

Flow for a WP Australia rep:

  1. Be notified somehow (email probably) that there's a new reimbursement request
  2. View the Contact form result in Flamingo, determine if it looks correct (fields/receipts/etc) mark it as Approved (Hopefully Declined will never be used)
  3. (And this part might be a bulk thing done once/twice a month) Go through each Approved item, click the Xero button to create drafts in Xero.
  4. Open Xero (through the Invoice links on the reimbursement requests) make sure all the fields are right and the correct metadata is set for tracking. Mark it as Approved/Awaiting Payment
  5. Open Westpac, create payment request.
  6. (Another WP Australia Rep..) Mark Westpac payments as released as they go through each reimbursement request and mark them as Paid once they've validated that PersonA did it right
  7. (Another WP Australia Rep probably..) Mark the Xero transactions as reconciled a few days after 6 was done. This would probably be done as part of steps 4~6 for the next payments

Future TODOs:

  • Would be great if once a Xero bill was created, that the Flamingo CPT could have it's status updated automatically based on the Xero Bill going through it's Draft -> Awaiting Payment -> Paid statuses.
  • Work out a way to make the public audit log also include sponsors joining/paying/leaving the WP Australia sponsorship program
  • Probably ditch Contact Form 7 and implement it as a 'static' form, still using Flamingo still because that just seems to work. There's nothing we need CF7 for here other than the ease of adding and form validation, by staticising it we'd be able to migrate a bunch of hard-coded lists and bad defaults out (ie. Meetup list could be dynamic, suggest recent meetups, maybe actually list THE meetups rather than Meetup/date (ie. WordPress Narnia: [East Valley] December Meetup: Talk Title Here) but that's reliant upon a few other WP Australia things happening first.

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

Successfully merging this pull request may close these issues.

2 participants