silver-horizon / bandmaster

Band Management Tools
1 stars 0 forks source link

Subs #17

Open rugulous opened 10 months ago

rugulous commented 10 months ago

Allow subs to be configurable for groups, and keep a record of who has paid and how much. We should make it configurable for members paying monthly and per rehearsal.

I think the better way to approach it is to give each member an "account" with their group, which can be credited and debited. So every rehearsal they attend we would debit from this account (which would allow it to go negative/members to owe their group) and lets admins see who is in arrears etc

rugulous commented 10 months ago

I think a good way to do this would be to have 2 cron jobs that run - one that runs nightly, and debits for any unprocessed rehearsal-based subs, and one that runs monthly and deals with those subs.

I am unsure whether we should create these as "pending" transactions or leave the jobs to discover them!

rugulous commented 9 months ago

I've had more of a think about this and I don't think that the subs should be stored as a pair of MonthlySubs and PerRehearsalSubs. I think we need to allow bands to have a variety of sub types that they can create - for example, at Juniors we have £3 per rehearsal or £12 per month, but then we also have £1 per rehearsal and £4 per month if in seniors too

rugulous commented 9 months ago

Subs should have an effective date - monthly subs changes should be effective from the first of the month

rugulous commented 9 months ago

Okay so:

  1. Create group -> takes you to group overview

  2. Action bar has a "Subs..." Button -> takes you to group subs view

  3. Lists currently active subs rates + past rates (w/ date ranges)

  4. Clicking on active sub range displays a modal - edit the amount at the top, members currently on that rate at the bottom (although actually this could lead to a modal within a modal??)

  5. If sub amount is edited, set the current sub to inactive and create a new sub type - also assign all current members to the new sub.

This should allow us to retain a history of all the different sub rates whilst also allowing editing

rugulous commented 9 months ago

Current sub rate should also be displayed on the member profile somewhere (even if just a button on action bar that also says "Subs..."), which should also allow changing rate for that specific member

rugulous commented 9 months ago

In terms of monthly subs, I think it's cleaner to start the new price from the 1st of the month. Might be worth showing the user a prompt saying something along the lines of "start immediately or from next month?" and let them communicate to their members?

If they choose first of the month, we could store a NextSubID and have a cron job that rolls them all over on the 1st of each month

rugulous commented 5 months ago

Looks like SumUp is cheaper than Square?

The work I've been doing with Monzo could also tie into this nicely - webhooks to update when money received, Oauth API to store funds in pots per band and to allow them to withdraw

rugulous commented 5 months ago

No I think the pots are a stupid idea. If we get money let's transfer it to the band instead, and maybe have a contingency "not claimed" pot for it they haven't set up their details