Add recurring transactions and transaction templates #44
Labels
No Label
bug
enhancement
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: andrew/finnow#44
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Add the ability for users to plan ahead with recurring transactions and transaction templates.
Recurring Transactions
Users can add a pre-filled transaction that occurs on a periodic schedule, like once a month, once a year, bi-weekly, etc. Then, every time that this recurring transaction is scheduled to occur, Finnow will prompt you to confirm that the transaction has actually been executed, allowing you to make any last-minute changes, and then saves the transaction to your profile.
It'll introduce the concept of "pending" (or draft) transactions that haven't been added to the official list of journal entries, so that when a recurring transaction happens, it'll just create that pending transaction.
Maybe if you don't actually confirm a recurring transaction, after X days, it'll disappear (maybe not).
Transaction Templates
Often times, you'll record similar transactions, like each time you refuel your car, you enter a credit transaction categorized as "Gas", so it could be convenient to add a "template" where you just need to fill in the amount and vendor and submit. Templates can probably use the same underlying structure as the "drafts" described in Recurring Transactions, but then when viewing a draft, you can click a button to "Make this draft a template".
Technical Details
Both of the above features would be implemented by adding a
TRANSACTION_DRAFTdatabase table, with a structure that basically copies the mainTRANSACTIONtable, with an additionalIS_TEMPLATEproperty, and looser constraints around what information must be present.Then for Recurring Transactions, an additional table named
RECURRING_TRANSACTION_SCHEDULEwould be added:It would most likely use a cron-style scheduling expression (or some other text-based approach).
UI Updates
A new page for editing transaction drafts will need to be added, as well as a page for editing recurring transaction schedules. When editing recurring transactions, the user should select a template-enabled draft to use for the recurring transaction.
There should also be some sort of visual indicator on the homepage for viewing all transaction drafts, as well as recurring transactions, and it should be made very obvious to the user when there are pending draft transactions (not templates) which they should finish editing and save as finalized transactions.