[Kmymoney-devel] Patch for HolidayRegion and Working Week

Colin cdwright at gwi.net
Thu Jan 7 06:15:32 CET 2010


On Wednesday January 6 2010 08:32 pm Ian Neal wrote:
> Hi all,
> 
> Find attached a patch (gzipped due to size) for the current kmymoney svn
> which makes the following changes:
> * Switch from MoveFriday/MoveMonday to MoveBefore/MoveAfter for use with
> scheduled transactions;
> * Strings with Friday / Monday now use previous / next working day;
> * Strings with Weekend now use non-working days;
> * Removed duplicate code from kenterscheduledlg.cpp and got it to use
> the code from mymoneyscheduled.cpp;
> * Added UI to scheduled transactions settings page to be able to select
> relevant holiday calendar that the OS knows about as well as a (None)
> option;
> * Added routine to calculate working week from KGlobal::locale() to
> kmymoney.cpp;
> * Added methods to mymoneyscheduled.cpp to read/write holiday region and
> working week for scheduled transactions;
> * Added defaults for holiday region (gb) and working week
> (Monday-Friday) to mymoneyscheduled.cpp;
> * In mymoneyscheduled.cpp split some of the code out of
> adjustedNextDueDate to create adjustedDate so that kenterscheduledlg.cpp
> could use it instead of duplicating code;
> * Rewrote the code in adjustedDate to it reflects the locale's working
> week and the selected holiday region;
> * Added a new test that makes sure the working week is set correctly and
> working/non-working days are identified correctly;
> * Added further tests to testAdjustedNextDueDate to make sure that the
> adjusted date is correct for non-working days not just weekends;
> * Corrected it's vs its in various comments throughout code.
> 
> KHoliday assumes that any day marked as red or weekend is a holiday and
> at the moment it has no concept of financial holidays so I've worked
> with what it has provided.
> 
> Any constructive comments/feedback/review are welcome,
> 
> TIA,
> 
> Ian
> 



My comments:
* Not tested it, but it looks great, Ian.  I've been wanting to see calendar 
support for some time.
* I'd default Schedule working works and holidays using the settings instead 
of hard-coding to British.  If you must hard-code I'd default to USA for 
consistency: I know it can be wearing but defaulting to US make particular 
sense given the tighter integration with KDE.
* I'd prefer to have a separate Calendar class with work weeks and holidays.
  * You'd be able to assign the same Calendar to multiple Schedules.
  * You could have Working Day date math in the class: then we add "Every n 
Working Days" Occurrence
  * It would be easier to expand the Calendar functionality later to support 
user-defined Calendars to allow Schedules to deal with the variability of US 
public holidays and school holidays.

Thanks,

Colin


More information about the KMyMoney-devel mailing list