Handling Holidays for Office Level

*Handling Office Level Holidays & Non-working Days*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 office 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

Office specific holidays definition:

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.

  • Rules for the office level holidays (needs to be confirmed with Enda):
    • If the Head Office (HO) declares a holiday then it is applicable only to that particular HO, it won't be a holiday for its child offices Regional offices (RO), Sub regional offices (SRO), Areas offices (AO) and Branch offices (BO) under it.
    • Similarly if RO declares a holiday then that holiday is applicable only to that particular RO not to its child offices (i.e. SROs, AOs and BOs) under it.
    • Similarly if SRO declares a holiday then that holiday is applicable only to that particular SRO not to its child offices (i.e. AOs and BOs) under it.
    • Similarly if AO declares a holiday then that holiday is applicable only to that particular AO not to its child offices (i.e. BOs) under it.
    • When a BO declares a holiday then that holiday is applicable to that BO and to all the centers and groups and clients under it.
  • When a holiday is added, the following inputs should be specified by the user:
    • Holiday name
    • Dropdown box for HO, RO, AO and BO. User selects HO then RO then AO then BO (optional, defaults to "All"). These values cascade-- so that once a HO is chosen, the RO drop-down only contains ROs for that HO, and so on. Note that HO, RO will display as per user's data scope.
    • From date(mm/dd/yyyy)
    • To date, inclusive of both dates
    • Holiday handling rule per holiday. Default is inherited from Mifos-wide configuration, but can be changed on per holiday basis.
  • Validation & Error handling:
    • Holidays can be added for future dates 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
    • List of holidays should be in increasing order of dates.
    • Format of the dates should be checked.

Scenarios need to be handled - applicable only for a holiday at BO:

Important: If a holiday is declared at BO level then only the centers, groups and clients under that particular BO are affected. E.g. If Aditi BO declared a holiday then the affect will be for its corresponding centers, groups and clients. Other BOs will remain unaffected. This rule is applicable and need to be taken into care for all the below scenarios.

  • 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). Sunday should not be as an option in the day dropdown box on meeting schedule page. _ In the event that an instance of a meeting falls on a holiday or non-working day (e.g. 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. If the BO moved repayment to next meeting time, then the attendance should be counted twice so that the reports give the correct picture.
  • Loan disbursement date & (not yet implemented(smile) 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 effected 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.
  • 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
    Deletion of holidays and reminder on Admin page to define recurring holidays
    Open Issues
    If we are setting the holiday rule (same day, next working day, next meeting or payment) during system configuration then why are we giving holiday rule option to the user again while creation of a new holiday. In the configuration should the user be asked whether to include office level holidays?

– Main.aditi_upma - 23 Aug 2007