Open rugulous opened 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!
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
Subs should have an effective date - monthly subs changes should be effective from the first of the month
Okay so:
Create group -> takes you to group overview
Action bar has a "Subs..." Button -> takes you to group subs view
Lists currently active subs rates + past rates (w/ date ranges)
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??)
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
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
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
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
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
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