Holiday Handling
Non-working Days
Look at latest UI folder in: https://mifos.dev.java.net/source/browse/mifos/documents/ui-workspace/ for mock-ups.
Non-working Days
Non-working days are already configurable in mifos. However, there is no functionality that changes behavior if a meeting or payment falls on a non-working day. The "Scenarios to be handled" section details how non-working days should now be handled.
Configuration Setting
On a configuration screen in admin section, include an option to specify rules for holiday handling at an MFI level, . This rule will be used for the rescheduling of meetings and repayments that fall on non-working days and will be the default rescheduling option inherited in the holiday definition screens. Options are:
- Do not change meetings/repayments if they fall on a holiday or non-working day.
- Schedule meetings/repayments to:
- previous working day,
- next working day,
- next meeting/payment,
- previous meeting/payment
Holidays
- Holiday Definition: * Holidays can be specified at two levels
- Organization wide holidays: These will are holidays that are applicable to all the offices. Note a user must have the appropriate data scope (ie, belong to the HO) in order to create organizational wide holidays.
- Office specific holidays: These are the holidays, which will be applicable only to the specific office. Holidays can be specified as per the data scope of the logged in user. (Suggestion: triage this option!)
- When a holiday is added, the following inputs should be specified by the user: _ Holiday name _ From date _ To date, inclusive of both dates (Alternatively, we could specify the number of days a holiday should last. But this approach detailed is probably fine). _ Holiday handling rule per holiday. Default is inherited from Mifos-wide configuration, but can be changed on per holiday basis. (Need to discuss with Enda to determine.) * Validation & Error handling:
- Holidays can be added for future dates (no limit-- I dont think validation is required) but holidays in the system should not be deleted.
- Holidays are not mandatory so these can be left blank.
- By default no holidays will be specified.
- Holidays can't be added for current date or dates in the past
Scenarios that need to be handled:
Note that for each case, there are two scenarios that Mifos must handle:
- if the holiday is already defined in the system when certain payments, etc, are scheduled, and
- if holiday is added after the original payment schedules have been created.
- Meetings: * Meetings can't be scheduled to regularly fall on a non-working day (ie, weekly on sundays). An error message should be displayed.
- In the event that an instance of a meeting falls on a holiday or non-working day (i.e. meeting is defined as 3rd day of every month-- and occasionally this falls on a non-working day), then system should move the meeting, and change the schedules (loan, savings, fees) for transactions (see below) expected on that day as per the meeting schedule rules.
- With meeting date updated, bulk entry and "apply payment" will take the correct last meeting date and meeting attendance will be tracked correctly.
(Question: if the MFI moved repayment to next meeting time, is attendance at this meeting counted once or twice? Answer: This should be counted twice so that the reports give the correct picture.)
- Loan disbursement date & (not yet implemented user-entered date of first repayment:
- User can not specify a loan disbursement date that falls on an existing holiday or non-working day. Error is displayed.
- If holiday is added after loan disbursement date has been entered, loan disbursement date is moved as per holiday definition rules.
- If disbursal date is moved because it happens to be a holiday, system should validate that the first repayment date is correct as per the "changed" disbursal date.
- Loan repayment schedule:
- Loan repayment schedule is calculated factoring in known holidays
- If holiday is added after the loan repayment schedule is calculated, then affected payment dates must be changed. This will impact the repayment schedule page on the loan account. Note that no changes to interest will be made, even if declining balance.
- If a holiday affects multiple repayment dates, then all of the repayments that were delayed based on the holiday should be repayed together on the next scheduled repayment date based on the repayment rule.
- Updating of Mandatory Savings Deposit schedule, Voluntary Deposit Schedule + Client fee schedule to take holidays/non-working days into account.
- UI Flag when meeting/payment is rescheduled:
- There should be text displayed indicating when a meeting/payment has been rescheduled.
Flag could be as simple as a * displayed next to a rescheduled date. Note that would impact a number of pages-- basically wherever a due date is displayed. Need to determine value of this feature.
Out of Scope
Reminder on Admin page to define next year's holidays * (Potentially) Branch specific holidays.
Open Issues
- Should the lateness/dormancy definition take holidays into account? ANSWER: For now, I think we can ignore this. Thoughts? Swati: I think holidays and non-working days should be treated as working week days where lateness/dormancy and "days in arrears" in performance history are concerned.
– Main.aditi_swatirathi - 12 Apr 2005
Take a look at (Handling Holidays for Office Level]