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

Scheduled Transactions #23

Open
65 of 87 tasks
matthewpritchett opened this issue Mar 12, 2022 · 0 comments
Open
65 of 87 tasks

Scheduled Transactions #23

matthewpritchett opened this issue Mar 12, 2022 · 0 comments
Assignees
Labels
feature A new feature

Comments

@matthewpritchett
Copy link
Collaborator

matthewpritchett commented Mar 12, 2022

Multiple components are needed for Scheduled Transactions

RecurrenceEngine

The actual logic for being able to get dates based on inputs

  • GetOccurences
    • Returns only number of count or less when supplied
  • GetDatesFromRange
    • Returns only dates after start date
    • Returns only dates before end date when supplied
    • Returns dates to DateTime.Max if no end date supplied
  • Daily
    • Returns correct days between dates for interval
  • Weekly
    • Returns correct days between dates for interval of week
    • Returns only dates on day of week if supplied
    • Returns only dates on multiple days of week if supplied
  • Monthly
    • Returns only dates based on interval passed in
    • Returns only dates in DaysOfMonth if supplied
    • Returns only dates in WeeksOfMonth if supplied
    • Returns only dates in DaysOfWeek if supplied
    • Returns only dates for DaysOfMonth.Last
    • Returns only dates for WeeksOfMonth.Last
  • Yearly
    • Returns only dates in interval if passed in
    • Returns only dates in MonthsOfYear if supplied

Models

  • ScheduledTransaction object inherits from Transaction
    • Schedule
      • Start DateTime?
      • Frequency
      • Interval
      • DaysOfWeek
        • Sunday
        • Monday
        • Tuesday
        • Wednesday
        • Thursday
        • Friday
        • Saturday
        • All
      • DaysOfMonth
        • None
        • 1-31
        • Last
      • WeeksOfMonth
        • None
        • First
        • Second
        • Third
        • Fourth
        • Fifth
        • Sixth
        • Last
      • MonthsOfYear
        • None
        • January
        • February
        • March
        • April
        • May
        • June
        • July
        • August
        • September
        • October
        • November
        • December
        • All
      • Until DateTime?
      • Count int?

IScheduleTransactionDataAccess (ScheduleTransactionDataAccess)

  • CreateScheduledTransaction
  • UpdateScheduledTransaction
  • GetScheduledTransactions

TransactionLogic Changes

  • SaveTransaction
    • Updated to handle saving scheduled transactions
    • Flag added to not update scheduled transaction aka future transactions
  • DeleteTransaction
    - [ ] Updated to handle schedules
    - [ ] Flag added to not delete the schedule aka future transactions
  • GetScheduledTransactions(DateTime startDate, DateTime? endDate)

Custom controls

  • ScheduledTransactionControl
    • Takes in the schedule object
  • WeeksOfMonth control
  • DaysOfWeek control
  • DaysOfMonth control
  • MonthsOfYear control
  • Interval control?

Transaction Edit Page

  • New Repeat dropdown next to service date
  • Dropdown would have the quick repeat options of: Never, Daily, Weekly, Every other week, Every 4 weeks, Monthly, Every other month, Quarterly, Twice a year, Yearly, Every other year, Custom
  • Custom would show the custom schedule block on the existing transaction edit page right below the date stuff.
    • Could also change the name of service date to start date
  • Some way to describe or show how the custom schedule works

Populate new transactions that are scheduled at startup and resume

  • Start date will be from the last created transaction OR store it on the actual scheduledtransaction table
@matthewpritchett matthewpritchett added this to the Scheduled Transactions milestone Mar 12, 2022
@matthewpritchett matthewpritchett added the feature A new feature label May 2, 2022
@matthewpritchett matthewpritchett changed the title Schedule Logic Scheduled Transactions May 10, 2022
@matthewpritchett matthewpritchett removed this from the Scheduled Transactions milestone May 11, 2022
@matthewpritchett matthewpritchett self-assigned this Jun 16, 2022
@matthewpritchett matthewpritchett pinned this issue Jun 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new feature
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant