I must be skipping something because I don't understand the issue about duplicates.
Couldn't we just attach an underground bool "created" on the scheduled transaction?
We connect, sync, and then check for scheduled transactions and only popup/create if created = false, all invisible for the user.
About the budged think, we could use a checkbox to take in account the future scheduled transactions on the budget. Would be a fast method to see the forecast and the current budget.
About the period, just try to make it the flexible the better because even that the advice on this post seem great, we are going to miss situations and a flexible system is imperative easy to add skipped ideas.
My 2 cents on this:
- Chosen N days of the month (1-31).
-- Goto 3
- Chosen N days of the year (1-366).
-- Goto 4
1- Every N day of the week. (1-7)
2-- Every X week of the month or chosen weeks. (1-5)
3--- Every Y month of the year or chosen months. (1-12)
4---- Every Z year or chosen years. (1-inf)
Combination of the previous with a workday checkbox (workday closest, by the right or the left, to the date defined in the previous section)
- Checkbox (workday left)
- Checkbox (workday right)
Rounding to the left on months with 28-31 days or months with 4-5 weeks. And another to round the result if the day doesn't exist to the closest one.
rrule seems great. Maybe I miss a checkbox related to workday (left) (right).
I think we don't have to play magician tricks and think about this scheduled date as something simple and illustrative.